From 7bf0247ae1112b8bbd4e62d031e4a46a219fc866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E5=BA=B7=E6=A1=A5?= Date: Mon, 28 Aug 2023 14:25:26 +0800 Subject: [PATCH] =?UTF-8?q?ISSUE-I7C8TN=20=E6=94=AF=E4=BB=98=E5=AE=9Dapi?= =?UTF-8?q?=E7=BD=91=E5=85=B3=E6=94=B9=E4=B8=BA=E5=8F=AF=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E8=80=8C=E4=B8=8D=E6=98=AF=E5=86=99=E6=AD=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/ali/api/AliPayConfigStorage.java | 12 +++++ .../com/egzosn/pay/ali/api/AliPayService.java | 6 ++- .../egzosn/pay/ali/api/ApiGateWayConfig.java | 48 +++++++++++++++++++ .../pay/demo/controller/AliPayController.java | 9 +++- 4 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 pay-java-ali/src/main/java/com/egzosn/pay/ali/api/ApiGateWayConfig.java diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java index 2acb5a6..3431c43 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayConfigStorage.java @@ -63,6 +63,10 @@ public class AliPayConfigStorage extends BasePayConfigStorage { * 证书信息 */ private CertEnvironment certEnvironment; + /** + * api 网关配置 + */ + private ApiGateWayConfig apiGateWayConfig; public String getAppAuthToken() { @@ -156,6 +160,14 @@ public class AliPayConfigStorage extends BasePayConfigStorage { this.certEnvironment = certEnvironment; } + public ApiGateWayConfig getApiGateWayConfig() { + return apiGateWayConfig; + } + + public void setApiGateWayConfig(ApiGateWayConfig apiGateWayConfig) { + this.apiGateWayConfig = apiGateWayConfig; + } + /** * 初始化证书信息 */ diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java index 14bc62d..ffadaa6 100644 --- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java @@ -72,7 +72,9 @@ public class AliPayService extends BasePayService implement */ @Override public String getReqUrl(TransactionType transactionType) { - return payConfigStorage.isTest() ? AliPayConst.DEV_REQ_URL : HTTPS_REQ_URL; + return payConfigStorage.isTest() ? + payConfigStorage.getApiGateWayConfig().getSandBoxGateWay() : + payConfigStorage.getApiGateWayConfig().getProdGateWay(); } /** @@ -180,7 +182,7 @@ public class AliPayService extends BasePayService implement * @param respMap 响应Map * @return 支付宝公钥证书序列号 */ - public String getAliPayCertSN(java.util.Map respMap) { + public String getAliPayCertSN(Map respMap) { return (String) respMap.get(ALIPAY_CERT_SN_FIELD); } diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/ApiGateWayConfig.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/ApiGateWayConfig.java new file mode 100644 index 0000000..60362a2 --- /dev/null +++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/ApiGateWayConfig.java @@ -0,0 +1,48 @@ +package com.egzosn.pay.ali.api; + +/** + * @author 吴康桥 + * @Description + * @date 2023/8/28 12:13 + */ + + +public class ApiGateWayConfig { + + /** + * 支付宝沙箱网关地址 + */ + private String sandBoxGateWay; + /** + * 沙箱websocket服务地址 + */ + private String sandBoxWsUrl; + /** + * 正式环境网关 + */ + private String prodGateWay; + + public String getSandBoxGateWay() { + return sandBoxGateWay; + } + + public void setSandBoxGateWay(String sandBoxGateWay) { + this.sandBoxGateWay = sandBoxGateWay; + } + + public String getSandBoxWsUrl() { + return sandBoxWsUrl; + } + + public void setSandBoxWsUrl(String sandBoxWsUrl) { + this.sandBoxWsUrl = sandBoxWsUrl; + } + + public String getProdGateWay() { + return prodGateWay; + } + + public void setProdGateWay(String prodGateWay) { + this.prodGateWay = prodGateWay; + } +} diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java index 1ca3cc2..c9fa354 100644 --- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java +++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/AliPayController.java @@ -14,6 +14,7 @@ import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; +import com.egzosn.pay.ali.api.ApiGateWayConfig; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -98,7 +99,11 @@ public class AliPayController { aliPayConfigStorage.setInputCharset("utf-8"); //是否为测试账号,沙箱环境 aliPayConfigStorage.setTest(true); - + ApiGateWayConfig apiGateWayConfig = new ApiGateWayConfig(); + apiGateWayConfig.setSandBoxWsUrl("openchannel-sandbox.dl.alipaydev.com"); + apiGateWayConfig.setSandBoxGateWay("https://openapi-sandbox.dl.alipaydev.com/gateway.do"); + apiGateWayConfig.setProdGateWay("https://openapi.alipay.com/gateway.do"); + aliPayConfigStorage.setApiGateWayConfig(apiGateWayConfig); //请求连接池配置 HttpConfigStorage httpConfigStorage = new HttpConfigStorage(); //最大连接数 @@ -120,7 +125,7 @@ public class AliPayController { * @param price 金额 * @return 跳到支付页面 */ - @RequestMapping(value = "toPay.html", produces = "text/html;charset=UTF-8") + @RequestMapping(value = "toPay.do", produces = "text/html;charset=UTF-8") public String toPay(BigDecimal price) { //及时收款 PayOrder order = new PayOrder("订单title", "摘'要", null == price ? BigDecimal.valueOf(0.01) : price, UUID.randomUUID().toString().replace("-", ""), AliTransactionType.PAGE); -- Gitee