Przeglądaj źródła

fix(order): 更新微信支付订单状态处理逻辑

- 当微信订单状态为 TRADE_COMPLETED 且订单状态为 30 时,更新订单状态为 40
- 设置订单确认时间和完成时间
- 更新订单状态文本为“已完成”
runphp 4 miesięcy temu
rodzic
commit
fa5d028f07
1 zmienionych plików z 12 dodań i 0 usunięć
  1. 12 0
      src/Hook/OrderHook.php

+ 12 - 0
src/Hook/OrderHook.php

@@ -38,6 +38,18 @@ class OrderHook
                     'wechat_order_state' => $orderState,
                     'openid' => $payment['payment_result']['acc_resp_fields']['user_id'],
                 ]);
+                if ($orderState == WechatOrderStateEnum::TRADE_COMPLETED && $order->order_status == 30) {
+                    // 订单完成
+                    Order::update([
+                        'order_status' => 40,
+                        'confirm_time' => date('Y-m-d H:i:s'),
+                        'finish_time' => date('Y-m-d H:i:s'),
+                    ], ['id' => $order->id]);
+                    $order->setAttr('order_status', 40);
+                    $order->setAttr('confirm_time', date('Y-m-d H:i:s'));
+                    $order->setAttr('finish_time', date('Y-m-d H:i:s'));
+                    $order->setAttr('status_text', '已完成');
+                }
             }
         }
     }