1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-24 20:06:09 +08:00
2020-09-13 18:19:20 +08:00

118 lines
2.4 KiB
PHP

<?php
namespace App\Http\Admin\Services;
use App\Models\Order as OrderModel;
use App\Models\Trade as TradeModel;
use App\Services\Auth\Admin as AdminAuth;
abstract class PayTest extends Service
{
/**
* @var string 支付平台
*/
protected $channel;
/**
* 创建支付宝订单
*
* @return OrderModel
*/
public function createAlipayOrder()
{
/**
* @var AdminAuth $auth
*/
$auth = $this->getDI()->get('auth');
$authUser = $auth->getAuthInfo();
$order = new OrderModel();
$order->subject = '测试 - 支付测试3.01元';
$order->amount = 3.01;
$order->owner_id = $authUser['id'];
$order->item_type = OrderModel::ITEM_TEST;
$order->create();
return $order;
}
/**
* 创建微信订单
*
* @return OrderModel
*/
public function createWxpayOrder()
{
/**
* @var AdminAuth $auth
*/
$auth = $this->getDI()->get('auth');
$authUser = $auth->getAuthInfo();
$config = $this->getConfig();
$order = new OrderModel();
/**
* 微信沙箱环境金额不能自定义,只能是测试用例值(沙吊的不行)
*/
if ($config->get('env') == ENV_DEV) {
$order->subject = '测试 - 支付测试3.01元';
$order->amount = 3.01;
} else {
$order->subject = '测试 - 支付测试0.01元';
$order->amount = 0.01;
}
$order->owner_id = $authUser['id'];
$order->item_type = OrderModel::ITEM_TEST;
$order->create();
return $order;
}
/**
* 创建交易
*
* @param OrderModel $order
* @return TradeModel $trade
*/
public function createTrade(OrderModel $order)
{
$trade = new TradeModel();
$trade->owner_id = $order->owner_id;
$trade->order_id = $order->id;
$trade->subject = $order->subject;
$trade->amount = $order->amount;
$trade->channel = $this->channel;
$trade->create();
return $trade;
}
/**
* 交易状态
*
* @param string $tradeNo
* @return string
*/
abstract public function status($tradeNo);
/**
* 扫码下单
*
* @param TradeModel $trade
* @return string|bool
*/
abstract public function scan(TradeModel $trade);
}