1
0
mirror of synced 2026-10-17 21:06:13 +08:00

🎨 #4074 【微信支付】完善小程序纯签约接口的版本字段的兼容性

This commit is contained in:
Binary Wang
2026-07-23 16:57:20 +08:00
committed by GitHub
parent 22765e2727
commit cd6e36bed1
3 changed files with 63 additions and 10 deletions

View File

@@ -0,0 +1,46 @@
package com.github.binarywang.wxpay.bean.request;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.util.SignUtils;
import com.github.binarywang.wxpay.util.XmlConfig;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link WxMaEntrustRequest}.
*/
public class WxMaEntrustRequestTest {
@Test
public void versionIsExcludedFromPayloadAndSignature() throws Exception {
WxMaEntrustRequest request = WxMaEntrustRequest.newBuilder()
.planId("plan-id")
.contractCode("contract-code")
.requestSerial(1L)
.contractDisplayAccount("account")
.notifyUrl("https://example.com/notify")
.timestamp("1710000000")
.version("1.0")
.build();
WxPayConfig config = new WxPayConfig();
config.setAppId("wx-app-id");
config.setMchId("mch-id");
config.setMchKey("mch-key");
request.checkAndSign(config);
assertThat(request.toString()).doesNotContain("\"version\"");
assertThat(request.toXML()).doesNotContain("<version");
boolean fastMode = XmlConfig.fastMode;
try {
XmlConfig.fastMode = true;
assertThat(request.toXML()).doesNotContain("<version");
} finally {
XmlConfig.fastMode = fastMode;
}
assertThat(request.getSign()).isEqualTo(SignUtils.createSign(
request, WxPayConstants.SignType.MD5, config.getMchKey(), null));
}
}