Explorar o código

feat(AlibabaAgent): 添加1688订单支付成功通知功能

- 引入StoreOrderEntity和StoreOrderStatusEntity实体类
- 实现paySuccess方法用于批量通知1688支付成功
- 添加订单验证逻辑确保只处理1688订单
- 集成prepareProtocolPay接口调用支付成功协议
- 添加错误日志记录非1688订单情况
- 实现批量订单处理返回统一结果
shichen hai 3 meses
pai
achega
863c7a417a
Modificáronse 1 ficheiros con 25 adicións e 0 borrados
  1. 25 0
      app/services/ThirdParty/AlibabaAgent/OrderService.php

+ 25 - 0
app/services/ThirdParty/AlibabaAgent/OrderService.php

@@ -10,6 +10,8 @@
10
 
10
 
11
 namespace app\services\ThirdParty\AlibabaAgent;
11
 namespace app\services\ThirdParty\AlibabaAgent;
12
 
12
 
13
+use app\entity\data\store\StoreOrderEntity;
14
+use app\entity\data\store\StoreOrderStatusEntity;
13
 use think\facade\Db;
15
 use think\facade\Db;
14
 use think\facade\Log;
16
 use think\facade\Log;
15
 
17
 
@@ -206,6 +208,29 @@ class OrderService extends AlibabaAgentBaseService
206
     }
208
     }
207
 
209
 
208
     /**
210
     /**
211
+     * @param StoreOrderEntity[] $storeOrderEntityList
212
+     * @return bool
213
+     * @author 史晨
214
+     * @date 2026/4/30 09:44
215
+     * 支付成功通知1688
216
+     */
217
+    public function paySuccess(array $storeOrderEntityList): bool
218
+    {
219
+        foreach ($storeOrderEntityList as $storeOrderEntity) {
220
+            $alibabaOrderId = $storeOrderEntity->getAlibabaOrderId();
221
+            if (empty($alibabaOrderId)) {
222
+                Log::channel('alibaba')->error($storeOrderEntity->getOrderSn() . '不是1688订单,不需要调取1688支付成功接口');
223
+                continue;
224
+            }
225
+            $res = $this->prepareProtocolPay(['orderId' => $alibabaOrderId]);
226
+            if ($res['success'] === false) {
227
+                return false;
228
+            }
229
+        }
230
+        return true;
231
+    }
232
+
233
+    /**
209
      * 免密支付准备
234
      * 免密支付准备
210
      *
235
      *
211
      * API: com.alibaba.trade:alibaba.trade.pay.protocolPay.preparePay-1
236
      * API: com.alibaba.trade:alibaba.trade.pay.protocolPay.preparePay-1