From 2a5a6e48313dd352e9d953391fe0f025728eb831 Mon Sep 17 00:00:00 2001 From: bootx Date: Tue, 12 Mar 2024 23:44:28 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=81=94=E8=B0=83wap=E5=92=8Cweb?= =?UTF-8?q?=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _doc/Task.md | 2 +- .../platform/daxpay/code/PayWayEnum.java | 3 ++- .../daxpay/service/code/UnionPayWay.java | 2 +- .../union/service/UnionPayService.java | 20 +++++++++++++++++++ .../service/sdk/union/api/UnionPayKit.java | 3 +-- 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/_doc/Task.md b/_doc/Task.md index 17843504b..8bdf8fd5c 100644 --- a/_doc/Task.md +++ b/_doc/Task.md @@ -5,7 +5,7 @@ - [x] 退款 - [x] 同步 - [ ] 对账 - - [ ] 回调 + - [x] 回调 - [ ] 统一关闭接口增加使用撤销关闭订单 - [x] 手动触发通知消息发送 - [x] 退款操作支持重试 diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayWayEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayWayEnum.java index 7a41bd5b7..93abc50f2 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayWayEnum.java +++ b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/code/PayWayEnum.java @@ -24,7 +24,8 @@ public enum PayWayEnum { QRCODE("qrcode", "扫码支付"), BARCODE("barcode", "付款码"), // 通用 - JSAPI("jsapi", "公众号/小程序支付"); + JSAPI("jsapi", "JSAPI方式"), + B2B("b2b", "企业网银"); /** 编码 */ private final String code; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/UnionPayWay.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/UnionPayWay.java index 21d627f57..c0b7130a8 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/UnionPayWay.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/UnionPayWay.java @@ -18,7 +18,7 @@ public class UnionPayWay { // 支付方式 private static final List PAY_WAYS = Arrays.asList(PayWayEnum.WAP, PayWayEnum.APP, PayWayEnum.WEB, - PayWayEnum.JSAPI, PayWayEnum.QRCODE, PayWayEnum.BARCODE); + PayWayEnum.JSAPI, PayWayEnum.QRCODE, PayWayEnum.BARCODE,PayWayEnum.B2B); /** * 根据编码获取 diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/union/service/UnionPayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/union/service/UnionPayService.java index 80e3d4472..80d08b9ba 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/union/service/UnionPayService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/channel/union/service/UnionPayService.java @@ -84,6 +84,10 @@ public class UnionPayService { else if (payWayEnum == PayWayEnum.WAP) { payBody = this.formPay(totalFee, payOrder, unionPayKit, UnionTransactionType.WAP ); } + // b2b支付 + else if (payWayEnum == PayWayEnum.B2B) { + payBody = this.b2bPay(totalFee, payOrder, unionPayKit); + } asyncPayInfo.setPayBody(payBody); } @@ -98,11 +102,27 @@ public class UnionPayService { unionPayOrder.setOutTradeNo(String.valueOf(payOrder.getId())); unionPayOrder.setSubject(payOrder.getTitle()); unionPayOrder.setPrice(amount); + unionPayOrder.setBankType(); unionPayOrder.setExpirationTime(expiredTime); unionPayOrder.setTransactionType(type); return unionPayKit.toPay(unionPayOrder); } + /** + * jsapi支付 + */ + private String b2bPay(BigDecimal amount, PayOrder payOrder, UnionPayKit unionPayKit) { + 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(UnionTransactionType.B2B); + return unionPayKit.toPay(unionPayOrder); + } + /** * APP支付 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/sdk/union/api/UnionPayKit.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/sdk/union/api/UnionPayKit.java index b4c7e0af3..a96b4c865 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/sdk/union/api/UnionPayKit.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/sdk/union/api/UnionPayKit.java @@ -284,14 +284,13 @@ public class UnionPayKit extends UnionPayService { params.put(SDKConstants.param_reqReserved, order.getAddition()); } switch (type) { + // case WAP: case WEB: - //todo PCwap网关跳转支付特殊用法.txt case B2B: params.put(SDKConstants.param_txnAmt, Util.conversionCentAmount(order.getPrice())); params.put("orderDesc", order.getSubject()); params.put(SDKConstants.param_payTimeout, getPayTimeout(order.getExpirationTime())); - params.put(SDKConstants.param_frontUrl, payConfigStorage.getReturnUrl()); break; case CONSUME: