diff --git a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatBatchTransferApi.java b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatBatchTransferApi.java index 886c165..b0d15aa 100644 --- a/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatBatchTransferApi.java +++ b/payment-spring-boot-autoconfigure/src/main/java/cn/felord/payment/wechat/v3/WechatBatchTransferApi.java @@ -82,8 +82,10 @@ public class WechatBatchTransferApi extends AbstractApi { List encrypted = transferDetailList.stream() .peek(transferDetailListItem -> { String userName = transferDetailListItem.getUserName(); - String encryptedUserName = signatureProvider.encryptRequestMessage(userName, x509Certificate); - transferDetailListItem.setUserName(encryptedUserName); + if (StringUtils.hasText(userName)){ + String encryptedUserName = signatureProvider.encryptRequestMessage(userName, x509Certificate); + transferDetailListItem.setUserName(encryptedUserName); + } String userIdCard = transferDetailListItem.getUserIdCard(); if (StringUtils.hasText(userIdCard)) { String encryptedUserIdCard = signatureProvider.encryptRequestMessage(userIdCard, x509Certificate); @@ -110,20 +112,7 @@ public class WechatBatchTransferApi extends AbstractApi { public WechatResponseEntity queryBatchByBatchId(QueryBatchTransferParams queryBatchTransferParams) { WechatResponseEntity wechatResponseEntity = new WechatResponseEntity<>(); this.client().withType(WechatPayV3Type.BATCH_TRANSFER_BATCH_ID, queryBatchTransferParams) - .function((type, params) -> { - MultiValueMap queryParams = new LinkedMultiValueMap<>(); - queryParams.add("need_query_detail", params.getNeedQueryDetail().toString()); - queryParams.add("offset", params.getOffset().toString()); - queryParams.add("limit", params.getLimit().toString()); - queryParams.add("detail_status", params.getDetailStatus().name()); - - URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) - .queryParams(queryParams) - .build() - .expand(params.getCode()) - .toUri(); - return Get(uri); - }) + .function(this::apply) .consumer(wechatResponseEntity::convert) .request(); return wechatResponseEntity; @@ -402,4 +391,19 @@ public class WechatBatchTransferApi extends AbstractApi { .request(); return wechatResponseEntity; } + + private RequestEntity apply(WechatPayV3Type type, QueryBatchTransferParams params) { + MultiValueMap queryParams = new LinkedMultiValueMap<>(); + queryParams.add("need_query_detail", params.getNeedQueryDetail().toString()); + queryParams.add("offset", params.getOffset().toString()); + queryParams.add("limit", params.getLimit().toString()); + queryParams.add("detail_status", params.getDetailStatus().name()); + + URI uri = UriComponentsBuilder.fromHttpUrl(type.uri(WeChatServer.CHINA)) + .queryParams(queryParams) + .build() + .expand(params.getCode()) + .toUri(); + return Get(uri); + } }