@@ -45,7 +45,8 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
public PartnerTransferResult batchTransfer ( PartnerTransferRequest request ) throws WxPayException {
request . getTransferDetailList ( ) . stream ( ) . forEach ( p - > {
try {
String userName = RsaCryptoUtil . encryptOAEP ( p . getUserName ( ) , this . payService . getConfig ( ) . getVerifier ( ) . getValidCertificate ( ) ) ;
String userName = RsaCryptoUtil . encryptOAEP ( p . getUserName ( ) ,
this . payService . getConfig ( ) . getVerifier ( ) . getValidCertificate ( ) ) ;
p . setUserName ( userName ) ;
} catch ( IllegalBlockSizeException e ) {
throw new RuntimeException ( " 姓名转换异常! " , e ) ;
@@ -61,7 +62,8 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
* 接口说明
* 适用对象:服务商
* 请求URL: https://api.mch.weixin.qq.com/v3/partner-transfer/batches/batch-id/{batch_id}
* https://api.mch.weixin.qq.com/v3/partner-transfer/batches/batch-id/1030000071100999991182020050700019480001?need_query_detail=true&offset=1
* https://api.mch.weixin.qq.com/v3/partner-transfer/batches/batch-id/1030000071100999991182020050700019480001
* ?need_query_detail=true&offset=1
* 请求方式: GET
* 接口限频:单个服务商 50QPS, 如果超过频率限制, 会报错FREQUENCY_LIMITED, 请降低频率请求。
*
@@ -71,16 +73,18 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
*/
@Override
public BatchNumberResult queryBatchByBatchId ( BatchNumberRequest request ) throws WxPayException {
String url = String . format ( " %s/v3/partner-transfer/batches/batch-id/%s " , this . payService . getPayBaseUrl ( ) , request . getBatchId ( ) ) ;
String url = String . format ( " %s/v3/partner-transfer/batches/batch-id/%s " , this . payService . getPayBaseUrl ( ) ,
request . getBatchId ( ) ) ;
if ( request . getOffset ( ) = = null ) {
request . setOffset ( 0 ) ;
}
if ( request . getLimit ( ) = = null | | request . getLimit ( ) < = 0 ) {
request . setLimit ( 20 ) ;
}
String query = String . format ( " ?need_query_detail=%s&detail_status=ALL&offset=%s&limit=%s " , request . getNeedQueryDetail ( ) , request . getOffset ( ) , request . getLimit ( ) ) ;
if ( StringUtil . isNotBlank ( request . getDetailStatus ( ) ) ) {
query + = " &detail_status= " + request . getDetailStatus ( ) ;
String query = String . format ( " ?need_query_detail=%s&detail_status=ALL&offset=%s&limit=%s " ,
request . getNeedQueryDetail ( ) , request . getOffset ( ) , request . getLimit ( ) ) ;
if ( StringUtil . isNotBlank ( request . getDetailStatus ( ) ) ) {
query + = " &detail_status= " + request . getDetailStatus ( ) ;
}
String response = this . payService . getV3 ( url + query ) ;
return GSON . fromJson ( response , BatchNumberResult . class ) ;
@@ -100,16 +104,18 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
*/
@Override
public BatchNumberResult queryBatchByOutBatchNo ( MerchantBatchRequest request ) throws WxPayException {
String url = String . format ( " %s/v3/partner-transfer/batches/out-batch-no/%s " , this . payService . getPayBaseUrl ( ) , request . getOutBatchNo ( ) ) ;
String url = String . format ( " %s/v3/partner-transfer/batches/out-batch-no/%s " , this . payService . getPayBaseUrl ( ) ,
request . getOutBatchNo ( ) ) ;
if ( request . getOffset ( ) = = null ) {
request . setOffset ( 0 ) ;
}
if ( request . getLimit ( ) = = null | | request . getLimit ( ) < = 0 ) {
request . setLimit ( 20 ) ;
}
String query = String . format ( " ?need_query_detail=%s&offset=%s&limit=%s " , request . getNeedQueryDetail ( ) , request . getOffset ( ) , request . getLimit ( ) ) ;
if ( StringUtil . isNotBlank ( request . getDetailStatus ( ) ) ) {
query + = " &detail_status= " + request . getDetailStatus ( ) ;
String query = String . format ( " ?need_query_detail=%s&offset=%s&limit=%s " , request . getNeedQueryDetail ( ) ,
request . getOffset ( ) , request . getLimit ( ) ) ;
if ( StringUtil . isNotBlank ( request . getDetailStatus ( ) ) ) {
query + = " &detail_status= " + request . getDetailStatus ( ) ;
}
String response = this . payService . getV3 ( url + query ) ;
return GSON . fromJson ( response , BatchNumberResult . class ) ;
@@ -130,11 +136,14 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
* @throws BadPaddingException the wx decrypt exception
*/
@Override
public BatchDetailsResult queryBatchDetailByWeChat ( String batchId , String detailId ) throws WxPayException , BadPaddingException {
String url = String . format ( " %s/v3/partner-transfer/batches/batch-id/%s/details/detail-id/%s " , this . payService . getPayBaseUrl ( ) , batchId , detailId ) ;
public BatchDetailsResult queryBatchDetailByWeChat ( String batchId , String detailId ) throws WxPayException ,
BadPaddingException {
String url = String . format ( " %s/v3/partner-transfer/batches/batch-id/%s/details/detail-id/%s " ,
this . payService . getPayBaseUrl ( ) , batchId , detailId ) ;
String response = this . payService . getV3 ( url ) ;
BatchDetailsResult batchDetailsResult = GSON . fromJson ( response , BatchDetailsResult . class ) ;
String userName = RsaCryptoUtil . decryptOAEP ( batchDetailsResult . getUserName ( ) , this . payService . getConfig ( ) . getPrivateKey ( ) ) ;
String userName = RsaCryptoUtil . decryptOAEP ( batchDetailsResult . getUserName ( ) ,
this . payService . getConfig ( ) . getPrivateKey ( ) ) ;
batchDetailsResult . setUserName ( userName ) ;
return batchDetailsResult ;
}
@@ -143,7 +152,8 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
* 商家明细单号查询明细单API
* 接口说明
* 适用对象:服务商
* 请求URL: https://api.mch.weixin.qq.com/v3/partner-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail-no/{out_detail_no}
* 请求URL: https://api.mch.weixin.qq.com/v3/partner-transfer/batches/out-batch-no/{out_batch_no}/details/out-detail
* -no/{out_detail_no}
* 请求方式: GET
* 接口限频:单个服务商 50QPS, 如果超过频率限制, 会报错FREQUENCY_LIMITED, 请降低频率请求。
*
@@ -154,11 +164,14 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
* @throws BadPaddingException the wx decrypt exception
*/
@Override
public BatchDetailsResult queryBatchDetailByMch ( String outBatchNo , String outDetailNo ) throws WxPayException , BadPaddingException {
String url = String . format ( " %s/v3/partner-transfer/batches/out-batch-no/%s/details/out-detail-no/%s " , this . payService . getPayBaseUrl ( ) , outBatchNo , outDetailNo ) ;
public BatchDetailsResult queryBatchDetailByMch ( String outBatchNo , String outDetailNo ) throws WxPayException ,
BadPaddingException {
String url = String . format ( " %s/v3/partner-transfer/batches/out-batch-no/%s/details/out-detail-no/%s " ,
this . payService . getPayBaseUrl ( ) , outBatchNo , outDetailNo ) ;
String response = this . payService . getV3 ( url ) ;
BatchDetailsResult batchDetailsResult = GSON . fromJson ( response , BatchDetailsResult . class ) ;
String userName = RsaCryptoUtil . decryptOAEP ( batchDetailsResult . getUserName ( ) , this . payService . getConfig ( ) . getPrivateKey ( ) ) ;
String userName = RsaCryptoUtil . decryptOAEP ( batchDetailsResult . getUserName ( ) ,
this . payService . getConfig ( ) . getPrivateKey ( ) ) ;
batchDetailsResult . setUserName ( userName ) ;
return batchDetailsResult ;
}
@@ -240,7 +253,8 @@ public class PartnerTransferServiceImpl implements PartnerTransferService {
@Override
public ElectronicReceiptsResult queryTransferElectronicResult ( ElectronicReceiptsRequest request ) throws WxPayException {
String url = String . format ( " %s/v3/transfer-detail/electronic-receipts " , this . payService . getPayBaseUrl ( ) ) ;
String query = String . format ( " ?accept_type=%s&out_batch_no=%s&out_detail_no=%s " , request . getAcceptType ( ) , request . getOutBatchNo ( ) , request . getOutDetailNo ( ) ) ;
String query = String . format ( " ?accept_type=%s&out_batch_no=%s&out_detail_no=%s " , request . getAcceptType ( ) ,
request . getOutBatchNo ( ) , request . getOutDetailNo ( ) ) ;
String response = this . payService . getV3 ( url + query ) ;
return GSON . fromJson ( response , ElectronicReceiptsResult . class ) ;
}