diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java index fb7c37b21f..65ed82ad85 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequest.java @@ -249,7 +249,9 @@ protected void storeMap(Map map) { map.put("desc", description); map.put("spbill_create_ip", spbillCreateIp); map.put("scene", scene); - map.put("brand_id", brandId.toString()); + if (brandId != null) { + map.put("brand_id", brandId.toString()); + } map.put("finder_template_id", finderTemplateId); } } diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequestTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequestTest.java index b6f68b81c1..402c74d38f 100644 --- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequestTest.java +++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/bean/entpay/EntPayRequestTest.java @@ -2,6 +2,10 @@ import org.testng.annotations.Test; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + /** * . * @@ -14,4 +18,32 @@ public class EntPayRequestTest { public void testToString() { System.out.println(EntPayRequest.newBuilder().mchId("123").build().toString()); } + + /** + * 测试 brandId 为 null 时,getSignParams() 不抛出 NullPointerException. + */ + @Test + public void testGetSignParamsWithNullBrandId() { + EntPayRequest request = EntPayRequest.newBuilder() + .mchId("123") + .amount(100) + .brandId(null) + .build(); + Map params = request.getSignParams(); + assertThat(params).doesNotContainKey("brand_id"); + } + + /** + * 测试 brandId 不为 null 时,getSignParams() 正确包含 brand_id. + */ + @Test + public void testGetSignParamsWithNonNullBrandId() { + EntPayRequest request = EntPayRequest.newBuilder() + .mchId("123") + .amount(100) + .brandId(1234) + .build(); + Map params = request.getSignParams(); + assertThat(params).containsEntry("brand_id", "1234"); + } }