From b19e0039f2186ac658144564bdb1e45710a2e679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8A=80=E6=9C=AF=E8=80=81=E8=83=A1?= <1094551889@qq.com> Date: Wed, 20 Nov 2024 16:23:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=81=E6=94=AF=E4=BB=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/IndexController.php | 4 ++-- app/controller/PayController.php | 21 +++++++++++++++++++-- app/controller/PayManageController.php | 1 + app/model/Order.php | 19 +++++++++++++++---- public/files/wxpay2K103516.jpg | Bin 0 -> 48112 bytes route/app.php | 2 ++ runtime/order.json | 2 +- view/pay/console.html | 7 ++++++- view/pay_manage/add_channel.html | 10 ++++++++++ view/pay_manage/add_channel_code.html | 24 +++++++++++++++++------- view/pay_manage/edit_channel.html | 15 +++++++++++++-- view/pay_manage/index.html | 4 ++-- 12 files changed, 88 insertions(+), 21 deletions(-) create mode 100644 public/files/wxpay2K103516.jpg diff --git a/app/controller/IndexController.php b/app/controller/IndexController.php index b8b4205..7bee3a4 100644 --- a/app/controller/IndexController.php +++ b/app/controller/IndexController.php @@ -27,9 +27,9 @@ class IndexController if ($action === 'mpay') { $data = json_decode($info['data'], true); $config = \think\facade\Config::load("payconfig/{$data['pid']}_{$data['aid']}", 'payconfig'); - $payclient_path = "\\payclient\\Mpay"; + $payclient_path = "\\payclient\\{$config['pay']['payclass']}"; $Payclient = new $payclient_path($info, $config); - $res = $Payclient->notify($info); + $res = $Payclient->notify(); return $res; } else { return 202; diff --git a/app/controller/PayController.php b/app/controller/PayController.php index a09e3d9..9dbff0b 100644 --- a/app/controller/PayController.php +++ b/app/controller/PayController.php @@ -90,11 +90,12 @@ class PayController if ($order_id) { $act_order = Order::where('order_id', $order_id)->find(); if ($act_order) { - $qrcode = PayChannel::where('id', $act_order->cid)->value('qrcode'); + $channel = PayChannel::where('id', $act_order->cid)->find(); View::assign($act_order->toArray()); $passtime = strtotime($act_order->close_time) - time(); View::assign('passtime', $passtime > 0 ? $passtime : 0); - View::assign('payUrl', $qrcode); + View::assign('payUrl', $channel->qrcode); + View::assign('code_type', $channel->type); return View::fetch(); } else { return '订单不存在'; @@ -329,6 +330,22 @@ class PayController return json($info); } } + // 处理微信/支付宝收款通知 + public function mpayNotify(Request $request) + { + $info = $request->post(); + $action = isset($info['action']) ? $info['action'] : ''; + if ($action === 'mpay') { + $data = json_decode($info['data'], true); + $config = \think\facade\Config::load("payconfig/{$data['pid']}_{$data['aid']}", 'payconfig'); + $payclient_path = "\\payclient\\{$config['pay']['payclass']}"; + $Payclient = new $payclient_path($info, $config, $request->domain()); + $Payclient->notify(); + return 200; + } else { + return 202; + } + } // 签名 private static function getSign(array $param = [], string $key = ''): string { diff --git a/app/controller/PayManageController.php b/app/controller/PayManageController.php index eacd3da..12e224f 100644 --- a/app/controller/PayManageController.php +++ b/app/controller/PayManageController.php @@ -63,6 +63,7 @@ class PayManageController extends BaseController 'qrcode' => $channel->qrcode, 'last_time' => $channel->last_time, 'state' => $channel->state, + 'type' => $channel->type, ]); return View::fetch(); } diff --git a/app/model/Order.php b/app/model/Order.php index 46480cf..0b26a12 100644 --- a/app/model/Order.php +++ b/app/model/Order.php @@ -119,12 +119,23 @@ class Order extends BaseModel $channel_infos = PayChannel::whereIn('account_id', $aids)->where('state', 1)->order('last_time', 'asc')->select(); if (!$channel_infos || !$aids) return []; // 微信/支付宝收款处理 - $patt_wx = '/^wxpay/i'; - $patt_ali = '/^alipay/i'; foreach ($channel_infos as $key => $value) { - + $check_wx = preg_match('/^wxpay\d+#/i', $value->channel); + $check_ali = preg_match('/^alipay\d+#/i', $value->channel); + if ($check_wx && $type === 'wxpay') { + $channel_info = $channel_infos[$key]; + break; + } elseif ($check_ali && $type === 'alipay') { + $channel_info = $channel_infos[$key]; + break; + } else { + if ($check_wx || $check_ali) { + continue; + } + $channel_info = $channel_infos[$key]; + break; + } } - $channel_info = $channel_infos[0]; // 选取收款通道 $patt = PayAccount::find($channel_info->account_id); $channel = ['aid' => $channel_info->account_id, 'cid' => $channel_info->id, 'patt' => $patt->getData('pattern')]; diff --git a/public/files/wxpay2K103516.jpg b/public/files/wxpay2K103516.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6e391c894e478101759aec602ac2d63754e2a2b0 GIT binary patch literal 48112 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≀9p;wQDkJ=XgsguSD6nBLs0;fsK@^RUpCZ?`Vrwg zh?^Ed)_2?F|9_ie|NF4%f6sXT=ltn^UuxAWa@u*`sx3-0$39#WSk_gJ(&nc~xBPdK zi=|X!?cCZQp0E*JHbrHEE%P9nE(S)`Sd*`IKaqP(K!HiTMEU%ahIJ2hx~T0K#Q0*# z-^0GpU;RVHc=4rr@ue8q+;QKD9LsH(NAL+Gj8mKY`2Nh;i(68pm^EyA-qG?_wiI`& uk52N2@%NQ*c66Z~&L9;xwoek(*DbhT{NHu>|BE61|4Z}#zGVF0*8c+{MWO)! literal 0 HcmV?d00001 diff --git a/route/app.php b/route/app.php index 310bfe3..bfac610 100644 --- a/route/app.php +++ b/route/app.php @@ -16,6 +16,8 @@ Route::rule('checkOrder/[:pid]/[:sign]', 'Pay/checkOrder'); Route::rule('payHeart', 'Pay/payHeart'); // 监听收款通知 Route::rule('checkPayResult', 'Pay/checkPayResult'); +// 监听微信/支付宝收款通知 +Route::rule('mpayNotify', 'Pay/mpayNotify'); // 验证支付结果 Route::rule('validatePayResult', 'Pay/validatePayResult'); diff --git a/runtime/order.json b/runtime/order.json index 51b4235..d1bee53 100644 --- a/runtime/order.json +++ b/runtime/order.json @@ -1 +1 @@ -{"code":0,"msg":"没有新订单"} \ No newline at end of file +{"code":1,"msg":"\u67092\u4e2a\u65b0\u8ba2\u5355","orders":[{"id":36348,"pid":1001,"aid":46,"cid":39,"patt":1},{"id":36350,"pid":1001,"aid":1,"cid":1,"patt":1}]} \ No newline at end of file diff --git a/view/pay/console.html b/view/pay/console.html index 0552c9a..4cab60c 100644 --- a/view/pay/console.html +++ b/view/pay/console.html @@ -152,6 +152,7 @@