mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-03 11:06:46 +00:00
feat wap和web支付
This commit is contained in:
@@ -24,10 +24,7 @@ public enum PayWayEnum {
|
||||
QRCODE("qrcode", "扫码支付"),
|
||||
BARCODE("barcode", "付款码"),
|
||||
// 通用
|
||||
JSAPI("jsapi", "公众号/小程序支付"),
|
||||
// 在非支付宝和微信中, 但支持这两类支付的时候, 需要进行区分
|
||||
JSAPI_WX_PAY("jsapi_wx_pay", "微信JS支付"),
|
||||
JSAPI_ALI_PAY("jsapi_ali_pay", "支付宝JS支付");
|
||||
JSAPI("jsapi", "公众号/小程序支付");
|
||||
|
||||
/** 编码 */
|
||||
private final String code;
|
||||
|
@@ -18,7 +18,7 @@ public class UnionPayWay {
|
||||
|
||||
// 支付方式
|
||||
private static final List<PayWayEnum> PAY_WAYS = Arrays.asList(PayWayEnum.WAP, PayWayEnum.APP, PayWayEnum.WEB,
|
||||
PayWayEnum.QRCODE, PayWayEnum.BARCODE);
|
||||
PayWayEnum.JSAPI, PayWayEnum.QRCODE, PayWayEnum.BARCODE);
|
||||
|
||||
/**
|
||||
* 根据编码获取
|
||||
|
@@ -4,8 +4,8 @@ import cn.bootx.platform.daxpay.code.PayWayEnum;
|
||||
import cn.bootx.platform.daxpay.exception.pay.PayFailureException;
|
||||
import cn.bootx.platform.daxpay.param.channel.UnionPayParam;
|
||||
import cn.bootx.platform.daxpay.param.pay.PayChannelParam;
|
||||
import cn.bootx.platform.daxpay.service.code.AliPayWay;
|
||||
import cn.bootx.platform.daxpay.service.code.UnionPayCode;
|
||||
import cn.bootx.platform.daxpay.service.code.UnionPayWay;
|
||||
import cn.bootx.platform.daxpay.service.common.context.PayLocal;
|
||||
import cn.bootx.platform.daxpay.service.common.local.PaymentContextLocal;
|
||||
import cn.bootx.platform.daxpay.service.core.channel.union.entity.UnionPayConfig;
|
||||
@@ -16,6 +16,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import com.egzosn.pay.common.bean.NoticeParams;
|
||||
import com.egzosn.pay.union.bean.UnionTransactionType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -46,7 +47,7 @@ public class UnionPayService {
|
||||
throw new PayFailureException("云闪付未配置可用的支付方式");
|
||||
}
|
||||
// 发起的支付类型是否在支持的范围内
|
||||
PayWayEnum payWayEnum = Optional.ofNullable(AliPayWay.findByCode(payChannelParam.getWay()))
|
||||
PayWayEnum payWayEnum = Optional.ofNullable(UnionPayWay.findByCode(payChannelParam.getWay()))
|
||||
.orElseThrow(() -> new PayFailureException("非法的云闪付支付类型"));
|
||||
if (!unionPayConfig.getPayWays().contains(payWayEnum.getCode())) {
|
||||
throw new PayFailureException("该云闪付支付方式不可用");
|
||||
@@ -75,10 +76,33 @@ public class UnionPayService {
|
||||
else if (payWayEnum == PayWayEnum.APP) {
|
||||
payBody = this.appPay(totalFee, payOrder, unionPayParam, unionPayKit);
|
||||
}
|
||||
// web支付
|
||||
else if (payWayEnum == PayWayEnum.WEB) {
|
||||
payBody = this.formPay(totalFee, payOrder, unionPayKit, UnionTransactionType.WEB);
|
||||
}
|
||||
// wap支付
|
||||
else if (payWayEnum == PayWayEnum.WAP) {
|
||||
payBody = this.formPay(totalFee, payOrder, unionPayKit, UnionTransactionType.WAP );
|
||||
}
|
||||
|
||||
asyncPayInfo.setPayBody(payBody);
|
||||
}
|
||||
|
||||
/**
|
||||
* jsapi支付
|
||||
*/
|
||||
private String formPay(BigDecimal amount, PayOrder payOrder, UnionPayKit unionPayKit, UnionTransactionType type) {
|
||||
Date expiredTime = DateUtil.date(payOrder.getExpiredTime());
|
||||
|
||||
UnionPayOrder unionPayOrder = new UnionPayOrder();
|
||||
unionPayOrder.setOutTradeNo(String.valueOf(payOrder.getId()));
|
||||
unionPayOrder.setSubject(payOrder.getTitle());
|
||||
unionPayOrder.setPrice(amount);
|
||||
unionPayOrder.setExpirationTime(expiredTime);
|
||||
unionPayOrder.setTransactionType(type);
|
||||
return unionPayKit.toPay(unionPayOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* APP支付
|
||||
*/
|
||||
|
@@ -555,7 +555,6 @@ public class UnionPayKit extends UnionPayService {
|
||||
if (SDKConstants.OK_RESP_CODE.equals(response.get(SDKConstants.param_respCode))) {
|
||||
// //成功,获取tn号
|
||||
// String tn = (String)response.get(SDKConstants.param_tn);
|
||||
// //TODO
|
||||
return response;
|
||||
}
|
||||
throw new PayErrorException(new PayException((String) response.get(SDKConstants.param_respCode), (String) response.get(SDKConstants.param_respMsg), response.toJSONString()));
|
||||
|
Reference in New Issue
Block a user