Commit 6cadafb3f10c5605d50b939eab7248f9bf03e63a

Authored by YunaiV
1 parent a1105ffd

code review 支付宝 wap 的逻辑

yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/config/PayProperties.java
@@ -6,8 +6,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @@ -6,8 +6,6 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
6 import org.springframework.validation.annotation.Validated; 6 import org.springframework.validation.annotation.Validated;
7 7
8 import javax.validation.constraints.NotEmpty; 8 import javax.validation.constraints.NotEmpty;
9 -import javax.validation.constraints.NotNull;  
10 -import java.time.Duration;  
11 9
12 @ConfigurationProperties(prefix = "yudao.pay") 10 @ConfigurationProperties(prefix = "yudao.pay")
13 @Validated 11 @Validated
@@ -25,11 +23,11 @@ public class PayProperties { @@ -25,11 +23,11 @@ public class PayProperties {
25 * 退款回调地址 23 * 退款回调地址
26 * 注意点,同 {@link #payNotifyUrl} 属性 24 * 注意点,同 {@link #payNotifyUrl} 属性
27 */ 25 */
28 - @NotNull(message = "短信发送频率不能为空") 26 + @NotEmpty(message = "短信发送频率不能为空")
29 @URL(message = "退款回调地址的格式必须是 URL") 27 @URL(message = "退款回调地址的格式必须是 URL")
30 private String refundNotifyUrl; 28 private String refundNotifyUrl;
31 29
32 - 30 + // TODO @jason:改成 payReturnUrl 。另外,可以加个 @NotEmpty,避免未填写
33 /** 31 /**
34 * 支付完成的返回地址 32 * 支付完成的返回地址
35 */ 33 */
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/NotifyDataDTO.java
@@ -6,12 +6,15 @@ import lombok.ToString; @@ -6,12 +6,15 @@ import lombok.ToString;
6 6
7 import java.util.Map; 7 import java.util.Map;
8 8
  9 +// TODO @jason:NotifyDataDTO=》PayNotifyDataDTO。另外注释记得加起来哈
9 @Data 10 @Data
10 @ToString 11 @ToString
11 @Builder 12 @Builder
12 public class NotifyDataDTO { 13 public class NotifyDataDTO {
13 14
  15 + // TODO @jason:这个字段,改成 body
14 private String origData; 16 private String origData;
  17 + // TODO @jason:这个字段如果暂时没用,可以去掉。
15 //1:xml 2:form 18 //1:xml 2:form
16 private int format; 19 private int format;
17 20
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/PayOrderUnifiedReqDTO.java
@@ -44,13 +44,15 @@ public class PayOrderUnifiedReqDTO { @@ -44,13 +44,15 @@ public class PayOrderUnifiedReqDTO {
44 @Length(max = 128, message = "商品描述信息长度不能超过128") 44 @Length(max = 128, message = "商品描述信息长度不能超过128")
45 private String body; 45 private String body;
46 /** 46 /**
47 - * 支付结果的回调地址 47 + * 支付结果的 notify 回调地址
48 */ 48 */
49 @NotEmpty(message = "支付结果的回调地址不能为空") 49 @NotEmpty(message = "支付结果的回调地址不能为空")
50 - @URL(message = "支付结果的回调地址必须是 URL 格式") 50 + @URL(message = "支付结果的 notify 回调地址必须是 URL 格式")
51 private String notifyUrl; 51 private String notifyUrl;
52 -  
53 - @URL(message = "支付结果的return 必须是 URL 格式") 52 + /**
  53 + * 支付结果的 return 回调地址
  54 + */
  55 + @URL(message = "支付结果的 return 回调地址必须是 URL 格式")
54 private String returnUrl; 56 private String returnUrl;
55 57
56 // ========== 订单相关字段 ========== 58 // ========== 订单相关字段 ==========
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AlipayPayCodeMapping.java
@@ -19,7 +19,7 @@ public class AlipayPayCodeMapping extends AbstractPayCodeMapping { @@ -19,7 +19,7 @@ public class AlipayPayCodeMapping extends AbstractPayCodeMapping {
19 return GlobalErrorCodeConstants.SUCCESS; 19 return GlobalErrorCodeConstants.SUCCESS;
20 } 20 }
21 // alipay wap api code 返回为null, 暂时定为-9999 21 // alipay wap api code 返回为null, 暂时定为-9999
22 - if(Objects.equals(apiCode, "-9999")){ 22 + if(Objects.equals(apiCode, "-9999")){ // TODO @jason:空格要注意哈。if () {
23 return GlobalErrorCodeConstants.SUCCESS; 23 return GlobalErrorCodeConstants.SUCCESS;
24 } 24 }
25 return null; 25 return null;
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/alipay/AlipayWapPayClient.java
@@ -51,6 +51,7 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig> @@ -51,6 +51,7 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig>
51 model.setTotalAmount(calculateAmount(reqDTO.getAmount()).toString()); 51 model.setTotalAmount(calculateAmount(reqDTO.getAmount()).toString());
52 model.setProductCode("QUICK_WAP_PAY"); // TODO 芋艿:这里咋整 52 model.setProductCode("QUICK_WAP_PAY"); // TODO 芋艿:这里咋整
53 //TODO 芋艿:这里咋整 jason @芋艿 可以去掉吧, 53 //TODO 芋艿:这里咋整 jason @芋艿 可以去掉吧,
  54 + // TODO @jason: 这个支付方式,需要有 sellerId 么?
54 //model.setSellerId("2088102147948060"); 55 //model.setSellerId("2088102147948060");
55 model.setTimeExpire(DateUtil.format(reqDTO.getExpireTime(),"yyyy-MM-dd HH:mm:ss")); 56 model.setTimeExpire(DateUtil.format(reqDTO.getExpireTime(),"yyyy-MM-dd HH:mm:ss"));
56 // TODO 芋艿:userIp 57 // TODO 芋艿:userIp
@@ -76,7 +77,7 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig> @@ -76,7 +77,7 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig>
76 } 77 }
77 } 78 }
78 79
79 - 80 + // TODO @jason: 注释记得补下哈
80 /** 81 /**
81 * //https://opendocs.alipay.com/open/203/105286 82 * //https://opendocs.alipay.com/open/203/105286
82 * @param data 通知结果 83 * @param data 通知结果
@@ -92,4 +93,5 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig> @@ -92,4 +93,5 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig>
92 .successTime(DateUtil.parse(params.get("notify_time"), "yyyy-MM-dd HH:mm:ss")) 93 .successTime(DateUtil.parse(params.get("notify_time"), "yyyy-MM-dd HH:mm:ss"))
93 .data(data.getOrigData()).build(); 94 .data(data.getOrigData()).build();
94 } 95 }
  96 +
95 } 97 }
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/PayOrderController.java
@@ -79,13 +79,14 @@ public class PayOrderController { @@ -79,13 +79,14 @@ public class PayOrderController {
79 @PostMapping(value = "/notify/alipay-wap/{channelId}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 79 @PostMapping(value = "/notify/alipay-wap/{channelId}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
80 @ApiOperation("支付宝wap页面回调") 80 @ApiOperation("支付宝wap页面回调")
81 public String notifyAliPayWapPayOrder(@PathVariable("channelId") Long channelId, 81 public String notifyAliPayWapPayOrder(@PathVariable("channelId") Long channelId,
82 - @RequestParam Map<String, String> params,  
83 - @RequestBody String originData) throws Exception { 82 + @RequestParam Map<String, String> params,
  83 + @RequestBody String originData) throws Exception {
84 //TODO @jason 校验 是否支付宝调用。 使用 支付宝publickey payclient 或许加一个校验方法 84 //TODO @jason 校验 是否支付宝调用。 使用 支付宝publickey payclient 或许加一个校验方法
85 payOrderCoreService.notifyPayOrder(channelId, PayChannelEnum.ALIPAY_WAP.getCode(), NotifyDataDTO.builder().params(params).origData(originData).build()); 85 payOrderCoreService.notifyPayOrder(channelId, PayChannelEnum.ALIPAY_WAP.getCode(), NotifyDataDTO.builder().params(params).origData(originData).build());
86 return "success"; 86 return "success";
87 } 87 }
88 88
  89 + // TODO @jason 如果有些字段不注释,可以删除哈。不然 IDEA 会报警
89 /** 90 /**
90 * https://opendocs.alipay.com/open/203/105285#%E5%89%8D%E5%8F%B0%E5%9B%9E%E8%B7%B3%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E 91 * https://opendocs.alipay.com/open/203/105285#%E5%89%8D%E5%8F%B0%E5%9B%9E%E8%B7%B3%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E
91 * @param channelId 92 * @param channelId
yudao-user-server/src/main/resources/static/pay_alipay_wap.html
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
14 <div id="dynamic_form"></div> 14 <div id="dynamic_form"></div>
15 </body> 15 </body>
16 <script> 16 <script>
  17 + // TODO @jason:copy 过来后,有些注释要改过来哈
17 let shopOrderId = undefined; 18 let shopOrderId = undefined;
18 let payOrderId = undefined; 19 let payOrderId = undefined;
19 let server = 'http://127.0.0.1:28080'; 20 let server = 'http://127.0.0.1:28080';
yudao-user-server/src/main/resources/static/pay.html renamed to yudao-user-server/src/main/resources/static/pay_wx_pub.html