Parcourir la source

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

- 引入StoreOrderEntity和StoreOrderStatusEntity实体类
- 实现paySuccess方法用于批量通知1688支付成功
- 添加订单验证逻辑确保只处理1688订单
- 集成prepareProtocolPay接口调用支付成功协议
- 添加错误日志记录非1688订单情况
- 实现批量订单处理返回统一结果
shichen il y a 3 mois
Parent
commit
863c7a417a
1 fichiers modifiés avec 25 ajouts et 0 suppressions
  1. 25 0
      app/services/ThirdParty/AlibabaAgent/OrderService.php

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

@@ -10,6 +10,8 @@
10 10
 
11 11
 namespace app\services\ThirdParty\AlibabaAgent;
12 12
 
13
+use app\entity\data\store\StoreOrderEntity;
14
+use app\entity\data\store\StoreOrderStatusEntity;
13 15
 use think\facade\Db;
14 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 236
      * API: com.alibaba.trade:alibaba.trade.pay.protocolPay.preparePay-1