feat : refund

This commit is contained in:
2025-02-24 15:06:26 +08:00
parent 6754d2969e
commit 27a6ad3e2e
15 changed files with 591 additions and 281 deletions

View File

@@ -8,6 +8,7 @@ use App\Service\ServiceTrait\Api\CheckOrderCallBackTrait;
use App\Service\ServiceTrait\Api\GoodOrderTrait;
use App\Service\ServiceTrait\Api\OrderTrait;
use App\Service\ServiceTrait\Api\PayFinishTrait;
use App\Service\ServiceTrait\Api\RefundOrderTrait;
use Hyperf\DbConnection\Db;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
@@ -19,7 +20,9 @@ class WxJsRechargeOrderService extends WxJsRechargeBaseService
{
use CheckOrderCallBackTrait,
GoodOrderTrait,
PayFinishTrait;
PayFinishTrait,
RefundOrderTrait,
OrderTrait;
/**
*
@@ -47,15 +50,20 @@ class WxJsRechargeOrderService extends WxJsRechargeBaseService
*/
protected mixed $payInfo;
/**
* @var mixed
*/
protected mixed $refundInfo;
/**
* @return ResponseInterface
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
* @throws InvalidParamsException
*/
public function callBackHandle()
public function callBackHandle(): ResponseInterface
{
$this-> getWechatData();
$this->getWechatData();
$this->checkWxCallBackOrder();
@@ -79,6 +87,31 @@ class WxJsRechargeOrderService extends WxJsRechargeBaseService
return $this->returnSuccess();
}
/**
* @return ResponseInterface
* @throws ContainerExceptionInterface
* @throws InvalidParamsException
* @throws NotFoundExceptionInterface
*/
public function refundCallBackHandle(): ResponseInterface
{
$this->getWechatData();
$this->checkWxRefundCallBackOrder();
$this->checkRefundOrder();
Db::transaction(function (){
$this->manageRefundOrder();
$this->manageOrderByRefund();
});
$this->sendStockMq($this->orderInfo->id,$this->orderInfo->status);
return $this->returnSuccess();
}
/**
* @return void
*/
@@ -87,4 +120,13 @@ class WxJsRechargeOrderService extends WxJsRechargeBaseService
//返回的回调地址
$this->config['wechat']['default']['notify_url'] = config('system.api_url').'/common/wxPay/order/js/callBack';
}
/**
* @return void
*/
public function setRefundNotify(): void
{
//返回的退款回调地址
$this->config['wechat']['default']['notify_url'] = config('system.api_url').'/common/wxPay/order/js/refund/callBack';
}
}