增加支付回调地址的配置

This commit is contained in:
YunaiV
2021-10-25 09:56:49 +08:00
parent 1b0aaec9ab
commit 20628987c9
9 changed files with 93 additions and 6 deletions

View File

@ -2,6 +2,7 @@ package cn.iocoder.yudao.coreservice.modules.pay.service.order.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.coreservice.modules.pay.convert.order.PayOrderCoreConvert;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
@ -19,6 +20,7 @@ import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmit
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitRespDTO;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.pay.config.PayProperties;
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
@ -43,6 +45,9 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
@Slf4j
public class PayOrderCoreServiceImpl implements PayOrderCoreService {
@Resource
private PayProperties payProperties;
@Resource
private PayAppCoreService payAppCoreService;
@Resource
@ -125,7 +130,7 @@ public class PayOrderCoreServiceImpl implements PayOrderCoreService {
// 商户相关字段
unifiedOrderReqDTO.setMerchantOrderId(order.getMerchantOrderId())
.setSubject(order.getSubject()).setBody(order.getBody())
.setNotifyUrl(app.getPayNotifyUrl());
.setNotifyUrl(genChannelPayNotifyUrl(reqDTO.getChannelCode()));
// 订单相关字段
unifiedOrderReqDTO.setAmount(order.getAmount()).setExpireTime(order.getExpireTime());
CommonResult<?> unifiedOrderResult = client.unifiedOrder(unifiedOrderReqDTO);
@ -137,6 +142,17 @@ public class PayOrderCoreServiceImpl implements PayOrderCoreService {
.setInvokeResponse(unifiedOrderResult.getData());
}
/**
* 根据支付渠道的编码,生成支付渠道的回调地址
*
* @param channelCode 支付渠道的编码
* @return 支付渠道的回调地址
*/
private String genChannelPayNotifyUrl(String channelCode) {
// _ 转化为 - 的原因,是因为 URL 我们统一采用中划线的原则
return payProperties.getPayNotifyUrl() + "/" + StrUtil.replace(channelCode, "_", "-");
}
private String generateOrderExtensionNo() {
// wx
// 2014