|
@@ -19,6 +19,7 @@ use SixShop\Payment\Enum\PaymentBizEnum;
|
|
|
use SixShop\Payment\Enum\PaymentStatusEnum;
|
|
use SixShop\Payment\Enum\PaymentStatusEnum;
|
|
|
use SixShop\Payment\Enum\RefundStatusEnum;
|
|
use SixShop\Payment\Enum\RefundStatusEnum;
|
|
|
use SixShop\Payment\Event\PaymentSuccessEvent;
|
|
use SixShop\Payment\Event\PaymentSuccessEvent;
|
|
|
|
|
+use SixShop\Payment\Event\RefundSuccessEvent;
|
|
|
use SixShop\Wechat\Facade\WechatUser;
|
|
use SixShop\Wechat\Facade\WechatUser;
|
|
|
use SixShop\WechatPay\Trait\ApiTrait;
|
|
use SixShop\WechatPay\Trait\ApiTrait;
|
|
|
use SixShop\WechatPay\Trait\PaymentParamsTrait;
|
|
use SixShop\WechatPay\Trait\PaymentParamsTrait;
|
|
@@ -133,6 +134,7 @@ class PaymentProvider implements PaymentProviderInterface
|
|
|
'reason' => $param->getReason(),
|
|
'reason' => $param->getReason(),
|
|
|
'amount' => $param->getAmount(),
|
|
'amount' => $param->getAmount(),
|
|
|
'status' => RefundStatusEnum::REFUNDING,
|
|
'status' => RefundStatusEnum::REFUNDING,
|
|
|
|
|
+ 'refund_param' => $param->getRaw(),
|
|
|
'status_desc' => '正在申请微信接口退款',
|
|
'status_desc' => '正在申请微信接口退款',
|
|
|
]);
|
|
]);
|
|
|
$this->domesticRefunds(
|
|
$this->domesticRefunds(
|
|
@@ -149,6 +151,23 @@ class PaymentProvider implements PaymentProviderInterface
|
|
|
|
|
|
|
|
public function refundQuery(int $refundID): PaymentRefundResult
|
|
public function refundQuery(int $refundID): PaymentRefundResult
|
|
|
{
|
|
{
|
|
|
- throw new \Exception('Not implemented');
|
|
|
|
|
|
|
+ $refund = $this->extensionRefundEntity->with('payment')->find($refundID);
|
|
|
|
|
+ if ($refund->status === RefundStatusEnum::REFUNDING) {
|
|
|
|
|
+ $result = $this->queryRefund($refund->out_refund_no);
|
|
|
|
|
+ $refund->refund_id = $result->refund_id;
|
|
|
|
|
+ $refund->refund_result = $result;
|
|
|
|
|
+ if ($result->status === 'SUCCESS') {
|
|
|
|
|
+ $refund->status = RefunddStatusEnum::SUCCESS;
|
|
|
|
|
+ $refund->success_time = strtotime($result->success_time);
|
|
|
|
|
+ Event::trigger(new RefundSuccessEvent(
|
|
|
|
|
+ $refund->model(),
|
|
|
|
|
+ $refund->payment,
|
|
|
|
|
+ new PaymentRefundRequest($refund->amount,$refund->reason, $refund->refund_param))
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ $refund->save();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return new PaymentRefundResult($refund->model());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|