1. 修复支付宝 App 发起报错的问题

2. 移除微信 H5 支付,基本没人使用,减少复杂性
This commit is contained in:
YunaiV 2023-07-24 20:54:04 +08:00
parent 73e1158836
commit 5ae43a238d
7 changed files with 21 additions and 40 deletions

View File

@ -83,7 +83,7 @@ public abstract class AbstractPayClient<Config extends PayClientConfig> implemen
resp = doUnifiedOrder(reqDTO); resp = doUnifiedOrder(reqDTO);
} catch (Throwable ex) { } catch (Throwable ex) {
// 系统异常则包装成 PayException 异常抛出 // 系统异常则包装成 PayException 异常抛出
log.error("[unifiedRefund][客户端({}) request({}) 发起支付异常]", log.error("[unifiedOrder][客户端({}) request({}) 发起支付异常]",
getId(), toJsonString(reqDTO), ex); getId(), toJsonString(reqDTO), ex);
throw buildPayException(ex); throw buildPayException(ex);
} }

View File

@ -62,7 +62,6 @@ public class PayClientFactoryImpl implements PayClientFactory {
case WX_APP: return (AbstractPayClient<Config>) new WxAppPayClient(channelId, (WxPayClientConfig) config); case WX_APP: return (AbstractPayClient<Config>) new WxAppPayClient(channelId, (WxPayClientConfig) config);
case WX_BAR: return (AbstractPayClient<Config>) new WxBarPayClient(channelId, (WxPayClientConfig) config); case WX_BAR: return (AbstractPayClient<Config>) new WxBarPayClient(channelId, (WxPayClientConfig) config);
case WX_NATIVE: return (AbstractPayClient<Config>) new WxNativePayClient(channelId, (WxPayClientConfig) config); case WX_NATIVE: return (AbstractPayClient<Config>) new WxNativePayClient(channelId, (WxPayClientConfig) config);
case WX_H5: return (AbstractPayClient<Config>) new WxH5PayClient(channelId, (WxPayClientConfig) config);
// 支付宝支付 // 支付宝支付
case ALIPAY_WAP: return (AbstractPayClient<Config>) new AlipayWapPayClient(channelId, (AlipayPayClientConfig) config); case ALIPAY_WAP: return (AbstractPayClient<Config>) new AlipayWapPayClient(channelId, (AlipayPayClientConfig) config);
case ALIPAY_QR: return (AbstractPayClient<Config>) new AlipayQrPayClient(channelId, (AlipayPayClientConfig) config); case ALIPAY_QR: return (AbstractPayClient<Config>) new AlipayQrPayClient(channelId, (AlipayPayClientConfig) config);

View File

@ -33,9 +33,10 @@ public class AlipayAppPayClient extends AbstractAlipayPayClient {
// 通用的参数 // 通用的参数
model.setOutTradeNo(reqDTO.getOutTradeNo()); model.setOutTradeNo(reqDTO.getOutTradeNo());
model.setSubject(reqDTO.getSubject()); model.setSubject(reqDTO.getSubject());
model.setBody(reqDTO.getBody()); model.setBody(reqDTO.getBody() + "test");
model.setTotalAmount(formatAmount(reqDTO.getPrice())); model.setTotalAmount(formatAmount(reqDTO.getPrice()));
model.setProductCode(" QUICK_MSECURITY_PAY"); // 销售产品码无线快捷支付产品 model.setTimeExpire(formatTime(reqDTO.getExpireTime()));
model.setProductCode("QUICK_MSECURITY_PAY"); // 销售产品码无线快捷支付产品
// 个性化的参数 // 个性化的参数
// 支付宝扫码支付只有一种展示 // 支付宝扫码支付只有一种展示
String displayMode = PayOrderDisplayModeEnum.APP.getMode(); String displayMode = PayOrderDisplayModeEnum.APP.getMode();
@ -47,12 +48,12 @@ public class AlipayAppPayClient extends AbstractAlipayPayClient {
request.setReturnUrl(reqDTO.getReturnUrl()); request.setReturnUrl(reqDTO.getReturnUrl());
// 2.1 执行请求 // 2.1 执行请求
AlipayTradeAppPayResponse response = client.execute(request); AlipayTradeAppPayResponse response = client.sdkExecute(request);
// 2.2 处理结果 // 2.2 处理结果
if (!response.isSuccess()) { if (!response.isSuccess()) {
return buildClosedPayOrderRespDTO(reqDTO, response); return buildClosedPayOrderRespDTO(reqDTO, response);
} }
return PayOrderRespDTO.waitingOf(displayMode, "", return PayOrderRespDTO.waitingOf(displayMode, response.getBody(),
reqDTO.getOutTradeNo(), response); reqDTO.getOutTradeNo(), response);
} }

View File

@ -1,31 +0,0 @@
package cn.iocoder.yudao.framework.pay.core.client.impl.weixin;
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.exception.WxPayException;
// TODO 芋艿未实现
public class WxH5PayClient extends AbstractWxPayClient {
public WxH5PayClient(Long channelId, WxPayClientConfig config) {
super(channelId, PayChannelEnum.WX_H5.getCode(), config);
}
@Override
protected void doInit() {
super.doInit(WxPayConstants.TradeType.MWEB);
}
@Override
protected PayOrderRespDTO doUnifiedOrderV2(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
return null;
}
@Override
protected PayOrderRespDTO doUnifiedOrderV3(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
return null;
}
}

View File

@ -21,7 +21,6 @@ public enum PayChannelEnum {
WX_APP("wx_app", "微信 App 支付", WxPayClientConfig.class), WX_APP("wx_app", "微信 App 支付", WxPayClientConfig.class),
WX_NATIVE("wx_native", "微信 Native 支付", WxPayClientConfig.class), WX_NATIVE("wx_native", "微信 Native 支付", WxPayClientConfig.class),
WX_BAR("wx_bar", "微信付款码支付", WxPayClientConfig.class), WX_BAR("wx_bar", "微信付款码支付", WxPayClientConfig.class),
WX_H5("wx_h5", "微信 H5 支付", WxPayClientConfig.class),
ALIPAY_PC("alipay_pc", "支付宝 PC 网站支付", AlipayPayClientConfig.class), ALIPAY_PC("alipay_pc", "支付宝 PC 网站支付", AlipayPayClientConfig.class),
ALIPAY_WAP("alipay_wap", "支付宝 Wap 网站支付", AlipayPayClientConfig.class), ALIPAY_WAP("alipay_wap", "支付宝 Wap 网站支付", AlipayPayClientConfig.class),

View File

@ -177,6 +177,9 @@ export const PayDisplayModeEnum = {
}, },
QR_CODE: { QR_CODE: {
"mode": "qr_code" "mode": "qr_code"
},
APP: {
"mode": "app"
} }
} }

