Skip to content

Commit 579c7f6

Browse files
committed
fix: 消除旧通知头空值重载歧义
1 parent 6a4f0db commit 579c7f6

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

‎weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/SignatureHeader.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@NoArgsConstructor
1919
@AllArgsConstructor
2020
@Deprecated
21-
public class SignatureHeader implements Serializable {
21+
public class SignatureHeader extends com.github.binarywang.wxpay.bean.notify.SignatureHeader implements Serializable {
2222
private static final long serialVersionUID = -6958015499416059949L;
2323
/**
2424
* 时间戳

‎weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/LegacyEcommerceApiCompatibilityTest.java‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,23 @@ public void shouldKeepLegacyRefundAndWithdrawNotificationSignatures() throws Exc
2525
Assert.assertNotNull(EcommerceService.class.getMethod("parseRefundNotifyResult", String.class, legacyHeader));
2626
Assert.assertNotNull(EcommerceService.class.getMethod("parseWithdrawNotifyResult", String.class, legacyHeader));
2727
}
28+
29+
@Test
30+
public void shouldMakeLegacyHeaderMoreSpecificAndPreserveSignatureFields() {
31+
com.github.binarywang.wxpay.bean.ecommerce.SignatureHeader legacyHeader =
32+
new com.github.binarywang.wxpay.bean.ecommerce.SignatureHeader();
33+
legacyHeader.setTimeStamp("timestamp");
34+
legacyHeader.setNonce("nonce");
35+
legacyHeader.setSigned("signed");
36+
legacyHeader.setSerialNo("serial-no");
37+
38+
Assert.assertTrue(com.github.binarywang.wxpay.bean.notify.SignatureHeader.class
39+
.isAssignableFrom(legacyHeader.getClass()));
40+
com.github.binarywang.wxpay.bean.notify.SignatureHeader unifiedHeader =
41+
EcommerceService.toUnifiedSignatureHeader(legacyHeader);
42+
Assert.assertEquals(unifiedHeader.getTimeStamp(), "timestamp");
43+
Assert.assertEquals(unifiedHeader.getNonce(), "nonce");
44+
Assert.assertEquals(unifiedHeader.getSignature(), "signed");
45+
Assert.assertEquals(unifiedHeader.getSerial(), "serial-no");
46+
}
2847
}

0 commit comments

Comments
 (0)