diff --git a/config/config.php b/config/config.php index 50f4d39..e0ef789 100644 --- a/config/config.php +++ b/config/config.php @@ -11,11 +11,11 @@ return [ 'uri' => [ 'unicom' => [ //下单 - 'order' => 'https://www.unicompayment.com/wappay3.0/httpservice/wapPayPageAction.do?reqcharset=UTF-8', + 'order' => 'https://epay.10010.com/wappay3.0/httpservice/wapPayPageAction.do?reqcharset=UTF-8', //查询 - 'query' => 'https://www.unicompayment.com/CashierWeb/query/order.htm?reqCharSet=UTF-8', + 'query' => 'https://epay.10010.com/CashierWeb/query/order.htm?reqCharSet=UTF-8', //单笔退款 - 'refund' => 'https://www.unicompayment.com/CashierWeb/trade/singleRefund.htm?reqCharSet=UTF-8', + 'refund' => 'https://epay.10010.com/CashierWeb/trade/singleRefund.htm?reqCharSet=UTF-8', ], 'ysd' => [ 'order' => env('APP_URL', 'https://card.ysd-bs.com'), diff --git a/src/WoUnicom.php b/src/WoUnicom.php index 6957362..0cc1d01 100644 --- a/src/WoUnicom.php +++ b/src/WoUnicom.php @@ -3,6 +3,9 @@ namespace XuanChen\WoUnicom; use App\Models\Payment; +use App\Models\Welfare; +use App\Models\WelfareOrder; +use App\Models\WelfarePayment; use Carbon\Carbon; use XuanChen\WoUnicom\Action\Init; use XuanChen\WoUnicom\Action\Order; @@ -94,19 +97,35 @@ class WoUnicom //验签成功 if ($res === true) { - $order = \App\Models\Order::where('orderid', $data['orderid'])->first(); - if ($order && $order->state == 'UNPAY') { - $payment = \App\Models\Payment::where('orderable_type', get_class($order)) - ->where('orderable_id', $order->id) - ->latest() - ->first(); + //福利订单 + if (str_contains($data['orderid'], 'WEAL')) { + $order = WelfareOrder::where('orderid', $data['orderid'])->first(); + if ($order && $order->status == 'UNPAY') { + $payment = $order->payment; + + $payment->paid([ + 'type' => 'UNICOM', + 'payfloodid' => $data['payfloodid'], + ]); + $order->paid(); + } + + } else { + $order = \App\Models\Order::where('orderid', $data['orderid'])->first(); + if ($order && $order->state == 'UNPAY') { + $payment = \App\Models\Payment::where('orderable_type', get_class($order)) + ->where('orderable_id', $order->id) + ->latest() + ->first(); + + $payment->state = 'SUCCESS'; + $payment->out_trade_no = $data['payfloodid']; + $payment->type = 'UNICOM'; + $payment->paid_at = Carbon::now(); + $payment->save(); + $order->paid(); + } - $payment->state = 'SUCCESS'; - $payment->out_trade_no = $data['payfloodid']; - $payment->type = 'UNICOM'; - $payment->paid_at = Carbon::now(); - $payment->save(); - $order->paid(); } return 'SUCCESS';