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 2acb5a656b038eff3adaf3145b512835cd9a10ee..3431c43e7caf443e10f9c75ff192f39d5d0d72d6 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 14bc62d0bc438ddb506d77b6b84415a200c793a2..ffadaa6954f254207f00f251133253df5cad59a3 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 0000000000000000000000000000000000000000..60362a20ee6bde8055263bd11e918400413c42f6 --- /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 1ca3cc28a0017a8ebe0f752492c5ccb18ef8916b..c9fa35400c42e442a2e93ffe6a6a6b2e38b3fe8d 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);