新增功能
This commit is contained in:
@@ -84,5 +84,23 @@ class PayNotifyLogic extends BaseLogic
|
||||
$order->save();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 订单支付回调
|
||||
* @param $orderSn
|
||||
* @param array $extra
|
||||
*/
|
||||
public static function order($orderSn, array $extra = [])
|
||||
{
|
||||
$order = \app\common\model\Order::where('order_no', $orderSn)->findOrEmpty();
|
||||
if ($order->isEmpty()) {
|
||||
throw new \Exception('订单不存在: ' . $orderSn);
|
||||
}
|
||||
if ($order->status == 2) {
|
||||
return;
|
||||
}
|
||||
$order->status = 2;
|
||||
$order->pay_time = date('Y-m-d H:i:s');
|
||||
$order->transaction_id = $extra['transaction_id'] ?? '';
|
||||
$order->save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,8 +45,14 @@ class PaymentLogic extends BaseLogic
|
||||
{
|
||||
try {
|
||||
if ($params['from'] == 'recharge') {
|
||||
// 充值
|
||||
$order = RechargeOrder::findOrEmpty($params['order_id'])->toArray();
|
||||
} elseif ($params['from'] == 'order') {
|
||||
$orderModel = \app\common\model\Order::findOrEmpty($params['order_id']);
|
||||
if (!$orderModel->isEmpty()) {
|
||||
$order = $orderModel->toArray();
|
||||
$order['order_amount'] = $order['amount'];
|
||||
$order['sn'] = $order['order_no'];
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($order)) {
|
||||
@@ -117,6 +123,21 @@ class PaymentLogic extends BaseLogic
|
||||
'pay_time' => $payTime,
|
||||
];
|
||||
break;
|
||||
case 'order':
|
||||
$order = \app\common\model\Order::where(['id' => $params['order_id']])
|
||||
->findOrEmpty();
|
||||
$statusMap = [1 => 0, 2 => 1, 3 => 0, 4 => 0];
|
||||
$order['pay_status'] = $statusMap[$order['status']] ?? 0;
|
||||
$order['pay_way'] = $order['pay_way'] ?? 0;
|
||||
$orderInfo = [
|
||||
'order_id' => $order['id'],
|
||||
'order_sn' => $order['order_no'],
|
||||
'order_amount' => $order['amount'],
|
||||
'pay_way' => PayEnum::getPayDesc($order['pay_way']),
|
||||
'pay_status' => $order['status'] == 2 ? '已支付' : '未支付',
|
||||
'pay_time' => $order['pay_time'] ?? '',
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
if (empty($order)) {
|
||||
@@ -152,6 +173,18 @@ class PaymentLogic extends BaseLogic
|
||||
throw new \Exception('充值订单不存在');
|
||||
}
|
||||
break;
|
||||
case 'order':
|
||||
$order = \app\common\model\Order::findOrEmpty($params['order_id']);
|
||||
if ($order->isEmpty()) {
|
||||
throw new \Exception('订单不存在');
|
||||
}
|
||||
if ($order['status'] == 2) {
|
||||
throw new \Exception('订单已支付');
|
||||
}
|
||||
$order['order_amount'] = $order['amount'];
|
||||
$order['sn'] = $order['order_no'];
|
||||
$order['pay_status'] = PayEnum::UNPAID;
|
||||
return $order;
|
||||
}
|
||||
|
||||
if ($order['pay_status'] == PayEnum::ISPAID) {
|
||||
@@ -189,6 +222,9 @@ class PaymentLogic extends BaseLogic
|
||||
case 'recharge':
|
||||
RechargeOrder::update(['pay_way' => $payWay, 'pay_sn' => $paySn], ['id' => $order['id']]);
|
||||
break;
|
||||
case 'order':
|
||||
\app\common\model\Order::update(['pay_way' => $payWay], ['id' => $order['id']]);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($order['order_amount'] == 0) {
|
||||
|
||||
Reference in New Issue
Block a user