| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -109,7 +109,7 @@ default com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult que | |||
| 109 | 109 | /** @deprecated 从 4.8.5.B 起,请改用 {@link #closePartnerOrder(WxPayPartnerOrderCloseV3Request)};5.0 将移除。 */ | |
| 110 | 110 | @Deprecated | |
| 111 | 111 | default String closePartnerTransactions(com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsCloseRequest request) throws WxPayException { | |
| 112 | - closePartnerOrder(LEGACY_ECOMMERCE_GSON.fromJson(LEGACY_ECOMMERCE_GSON.toJson(request), WxPayPartnerOrderCloseV3Request.class)); | ||
| 112 | + closePartnerOrder(toUnifiedPartnerOrderCloseRequest(request)); | ||
| 113 | 113 | return null; | |
| 114 | 114 | } | |
| 115 | 115 | ||
@@ -122,6 +122,21 @@ static SignatureHeader toUnifiedSignatureHeader(com.github.binarywang.wxpay.bean | |||
| 122 | 122 | .signature(header.getSigned()).serial(header.getSerialNo()).build(); | |
| 123 | 123 | } | |
| 124 | 124 | ||
| 125 | + /** | ||
| 126 | + * 旧电商关闭请求转统一模型。 | ||
| 127 | + * <p>{@code outTradeNo} 在两侧均为 path 参数({@code transient}),不能走 Gson 往返,否则会丢失。 | ||
| 128 | + */ | ||
| 129 | + static WxPayPartnerOrderCloseV3Request toUnifiedPartnerOrderCloseRequest( | ||
| 130 | + com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsCloseRequest request) { | ||
| 131 | + if (request == null) { | ||
| 132 | + return null; | ||
| 133 | + } | ||
| 134 | + return new WxPayPartnerOrderCloseV3Request() | ||
| 135 | + .setSpMchId(request.getSpMchid()) | ||
| 136 | + .setSubMchId(request.getSubMchid()) | ||
| 137 | + .setOutTradeNo(request.getOutTradeNo()); | ||
| 138 | + } | ||
| 139 | + | ||
| 125 | 140 | /** | |
| 126 | 141 | * <pre> | |
| 127 | 142 | * 二级商户进件API | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,9 @@ | |||
| 1 | 1 | package com.github.binarywang.wxpay.service; | |
| 2 | 2 | ||
| 3 | + import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsCloseRequest; | ||
| 3 | 4 | import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult; | |
| 4 | 5 | import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum; | |
| 6 | + import com.github.binarywang.wxpay.bean.request.WxPayPartnerOrderCloseV3Request; | ||
| 5 | 7 | import org.testng.Assert; | |
| 6 | 8 | import org.testng.annotations.Test; | |
| 7 | 9 | ||
@@ -68,6 +70,21 @@ public void shouldIncludeTimestampAndNonceInLegacyHeaderEquality() { | |||
| 68 | 70 | Assert.assertNotEquals(first, second); | |
| 69 | 71 | } | |
| 70 | 72 | ||
| 73 | + @Test | ||
| 74 | + public void shouldPreserveOutTradeNoWhenMappingLegacyCloseRequest() { | ||
| 75 | + PartnerTransactionsCloseRequest legacyRequest = new PartnerTransactionsCloseRequest(); | ||
| 76 | + legacyRequest.setSpMchid("1230000109"); | ||
| 77 | + legacyRequest.setSubMchid("1900000109"); | ||
| 78 | + legacyRequest.setOutTradeNo("1217752501201407033233368018"); | ||
| 79 | + | ||
| 80 | + WxPayPartnerOrderCloseV3Request unifiedRequest = | ||
| 81 | + EcommerceService.toUnifiedPartnerOrderCloseRequest(legacyRequest); | ||
| 82 | + | ||
| 83 | + Assert.assertEquals(unifiedRequest.getSpMchId(), "1230000109"); | ||
| 84 | + Assert.assertEquals(unifiedRequest.getSubMchId(), "1900000109"); | ||
| 85 | + Assert.assertEquals(unifiedRequest.getOutTradeNo(), "1217752501201407033233368018"); | ||
| 86 | + } | ||
| 87 | + | ||
| 71 | 88 | @Test | |
| 72 | 89 | public void shouldReadLegacySerializedHeaderFields() throws Exception { | |
| 73 | 90 | String legacySerializedHeader = "rO0ABXNyADpjb20uZ2l0aHViLmJpbmFyeXdhbmcud3hwYXkuYmVhbi5lY29tbWVyY2UuU2lnbmF0dXJlSGVhZGVyn3ApxLekv9MCAARMAAVub25jZXQAEkxqYXZhL2xhbmcvU3RyaW5nO0wACHNlcmlhbE5vcQB+AAFMAAZzaWduZWRxAH4AAUwACXRpbWVTdGFtcHEAfgABeHB0AAVub25jZXQACXNlcmlhbC1ub3QABnNpZ25lZHQACXRpbWVzdGFtcA=="; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments