diff --git a/docs/dev-ops/nginx/html/form.html b/docs/dev-ops/nginx/html/form.html new file mode 100644 index 0000000..1b82032 --- /dev/null +++ b/docs/dev-ops/nginx/html/form.html @@ -0,0 +1,5 @@ +
+ + +
+ \ No newline at end of file diff --git a/docs/dev-ops/nginx/html/images/keyboard-001.jpg b/docs/dev-ops/nginx/html/images/keyboard-001.jpg new file mode 100644 index 0000000..7bc43e1 Binary files /dev/null and b/docs/dev-ops/nginx/html/images/keyboard-001.jpg differ diff --git a/docs/dev-ops/nginx/html/images/placeholder.png b/docs/dev-ops/nginx/html/images/placeholder.png new file mode 100644 index 0000000..3c58847 Binary files /dev/null and b/docs/dev-ops/nginx/html/images/placeholder.png differ diff --git a/docs/dev-ops/nginx/html/index.html b/docs/dev-ops/nginx/html/index.html new file mode 100644 index 0000000..d941634 --- /dev/null +++ b/docs/dev-ops/nginx/html/index.html @@ -0,0 +1,123 @@ + + + + + + 商品下单支付页 + + + +
+
+

程序员 - 同款机械键盘

+ + +

价格:¥1.68

+
+ + 测试账号:jhmfgu7187@sandbox.com 密码:111111 支付:111111 +
+ + + + + diff --git a/docs/dev-ops/nginx/html/login.html b/docs/dev-ops/nginx/html/login.html new file mode 100644 index 0000000..a393a3f --- /dev/null +++ b/docs/dev-ops/nginx/html/login.html @@ -0,0 +1,105 @@ + + + + + + S Pay Mall 商城登录页 + + + +
+

S Pay Mall 商城登录页

+
+ 微信二维码 +
+

请使用微信扫描二维码登录

+
+ + + + diff --git a/pay-mall-app/src/main/java/edu/whut/config/AliPayConfig.java b/pay-mall-app/src/main/java/edu/whut/config/AliPayConfig.java index 294ba42..59a691b 100644 --- a/pay-mall-app/src/main/java/edu/whut/config/AliPayConfig.java +++ b/pay-mall-app/src/main/java/edu/whut/config/AliPayConfig.java @@ -2,7 +2,6 @@ package edu.whut.config; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -12,12 +11,12 @@ public class AliPayConfig { @Bean("alipayClient") public AlipayClient alipayClient(AliPayConfigProperties properties) { return new DefaultAlipayClient(properties.getGatewayUrl(), - properties.getApp_id(), - properties.getMerchant_private_key(), + properties.getAppId(), + properties.getMerchantPrivateKey(), properties.getFormat(), properties.getCharset(), - properties.getAlipay_public_key(), - properties.getSign_type()); + properties.getAlipayPublicKey(), + properties.getSignType()); } } diff --git a/pay-mall-app/src/main/java/edu/whut/config/AliPayConfigProperties.java b/pay-mall-app/src/main/java/edu/whut/config/AliPayConfigProperties.java index cda1520..a31663c 100644 --- a/pay-mall-app/src/main/java/edu/whut/config/AliPayConfigProperties.java +++ b/pay-mall-app/src/main/java/edu/whut/config/AliPayConfigProperties.java @@ -10,21 +10,21 @@ import org.springframework.stereotype.Component; public class AliPayConfigProperties { // 「沙箱环境」应用ID - 您的APPID,收款账号既是你的APPID对应支付宝账号。获取地址;https://open.alipay.com/develop/sandbox/app - private String app_id; + private String appId; // 「沙箱环境」商户私钥,你的PKCS8格式RSA2私钥 - private String merchant_private_key; + private String merchantPrivateKey; // 「沙箱环境」支付宝公钥 - private String alipay_public_key; + private String alipayPublicKey; // 「沙箱环境」服务器异步通知页面路径 - private String notify_url; + private String notifyUrl; // 「沙箱环境」页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 - private String return_url; + private String returnUrl; // 「沙箱环境」 private String gatewayUrl; // 签名方式 - private String sign_type = "RSA2"; + private String signType = "RSA2"; // 字符编码格式 - private String charset = "utf-8"; + private String charset = "utf-8"; // 传输格式 private String format = "json"; diff --git a/pay-mall-app/src/main/resources/application-dev.yml b/pay-mall-app/src/main/resources/application-dev.yml index dae3ecb..617cb4d 100644 --- a/pay-mall-app/src/main/resources/application-dev.yml +++ b/pay-mall-app/src/main/resources/application-dev.yml @@ -52,7 +52,7 @@ alipay: alipay_public_key: ${paymall.alipay.alipay-public-key} notify_url: ${paymall.alipay.notify-url} return_url: ${paymall.alipay.return-url} - gateway-url: ${paymall.alipay.gateway-url} + gateway_url: ${paymall.alipay.gateway-url} # 日志 logging: diff --git a/pay-mall-app/src/test/java/edu/whut/test/AliPayTest.java b/pay-mall-app/src/test/java/edu/whut/test/AliPayTest.java index fab6c8b..6a48f10 100644 --- a/pay-mall-app/src/test/java/edu/whut/test/AliPayTest.java +++ b/pay-mall-app/src/test/java/edu/whut/test/AliPayTest.java @@ -33,24 +33,24 @@ public class AliPayTest { @Before public void init() { - log.info(config.getNotify_url()); + log.info(config.getNotifyUrl()); // ④ 用属性里的值来构造 AlipayClient this.alipayClient = new DefaultAlipayClient( config.getGatewayUrl(), - config.getApp_id(), - config.getMerchant_private_key(), + config.getAppId(), + config.getMerchantPrivateKey(), config.getFormat(), config.getCharset(), - config.getAlipay_public_key(), - config.getSign_type() + config.getAlipayPublicKey(), + config.getSignType() ); } @Test public void test_aliPay_pageExecute() throws AlipayApiException { AlipayTradePagePayRequest request = new AlipayTradePagePayRequest(); // 发送请求的 Request类 - request.setNotifyUrl(config.getNotify_url()); - request.setReturnUrl(config.getReturn_url()); + request.setNotifyUrl(config.getNotifyUrl()); + request.setReturnUrl(config.getReturnUrl()); JSONObject bizContent = new JSONObject(); bizContent.put("out_trade_no", "smile000091004001"); // 我们自己生成的订单编号 @@ -79,7 +79,7 @@ public class AliPayTest { public void test_alipay_certificateExecute() throws AlipayApiException { AlipayTradeQueryModel bizModel = new AlipayTradeQueryModel(); - bizModel.setOutTradeNo("daniel82AAAA000032333361Y001"); + bizModel.setOutTradeNo("smile000091004001"); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizModel(bizModel); diff --git a/pay-mall-trigger/src/main/java/edu/whut/trigger/job/NoPayNotifyOrderJob.java b/pay-mall-trigger/src/main/java/edu/whut/trigger/job/NoPayNotifyOrderJob.java index f1dde9a..ad77585 100644 --- a/pay-mall-trigger/src/main/java/edu/whut/trigger/job/NoPayNotifyOrderJob.java +++ b/pay-mall-trigger/src/main/java/edu/whut/trigger/job/NoPayNotifyOrderJob.java @@ -4,6 +4,7 @@ import com.alipay.api.domain.AlipayTradeQueryModel; import com.alipay.api.request.AlipayTradeQueryRequest; import com.alipay.api.response.AlipayTradeQueryResponse; import edu.whut.domain.order.service.IOrderService; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -16,12 +17,12 @@ import java.util.List; */ @Slf4j @Component() +@RequiredArgsConstructor public class NoPayNotifyOrderJob { - @Resource - private IOrderService orderService; - @Resource - private AlipayClient alipayClient; + private final IOrderService orderService; + + private final AlipayClient alipayClient; /** * 每3秒执行一次,扫描超过1分钟未收到回调的待支付订单 @@ -29,7 +30,7 @@ public class NoPayNotifyOrderJob { @Scheduled(cron = "0/3 * * * * ?") public void exec() { try { - log.info("任务;检测未接收到或未正确处理的支付回调通知"); + log.info("任务:检测未接收到或未正确处理的支付回调通知"); List orderIds = orderService.queryNoPayNotifyOrder(); if (null == orderIds || orderIds.isEmpty()) return; @@ -46,10 +47,15 @@ public class NoPayNotifyOrderJob { // 如果支付宝返回业务成功码(10000),则更新订单为支付成功 if ("10000".equals(code)) { orderService.changeOrderPaySuccess(orderId); + }else { + log.warn("订单[{}]支付宝查询未成功:{}/{}", + orderId, + alipayTradeQueryResponse.getSubCode(), + alipayTradeQueryResponse.getSubMsg()); } } } catch (Exception e) { - log.error("检测未接收到或未正确处理的支付回调通知失败", e); + log.error("任务:检测未接收到或未正确处理的支付回调通知 失败", e); } }