浏览代码

fix(wechatpay): 在支付失败时抛出逻辑异常

runphp 6 月之前
父节点
当前提交
1ebe0221a3
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      src/PaymentProvider.php

+ 4 - 1
src/PaymentProvider.php

@@ -20,6 +20,7 @@ use SixShop\Wechat\Facade\WechatUser;
 use SixShop\WechatPay\Trait\ApiTrait;
 use SixShop\WechatPay\Trait\PaymentParamsTrait;
 use think\facade\Event;
+use function SixShop\Core\throw_logic_exception;
 
 class PaymentProvider implements PaymentProviderInterface
 {
@@ -97,11 +98,13 @@ class PaymentProvider implements PaymentProviderInterface
                 throw $e;
             }
             $payment->payment_result = $paymentResult;
-            $payment->transaction_id = $paymentResult->transaction_id;
             if ($paymentResult->trade_state === 'SUCCESS') {
+                $payment->transaction_id = $paymentResult->transaction_id;
                 $payment->status = PaymentStatusEnum::SUCCESS;
                 $payment->save();
                 Event::trigger(new PaymentSuccessEvent($payment['order_sn'], self::PAYMENT_TYPE, $payment->toArray(), $payment->biz_type));
+            } else {
+                throw_logic_exception($paymentResult->trade_state_desc);
             }
         }