Commit 26798a881698a30f2b7e9f534c9b4bd6c8a88db4
1 parent
87d8b55b
修改code review
Showing
7 changed files
with
23 additions
and
22 deletions
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/impl/PayOrderCoreServiceImpl.java
| ... | ... | @@ -159,7 +159,7 @@ public class PayOrderCoreServiceImpl implements PayOrderCoreService { |
| 159 | 159 | * @return |
| 160 | 160 | */ |
| 161 | 161 | private String genChannelReturnUrl(PayChannelDO channel) { |
| 162 | - return payProperties.getReturnUrl() + "/" + StrUtil.replace(channel.getCode(), "_", "-") | |
| 162 | + return payProperties.getPayReturnUrl() + "/" + StrUtil.replace(channel.getCode(), "_", "-") | |
| 163 | 163 | + "/" + channel.getId(); |
| 164 | 164 | } |
| 165 | 165 | ... | ... |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/config/PayProperties.java
| ... | ... | @@ -23,15 +23,16 @@ public class PayProperties { |
| 23 | 23 | * 退款回调地址 |
| 24 | 24 | * 注意点,同 {@link #payNotifyUrl} 属性 |
| 25 | 25 | */ |
| 26 | - @NotEmpty(message = "短信发送频率不能为空") | |
| 26 | + @NotEmpty(message = "退款回调地址不能为空") | |
| 27 | 27 | @URL(message = "退款回调地址的格式必须是 URL") |
| 28 | 28 | private String refundNotifyUrl; |
| 29 | 29 | |
| 30 | - // TODO @jason:改成 payReturnUrl 。另外,可以加个 @NotEmpty,避免未填写 | |
| 30 | + | |
| 31 | 31 | /** |
| 32 | 32 | * 支付完成的返回地址 |
| 33 | 33 | */ |
| 34 | 34 | @URL(message = "支付返回的地址的格式必须是 URL") |
| 35 | - private String returnUrl; | |
| 35 | + @NotEmpty(message = "支付返回的地址不能为空") | |
| 36 | + private String payReturnUrl; | |
| 36 | 37 | |
| 37 | 38 | } | ... | ... |
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 | 19 | return GlobalErrorCodeConstants.SUCCESS; |
| 20 | 20 | } |
| 21 | 21 | // alipay wap api code 返回为null, 暂时定为-9999 |
| 22 | - if(Objects.equals(apiCode, "-9999")){ // TODO @jason:空格要注意哈。if () { | |
| 22 | + if (Objects.equals(apiCode, "-9999")) { | |
| 23 | 23 | return GlobalErrorCodeConstants.SUCCESS; |
| 24 | 24 | } |
| 25 | 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,7 +51,8 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig> |
| 51 | 51 | model.setTotalAmount(calculateAmount(reqDTO.getAmount()).toString()); |
| 52 | 52 | model.setProductCode("QUICK_WAP_PAY"); // TODO 芋艿:这里咋整 |
| 53 | 53 | //TODO 芋艿:这里咋整 jason @芋艿 可以去掉吧, |
| 54 | - // TODO @jason: 这个支付方式,需要有 sellerId 么? | |
| 54 | + // TODO 芋艿 似乎这里不用传sellerId | |
| 55 | + // https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay | |
| 55 | 56 | //model.setSellerId("2088102147948060"); |
| 56 | 57 | model.setTimeExpire(DateUtil.format(reqDTO.getExpireTime(),"yyyy-MM-dd HH:mm:ss")); |
| 57 | 58 | // TODO 芋艿:userIp |
| ... | ... | @@ -77,12 +78,13 @@ public class AlipayWapPayClient extends AbstractPayClient<AlipayPayClientConfig> |
| 77 | 78 | } |
| 78 | 79 | } |
| 79 | 80 | |
| 80 | - // TODO @jason: 注释记得补下哈 | |
| 81 | + | |
| 81 | 82 | /** |
| 83 | + * 从支付宝通知返回参数中解析 PayOrderNotifyRespDTO, 通知具体参数参考 | |
| 82 | 84 | * //https://opendocs.alipay.com/open/203/105286 |
| 83 | 85 | * @param data 通知结果 |
| 84 | - * @return | |
| 85 | - * @throws Exception | |
| 86 | + * @return 解析结果 PayOrderNotifyRespDTO | |
| 87 | + * @throws Exception 解析失败,抛出异常 | |
| 86 | 88 | */ |
| 87 | 89 | @Override |
| 88 | 90 | public PayOrderNotifyRespDTO parseOrderNotify(PayNotifyDataDTO data) throws Exception { | ... | ... |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/PayOrderController.java
| ... | ... | @@ -84,22 +84,21 @@ public class PayOrderController { |
| 84 | 84 | public String notifyAliPayWapPayOrder(@PathVariable("channelId") Long channelId, |
| 85 | 85 | @RequestParam Map<String, String> params, |
| 86 | 86 | @RequestBody String originData) throws Exception { |
| 87 | - //TODO @jason 校验 是否支付宝调用。 使用 支付宝publickey payclient 或许加一个校验方法 | |
| 87 | + //TODO @jason 校验 是否支付宝调用。 payclient 中加一个校验方法 | |
| 88 | 88 | payOrderCoreService.notifyPayOrder(channelId, PayChannelEnum.ALIPAY_WAP.getCode(), PayNotifyDataDTO.builder().params(params).body(originData).build()); |
| 89 | 89 | return "success"; |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | - // TODO @jason 如果有些字段不注释,可以删除哈。不然 IDEA 会报警 | |
| 92 | + | |
| 93 | 93 | /** |
| 94 | 94 | * 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 |
| 95 | - * @param channelId | |
| 96 | - * @return | |
| 97 | - * @throws Exception | |
| 95 | + * @param channelId 渠道id | |
| 96 | + * @return 返回跳转页面 | |
| 98 | 97 | */ |
| 99 | 98 | @GetMapping(value = "/return/alipay-wap/{channelId}") |
| 100 | 99 | @ApiOperation("支付宝wap页面回跳") |
| 101 | 100 | public String returnAliPayWapPayOrder(@PathVariable("channelId") Long channelId){ |
| 102 | - //TODO @jason 校验 是否支付宝调用。 支付宝publickey 可以根据 appId 跳转不同的页面 | |
| 101 | + //TODO 校验 是否支付宝调用。 可以根据 appId 跳转不同的页面 | |
| 103 | 102 | return "支付成功"; |
| 104 | 103 | } |
| 105 | 104 | ... | ... |
yudao-user-server/src/main/resources/application-local.yaml
| ... | ... | @@ -155,4 +155,4 @@ yudao: |
| 155 | 155 | pay: |
| 156 | 156 | pay-notify-url: http://jg6rde.natappfree.cc/api/pay/order/notify |
| 157 | 157 | refund-notify-url: http://jg6rde.natappfree.cc/api/pay/refund/notify |
| 158 | - return-url: http://jg6rde.natappfree.cc/api/pay/order/return | |
| 158 | + pay-return-url: http://jg6rde.natappfree.cc/api/pay/order/return | ... | ... |
yudao-user-server/src/main/resources/static/pay_alipay_wap.html
| ... | ... | @@ -9,18 +9,17 @@ |
| 9 | 9 | <body> |
| 10 | 10 | <div>点击如下按钮,发起支付的测试</div> |
| 11 | 11 | <div> |
| 12 | - <button id="alipay_wap">支付宝h5</button> | |
| 12 | + <button id="alipay_wap">支付宝手机网站支付</button> | |
| 13 | 13 | </div> |
| 14 | 14 | <div id="dynamic_form"></div> |
| 15 | 15 | </body> |
| 16 | 16 | <script> |
| 17 | - // TODO @jason:copy 过来后,有些注释要改过来哈 | |
| 17 | + | |
| 18 | 18 | let shopOrderId = undefined; |
| 19 | 19 | let payOrderId = undefined; |
| 20 | 20 | let server = 'http://127.0.0.1:28080'; |
| 21 | 21 | //let server = 'http://niubi.natapp1.cc'; |
| 22 | - // TODO openid | |
| 23 | - //let openid = "ockUAwIZ-0OeMZl9ogcZ4ILrGba0"; | |
| 22 | + | |
| 24 | 23 | $(function() { |
| 25 | 24 | // 自动发起商城订单编号 |
| 26 | 25 | $.ajax({ |
| ... | ... | @@ -38,7 +37,7 @@ |
| 38 | 37 | } |
| 39 | 38 | }) |
| 40 | 39 | }); |
| 41 | - // 微信公众号 | |
| 40 | + | |
| 42 | 41 | $( "#alipay_wap").on( "click", function() { |
| 43 | 42 | // 提交支付 |
| 44 | 43 | $.ajax({ |
| ... | ... | @@ -56,7 +55,7 @@ |
| 56 | 55 | return; |
| 57 | 56 | } |
| 58 | 57 | alert('点击确定,开始支付'); |
| 59 | - // 开始调用微信支付 | |
| 58 | + //支付宝 手机WAP 返回表单,自动跳到支付宝支付页面 | |
| 60 | 59 | let data = result.data.invokeResponse; |
| 61 | 60 | $("#dynamic_form").html(data.body); |
| 62 | 61 | } | ... | ... |