Commit b18cd457c8b4b9c9fb00927d73d88e088fcdf49c
1 parent
7d6f205d
code review 支付相关的代码实现
Showing
7 changed files
with
11 additions
and
8 deletions
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/PayNotifyDataDTO.java
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/AbstractPayClient.java
| @@ -105,12 +105,11 @@ public abstract class AbstractPayClient<Config extends PayClientConfig> implemen | @@ -105,12 +105,11 @@ public abstract class AbstractPayClient<Config extends PayClientConfig> implemen | ||
| 105 | 105 | ||
| 106 | @Override | 106 | @Override |
| 107 | public PayRefundUnifiedRespDTO unifiedRefund(PayRefundUnifiedReqDTO reqDTO) { | 107 | public PayRefundUnifiedRespDTO unifiedRefund(PayRefundUnifiedReqDTO reqDTO) { |
| 108 | - | ||
| 109 | PayRefundUnifiedRespDTO resp; | 108 | PayRefundUnifiedRespDTO resp; |
| 110 | try { | 109 | try { |
| 111 | resp = doUnifiedRefund(reqDTO); | 110 | resp = doUnifiedRefund(reqDTO); |
| 112 | - }catch (SocketTimeoutException ex){ | ||
| 113 | - //网络 read time out 异常 | 111 | + } catch (SocketTimeoutException ex){ |
| 112 | + // 网络 read time out 异常 | ||
| 114 | log.error("[unifiedRefund][request({}) 发起退款失败,网络读超时,退款状态未知]", toJsonString(reqDTO), ex); | 113 | log.error("[unifiedRefund][request({}) 发起退款失败,网络读超时,退款状态未知]", toJsonString(reqDTO), ex); |
| 115 | return PayRefundUnifiedRespDTO.builder() | 114 | return PayRefundUnifiedRespDTO.builder() |
| 116 | .exceptionMsg(ex.getMessage()) | 115 | .exceptionMsg(ex.getMessage()) |
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/enums/PayChannelRespEnum.java
yudao-framework/yudao-spring-boot-starter-biz-pay/src/test/java/cn.iocoder.yudao.framework.pay.core.client.impl/alipay/AlipayQrPayClientTest.java
| @@ -25,6 +25,7 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | @@ -25,6 +25,7 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | ||
| 25 | .setAppId("2021000118634035") | 25 | .setAppId("2021000118634035") |
| 26 | .setServerUrl(AlipayPayClientConfig.SERVER_URL_SANDBOX) | 26 | .setServerUrl(AlipayPayClientConfig.SERVER_URL_SANDBOX) |
| 27 | .setSignType(AlipayPayClientConfig.SIGN_TYPE_DEFAULT) | 27 | .setSignType(AlipayPayClientConfig.SIGN_TYPE_DEFAULT) |
| 28 | + // TODO @tina:key 可以随机就好,简洁一点哈。 | ||
| 28 | .setPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHsEV1cDupwJ" + | 29 | .setPrivateKey("MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHsEV1cDupwJ" + |
| 29 | "v890x84qbppUtRIfhaKSwSVN0thCcsDCaAsGR5MZslDkO8NCT9V4r2SVXjyY7eJUZlZd1M0C8T" + | 30 | "v890x84qbppUtRIfhaKSwSVN0thCcsDCaAsGR5MZslDkO8NCT9V4r2SVXjyY7eJUZlZd1M0C8T" + |
| 30 | "01Tg4UOx5LUbic0O3A1uJMy6V1n9IyYwbAW3AEZhBd5bSbPgrqvmv3NeWSTQT6Anxnllf+2iDH" + | 31 | "01Tg4UOx5LUbic0O3A1uJMy6V1n9IyYwbAW3AEZhBd5bSbPgrqvmv3NeWSTQT6Anxnllf+2iDH" + |
| @@ -50,8 +51,8 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | @@ -50,8 +51,8 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | ||
| 50 | "gnZFv2gK51HExF8v/BaP7P979PhFMgWTqmOOI+Dtno5s+yD09XTY1WkshbLk6i4g2Xlr8fyW9ODnkU88RI2w9UdPhQU4cPPwBN" + | 51 | "gnZFv2gK51HExF8v/BaP7P979PhFMgWTqmOOI+Dtno5s+yD09XTY1WkshbLk6i4g2Xlr8fyW9ODnkU88RI2w9UdPhQU4cPPwBN" + |
| 51 | "lrsYhKkVK2OxwM3kFqjoBBY0CZoZCsSQ3LDH5WeZqPArlsS6xa2zqJBuuoKjMrdpELl3eXSjP8K54eDJCbeetCZNKWLL3DPahTPB7LZ" + | 52 | "lrsYhKkVK2OxwM3kFqjoBBY0CZoZCsSQ3LDH5WeZqPArlsS6xa2zqJBuuoKjMrdpELl3eXSjP8K54eDJCbeetCZNKWLL3DPahTPB7LZ" + |
| 52 | "ikfYmslb0QUvCgGapD0xkS7eVq70NaL1G57MWABs4tbfWgxike4Daj3EfUrzIVspQxj7w8HEj9WozJPgL88kSJSits0pqD3n5r8HSuseQIDAQAB"); | 53 | "ikfYmslb0QUvCgGapD0xkS7eVq70NaL1G57MWABs4tbfWgxike4Daj3EfUrzIVspQxj7w8HEj9WozJPgL88kSJSits0pqD3n5r8HSuseQIDAQAB"); |
| 53 | - // 创建客户端 | ||
| 54 | 54 | ||
| 55 | + // TODO @tina:= 前后要有空格哈 | ||
| 55 | @InjectMocks | 56 | @InjectMocks |
| 56 | AlipayQrPayClient client=new AlipayQrPayClient(10L,config); | 57 | AlipayQrPayClient client=new AlipayQrPayClient(10L,config); |
| 57 | 58 | ||
| @@ -66,7 +67,8 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | @@ -66,7 +67,8 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | ||
| 66 | } | 67 | } |
| 67 | @Test | 68 | @Test |
| 68 | public void create() throws AlipayApiException { | 69 | public void create() throws AlipayApiException { |
| 69 | - | 70 | + // TODO @tina:参数可以尽量随机一点,使用随机方法。这样的好处是,避免对固定参数的依赖,导致可能仅仅满足固定参数的结果 |
| 71 | + // 这里,设置可以直接随机整个对象。 | ||
| 70 | Long shopOrderId = System.currentTimeMillis(); | 72 | Long shopOrderId = System.currentTimeMillis(); |
| 71 | PayOrderUnifiedReqDTO reqDTO=new PayOrderUnifiedReqDTO(); | 73 | PayOrderUnifiedReqDTO reqDTO=new PayOrderUnifiedReqDTO(); |
| 72 | reqDTO.setMerchantOrderId(String.valueOf(System.currentTimeMillis())); | 74 | reqDTO.setMerchantOrderId(String.valueOf(System.currentTimeMillis())); |
| @@ -88,6 +90,7 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | @@ -88,6 +90,7 @@ public class AlipayQrPayClientTest extends BaseMockitoUnitTest { | ||
| 88 | // 断言 | 90 | // 断言 |
| 89 | assertEquals(response.getCode(), result.getApiCode()); | 91 | assertEquals(response.getCode(), result.getApiCode()); |
| 90 | assertEquals(response.getMsg(), result.getApiMsg()); | 92 | assertEquals(response.getMsg(), result.getApiMsg()); |
| 93 | + // TODO @tina:这个断言木有过? | ||
| 91 | assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode()); | 94 | assertEquals(GlobalErrorCodeConstants.SUCCESS.getCode(), result.getCode()); |
| 92 | assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg()); | 95 | assertEquals(GlobalErrorCodeConstants.SUCCESS.getMsg(), result.getMsg()); |
| 93 | 96 |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/vo/PayRefundReqVO.java
| @@ -22,7 +22,6 @@ public class PayRefundReqVO { | @@ -22,7 +22,6 @@ public class PayRefundReqVO { | ||
| 22 | @NotEmpty(message = "退款金额") | 22 | @NotEmpty(message = "退款金额") |
| 23 | private Long amount; | 23 | private Long amount; |
| 24 | 24 | ||
| 25 | - | ||
| 26 | @ApiModelProperty(value = "退款原因", required = true, example = "不喜欢") | 25 | @ApiModelProperty(value = "退款原因", required = true, example = "不喜欢") |
| 27 | @NotEmpty(message = "退款原因") | 26 | @NotEmpty(message = "退款原因") |
| 28 | private String reason; | 27 | private String reason; |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/convert/order/PayRefundConvert.java
| @@ -8,7 +8,7 @@ import org.mapstruct.Mapper; | @@ -8,7 +8,7 @@ import org.mapstruct.Mapper; | ||
| 8 | import org.mapstruct.factory.Mappers; | 8 | import org.mapstruct.factory.Mappers; |
| 9 | 9 | ||
| 10 | /** | 10 | /** |
| 11 | - * 支付退款 Convert | 11 | + * 支付退款 Convert // TODO @jason:类注释,和下面,有一个空行哈 |
| 12 | * @author jason | 12 | * @author jason |
| 13 | */ | 13 | */ |
| 14 | @Mapper | 14 | @Mapper |
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/shop/controller/ShopOrderController.java
| @@ -58,7 +58,7 @@ public class ShopOrderController { | @@ -58,7 +58,7 @@ public class ShopOrderController { | ||
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | - | 61 | + // TODO @jason:方法之间,空一行即可哈 |
| 62 | @PostMapping("/pay-notify") | 62 | @PostMapping("/pay-notify") |
| 63 | @ApiOperation("支付回调") | 63 | @ApiOperation("支付回调") |
| 64 | public CommonResult<Boolean> payNotify(@RequestBody @Valid PayNotifyOrderReqVO reqVO) { | 64 | public CommonResult<Boolean> payNotify(@RequestBody @Valid PayNotifyOrderReqVO reqVO) { |