Просмотр исходного кода

feat(lakala): 更新支付提供者扩展ID并调整预下单逻辑

- 将支付响应中的类型从 `self::PAYMENT_TYPE` 更改为 `Extension::EXTENSION_ID`
- 注释掉商品详情设置逻辑,包括成本价、收据ID及商品列表配置
- 在测试中增加结算类型和备注字段,并修改总金额为500
- 修改超时表达式为15分钟,并更新商品名称描述
- 移除部分冗余的账户业务字段设置
runphp 4 месяцев назад
Родитель
Сommit
81bb8e782f
2 измененных файлов с 15 добавлено и 16 удалено
  1. 7 4
      src/PaymentProvider.php
  2. 8 12
      tests/Service/TransactionServiceTest.php

+ 7 - 4
src/PaymentProvider.php

@@ -62,7 +62,7 @@ class PaymentProvider implements PaymentProviderInterface
             $payment->transaction_id = $payment->payment_param->trade_no;
             $payment->save();
         });
-        return new PaymentResponse(orderNo: $payment->out_trade_no, type: self::PAYMENT_TYPE, raw: $payment->toArray());
+        return new PaymentResponse(orderNo: $payment->out_trade_no, type: Extension::EXTENSION_ID, raw: $payment->toArray());
     }
 
     #[\Override] public function notify(array $request): PaymentNotifyResult
@@ -91,18 +91,21 @@ class PaymentProvider implements PaymentProviderInterface
         $accBusiFields->setTimeoutExpress($expireDuration);
         $accBusiFields->setSubAppid($this->config->sub_appid);
         $accBusiFields->setUserId($order['params']['openid']);
-        $detail = new TradePreorderWechaDetail();
+        /*$detail = new TradePreorderWechaDetail();
+        $detail->setCostPrice((float)$order['pay_amount']);
+        $detail->setReceiptId('');
         $goodsDetailList = [];
         foreach ($order['order_goods'] as $goods) {
             $goodsDetail = new TradePreorderWechaGoodsDetail();
             $goodsDetail->setGoodsId((string)$goods['goods_id']);
             $goodsDetail->setQuantity($goods['num']);
-            $goodsDetail->setPrice(round($goods['price'] * 100, 0));
+            $goodsDetail->setWxpayGoodsId('');
+            $goodsDetail->setPrice(round($goods['price']*100, 0));
             $goodsDetail->setGoodsName($goods['goods_name']);
             $goodsDetailList[] = $goodsDetail;
         }
         $detail->setGoodsDetail($goodsDetailList);
-        $accBusiFields->setDetail($detail);
+        $accBusiFields->setDetail($detail);*/
         return TransactionService::preOrder(
             outTradeNo: $payment['out_trade_no'],
             totalAmount: $payment['amount'],

+ 8 - 12
tests/Service/TransactionServiceTest.php

@@ -19,36 +19,32 @@ class TransactionServiceTest extends TestCase
 
     public function testPreOrder()
     {
-        $totalAmount = .01;
+        $totalAmount = 500;
         // 微信主扫场景 - 账户端业务信息
         $accBusiFields = new TradePreorderWechaAccBusiFields();
-        $accBusiFields->setTimeoutExpress('');
+        $accBusiFields->setTimeoutExpress(15);
         $accBusiFields->setSubAppid('wx1308d811d01639eb');
         $accBusiFields->setUserId('oPuRO15wmxv3AwRyEznRfuDLehrk');
-        $accBusiFields->setDetail('');
-        $accBusiFields->setGoodsTag('');
-        $accBusiFields->setAttach('');
-        $accBusiFields->setDeviceInfo('');
-        $accBusiFields->setLimitPay('');
-        $accBusiFields->setSceneInfo('');
-        $accBusiFields->setLimitPayer('');
         $detail = new TradePreorderWechaDetail();
         $detail->setCostPrice($totalAmount);
         $detail->setReceiptId('');
         $goodsDetail = new TradePreorderWechaGoodsDetail();
         $goodsDetail->setGoodsId('3452234');
         $goodsDetail->setWxpayGoodsId('');
-        $goodsDetail->setGoodsName('');
+        $goodsDetail->setGoodsName('纯礼 脚臭粉*2+沐浴皂液*1+氨基酸洁面液*1+羊奶皂*6');
         $goodsDetail->setQuantity(1);
         $goodsDetail->setPrice($totalAmount);
         $detail->setGoodsDetail([$goodsDetail]);
-        $accBusiFields->setDetail($detail);
-        $this->transactionService->preOrder(
+       // $accBusiFields->setDetail($detail);
+        $response = $this->transactionService->preOrder(
             outTradeNo: generate_number(NumberBizEnum::ORDER_PAY),
             totalAmount: $totalAmount,
             locationInfo: new LocationInfo(requestIP: '183.214.109.50'),
             subject: '测试订单',
+            settleType: "1",
+            remark: "纯礼 脚臭粉*2+沐浴皂液*1+氨基酸洁面液*1+羊奶皂*6",
             accBusiFields: $accBusiFields,
         );
+        dump($response);
     }
 }