diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ProfitSharingRequest.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ProfitSharingRequest.java index aaec33bd0..ab83cab03 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ProfitSharingRequest.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/ecommerce/ProfitSharingRequest.java @@ -1,10 +1,12 @@ package com.github.binarywang.wxpay.bean.ecommerce; +import com.github.binarywang.wxpay.v3.SpecEncrypt; import com.google.gson.annotations.SerializedName; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.util.List; /** * 请求分账 对象 @@ -86,7 +88,8 @@ public class ProfitSharingRequest implements Serializable { * */ @SerializedName(value = "receivers") - private Receiver[] receivers; + @SpecEncrypt + private List receivers; /** *
@@ -186,6 +189,7 @@ public class ProfitSharingRequest implements Serializable {
      * 
*/ @SerializedName(value = "receiver_name") + @SpecEncrypt private String receiverName; } diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java index 4feaaab01..169f59371 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java @@ -190,7 +190,8 @@ public class EcommerceServiceImpl implements EcommerceService { @Override public ProfitSharingResult profitSharing(ProfitSharingRequest request) throws WxPayException { String url = String.format("%s/v3/ecommerce/profitsharing/orders", this.payService.getPayBaseUrl()); - String response = this.payService.postV3(url, GSON.toJson(request)); + RsaCryptoUtil.encryptFields(request, this.payService.getConfig().getVerifier().getValidCertificate()); + String response = this.payService.postV3WithWechatpaySerial(url, GSON.toJson(request)); return GSON.fromJson(response, ProfitSharingResult.class); } diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java index 287ac11fc..295303740 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/v3/util/RsaCryptoUtil.java @@ -15,6 +15,7 @@ import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.cert.X509Certificate; import java.util.Base64; +import java.util.Collection; /** * 微信支付敏感信息加密 @@ -53,8 +54,18 @@ public class RsaCryptoUtil { } else { field.setAccessible(true); Object obj = field.get(encryptObject); - if (obj != null) { - encryptField(field.get(encryptObject), certificate); + if (obj == null) { + continue; + } + if (obj instanceof Collection) { + Collection collection = (Collection) obj; + for (Object o : collection) { + if (o != null) { + encryptField(o, certificate); + } + } + } else { + encryptField(obj, certificate); } } }