View File

@ -106,7 +106,7 @@ export default {
code: "alipay_app" code: "alipay_app"
}, { }, {
name: '支付宝扫码支付', name: '支付宝扫码支付',
icon: require("@/assets/images/pay/icon/alipay_app.svg"), icon: require("@/assets/images/pay/icon/alipay_qr.svg"),
code: "alipay_qr" code: "alipay_qr"
}, { }, {
name: '支付宝条码支付', name: '支付宝条码支付',
@ -237,6 +237,8 @@ export default {
this.displayUrl(channelCode, data) this.displayUrl(channelCode, data)
} else if (data.displayMode === PayDisplayModeEnum.QR_CODE.mode) { } else if (data.displayMode === PayDisplayModeEnum.QR_CODE.mode) {
this.displayQrCode(channelCode, data) this.displayQrCode(channelCode, data)
} else if (data.displayMode === PayDisplayModeEnum.APP.mode) {
this.displayApp(channelCode, data)
} }
// //
@ -270,7 +272,7 @@ export default {
location.href = data.displayContent location.href = data.displayContent
this.submitLoading = false this.submitLoading = false
}, },
/** 提交支付后(支付宝扫码支付) */ /** 提交支付后(扫码支付) */
displayQrCode(channelCode, data) { displayQrCode(channelCode, data) {
let title = '请使用手机浏览器“扫一扫”'; let title = '请使用手机浏览器“扫一扫”';
if (channelCode === PayChannelEnum.ALIPAY_WAP.code) { if (channelCode === PayChannelEnum.ALIPAY_WAP.code) {
@ -287,6 +289,14 @@ export default {
} }
this.submitLoading = false this.submitLoading = false
}, },
/** 提交支付后App */
displayApp(channelCode, data) {
if (channelCode === PayChannelEnum.ALIPAY_APP.code) {
this.$message.error('支付宝 App 无法在网页支付!');
}
this.submitLoading = false
},
/** 轮询查询任务 */ /** 轮询查询任务 */
createQueryInterval() { createQueryInterval() {
if (this.interval) { if (this.interval) {