From fa6fb1ed115c3156c7058c7a56efd4f3abffe27a Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 14 May 2024 18:30:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/IndexController.php | 3 ++- app/common/logic/PayNotifyLogic.php | 13 ++++++----- app/queue/redis/PushDeliverySend.php | 30 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 app/queue/redis/PushDeliverySend.php diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index f2c949e..f2f287b 100644 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -20,7 +20,8 @@ class IndexController extends BaseApiController public function index() { - d(config('payment.wechat.default.mch_id')); + $extra=$this->request->post(); + d(!empty($extra['payer']['openid'])); $queue = 'send-mail'; // 数据,可以直接传数组,无需序列化 $data = ['to' => 'tom@gmail.com', 'content' => 'hello']; diff --git a/app/common/logic/PayNotifyLogic.php b/app/common/logic/PayNotifyLogic.php index 9d6d38d..ff9c637 100644 --- a/app/common/logic/PayNotifyLogic.php +++ b/app/common/logic/PayNotifyLogic.php @@ -12,6 +12,7 @@ use app\common\service\PushService; use app\common\service\wechat\WeChatMnpService; use support\Log; use think\facade\Db; +use Webman\RedisQueue\Redis; /** * 支付成功后处理订单状态 @@ -57,10 +58,10 @@ class PayNotifyLogic extends BaseLogic if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) { return true; } - $order->money = bcdiv($extra['amount']['payer_total'],100,2); + $order->money = bcdiv($extra['amount']['payer_total'], 100, 2); $order->paid = 1; $order->status = 1; - if($order->pay_type==9){ + if ($order->pay_type == 9) { $order->status = 2; } $order->save(); @@ -72,12 +73,10 @@ class PayNotifyLogic extends BaseLogic Cart::whereIn('cart_id', $order['cart_id'])->update(['is_pay' => 1]); } } - PushService::push('cash_register_'.$order['user_id'], $order['user_id'], '您有一笔订单已支付'); - if(isset($extra['payer']['openid']) && $order->pay_type!=9){ - (new WeChatMnpService)->delivery($orderSn,$extra['payer']['openid']); + PushService::push('cash_register_' . $order['user_id'], $order['user_id'], '您有一笔订单已支付'); + if (!empty($extra['payer']['openid']) && $order->pay_type != 9) { + Redis::send('push-delivery',['order_id'=>$orderSn,'openid'=>$extra['payer']['openid']],5); } return true; } - - } diff --git a/app/queue/redis/PushDeliverySend.php b/app/queue/redis/PushDeliverySend.php new file mode 100644 index 0000000..92ac730 --- /dev/null +++ b/app/queue/redis/PushDeliverySend.php @@ -0,0 +1,30 @@ +delivery($data['order_id'], $data['openid']); + + } + public function onConsumeFailure(\Throwable $e, $package) + { + $package['max_attempts']=0; + Log::error('推送小程序发货通知失败:'.$package['data']['order_id']); + return $package; + } +} \ No newline at end of file