@@ -78,9 +78,7 @@ public class ProfitSharingRequest extends BaseWxPayRequest { | |||||
@Override | @Override | ||||
protected void checkConstraints() throws WxPayException { | protected void checkConstraints() throws WxPayException { | ||||
/** | |||||
* 目前仅支持HMAC-SHA256 | |||||
*/ | |||||
// 目前仅支持HMAC-SHA256. | |||||
this.setSignType(WxPayConstants.SignType.HMAC_SHA256); | this.setSignType(WxPayConstants.SignType.HMAC_SHA256); | ||||
} | } | ||||
} | } |
@@ -3,9 +3,6 @@ package com.github.binarywang.wxpay.service; | |||||
import com.github.binarywang.wxpay.bean.profitsharing.*; | import com.github.binarywang.wxpay.bean.profitsharing.*; | ||||
import com.github.binarywang.wxpay.exception.WxPayException; | import com.github.binarywang.wxpay.exception.WxPayException; | ||||
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingResult; | |||||
import com.github.binarywang.wxpay.bean.profitsharing.ProfitSharingRequest; | |||||
/** | /** | ||||
* 注意:微信最高分账比例为30% | * 注意:微信最高分账比例为30% | ||||
* 可多次分账到同一个人,但是依然不能超过30% | * 可多次分账到同一个人,但是依然不能超过30% | ||||
@@ -22,11 +19,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharing | * 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharing | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitsharingRequest | |||||
* @return | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException the wx pay exception | * @throws WxPayException the wx pay exception | ||||
*/ | */ | ||||
ProfitSharingResult profitsharing(ProfitSharingRequest profitsharingRequest) throws WxPayException; | |||||
ProfitSharingResult profitSharing(ProfitSharingRequest request) throws WxPayException; | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
@@ -38,11 +35,11 @@ public interface ProfitSharingService { | |||||
* 文档详见: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_6&index=2 | * 文档详见: https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=25_6&index=2 | ||||
* 接口链接:https://api.mch.weixin.qq.com/secapi/pay/multiprofitsharing | * 接口链接:https://api.mch.weixin.qq.com/secapi/pay/multiprofitsharing | ||||
* | * | ||||
* @param profitsharingRequest | |||||
* @return | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException the wx pay exception | * @throws WxPayException the wx pay exception | ||||
*/ | */ | ||||
ProfitSharingResult multiprofitsharing(ProfitSharingRequest profitsharingRequest) throws WxPayException; | |||||
ProfitSharingResult multiProfitSharing(ProfitSharingRequest request) throws WxPayException; | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
@@ -54,11 +51,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharingfinish | * 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharingfinish | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingFinishRequest | |||||
* @return | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException the wx pay exception | * @throws WxPayException the wx pay exception | ||||
*/ | */ | ||||
ProfitSharingResult profitsharingfinish(ProfitSharingFinishRequest profitSharingFinishRequest) throws WxPayException; | |||||
ProfitSharingResult profitSharingFinish(ProfitSharingFinishRequest request) throws WxPayException; | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
@@ -67,11 +64,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver | * 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingaddreceiver | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingReceiverRequest | |||||
* @return | |||||
* @throws WxPayException | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException . | |||||
*/ | */ | ||||
ProfitSharingReceiverResult addReceiver(ProfitSharingReceiverRequest profitSharingReceiverRequest) throws WxPayException; | |||||
ProfitSharingReceiverResult addReceiver(ProfitSharingReceiverRequest request) throws WxPayException; | |||||
/** | /** | ||||
* <pre> | * <pre> | ||||
@@ -80,11 +77,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingremovereceiver | * 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingremovereceiver | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingReceiverRequest | |||||
* @return | |||||
* @throws WxPayException | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException . | |||||
*/ | */ | ||||
ProfitSharingReceiverResult removeReceiver(ProfitSharingReceiverRequest profitSharingReceiverRequest) throws WxPayException; | |||||
ProfitSharingReceiverResult removeReceiver(ProfitSharingReceiverRequest request) throws WxPayException; | |||||
/** | /** | ||||
* TODO:微信返回签名失败 | * TODO:微信返回签名失败 | ||||
@@ -93,11 +90,11 @@ public interface ProfitSharingService { | |||||
* 接口频率:80QPS | * 接口频率:80QPS | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingReceiverRequest | |||||
* @return | |||||
* @throws WxPayException | |||||
* @param request . | |||||
* @return . | |||||
* @throws WxPayException . | |||||
*/ | */ | ||||
ProfitSharingQueryResult profitsharingQuery(ProfitSharingQueryRequest profitSharingReceiverRequest) throws WxPayException; | |||||
ProfitSharingQueryResult profitSharingQuery(ProfitSharingQueryRequest request) throws WxPayException; | |||||
/** | /** | ||||
* TODO:这个接口用真实的数据返回【参数不正确】,我对比官方文档除了缺少sub_mch_id,和sub_appid之外其他相同,当我随便填了一个商户id的时候,提示【回退方没有开通分账回退功能】 | * TODO:这个接口用真实的数据返回【参数不正确】,我对比官方文档除了缺少sub_mch_id,和sub_appid之外其他相同,当我随便填了一个商户id的时候,提示【回退方没有开通分账回退功能】 | ||||
@@ -111,11 +108,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharingreturn | * 接口链接:https://api.mch.weixin.qq.com/secapi/pay/profitsharingreturn | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingReturnRequest | |||||
* @return | |||||
* @throws WxPayException | |||||
* @param returnRequest . | |||||
* @return . | |||||
* @throws WxPayException . | |||||
*/ | */ | ||||
ProfitSharingReturnResult profitsharingReturn(ProfitSharingReturnRequest profitSharingReturnRequest) throws WxPayException; | |||||
ProfitSharingReturnResult profitSharingReturn(ProfitSharingReturnRequest returnRequest) throws WxPayException; | |||||
/** | /** | ||||
* TODO:因profitsharingReturn接口无法使用,没有办法对这里进行真实的测试,模拟数据这里返回【记录不存在】 | * TODO:因profitsharingReturn接口无法使用,没有办法对这里进行真实的测试,模拟数据这里返回【记录不存在】 | ||||
@@ -127,10 +124,11 @@ public interface ProfitSharingService { | |||||
* 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingreturnquery | * 接口链接:https://api.mch.weixin.qq.com/pay/profitsharingreturnquery | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @param profitSharingReturnQueryRequest | |||||
* @return | |||||
* @throws WxPayException | |||||
* @param queryRequest . | |||||
* @return . | |||||
* @throws WxPayException . | |||||
*/ | */ | ||||
ProfitSharingReturnResult profitsharingReturnQuery(ProfitSharingReturnQueryRequest profitSharingReturnQueryRequest) throws WxPayException; | |||||
ProfitSharingReturnResult profitSharingReturnQuery(ProfitSharingReturnQueryRequest queryRequest) | |||||
throws WxPayException; | |||||
} | } |
@@ -20,7 +20,7 @@ public class ProfitSharingServiceImpl implements ProfitSharingService { | |||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingResult profitsharing(ProfitSharingRequest request) throws WxPayException { | |||||
public ProfitSharingResult profitSharing(ProfitSharingRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | request.checkAndSign(this.payService.getConfig()); | ||||
String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharing"; | String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharing"; | ||||
@@ -31,7 +31,7 @@ public class ProfitSharingServiceImpl implements ProfitSharingService { | |||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingResult multiprofitsharing(ProfitSharingRequest request) throws WxPayException { | |||||
public ProfitSharingResult multiProfitSharing(ProfitSharingRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | request.checkAndSign(this.payService.getConfig()); | ||||
String url = this.payService.getPayBaseUrl() + "/secapi/pay/multiprofitsharing"; | String url = this.payService.getPayBaseUrl() + "/secapi/pay/multiprofitsharing"; | ||||
@@ -42,7 +42,7 @@ public class ProfitSharingServiceImpl implements ProfitSharingService { | |||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingResult profitsharingfinish(ProfitSharingFinishRequest request) throws WxPayException { | |||||
public ProfitSharingResult profitSharingFinish(ProfitSharingFinishRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | request.checkAndSign(this.payService.getConfig()); | ||||
String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharingfinish"; | String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharingfinish"; | ||||
@@ -75,7 +75,7 @@ public class ProfitSharingServiceImpl implements ProfitSharingService { | |||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingQueryResult profitsharingQuery(ProfitSharingQueryRequest request) throws WxPayException { | |||||
public ProfitSharingQueryResult profitSharingQuery(ProfitSharingQueryRequest request) throws WxPayException { | |||||
if (true) throw new WxPayException("暂不支持,微信一直返回签名失败"); | if (true) throw new WxPayException("暂不支持,微信一直返回签名失败"); | ||||
request.checkAndSign(this.payService.getConfig()); | request.checkAndSign(this.payService.getConfig()); | ||||
String url = this.payService.getPayBaseUrl() + "/pay/profitsharingquery"; | String url = this.payService.getPayBaseUrl() + "/pay/profitsharingquery"; | ||||
@@ -87,24 +87,24 @@ public class ProfitSharingServiceImpl implements ProfitSharingService { | |||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingReturnResult profitsharingReturn(ProfitSharingReturnRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | |||||
public ProfitSharingReturnResult profitSharingReturn(ProfitSharingReturnRequest returnRequest) throws WxPayException { | |||||
returnRequest.checkAndSign(this.payService.getConfig()); | |||||
String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharingreturn"; | String url = this.payService.getPayBaseUrl() + "/secapi/pay/profitsharingreturn"; | ||||
String responseContent = this.payService.post(url, request.toXML(), true); | |||||
String responseContent = this.payService.post(url, returnRequest.toXML(), true); | |||||
ProfitSharingReturnResult result = BaseWxPayResult.fromXML(responseContent, ProfitSharingReturnResult.class); | ProfitSharingReturnResult result = BaseWxPayResult.fromXML(responseContent, ProfitSharingReturnResult.class); | ||||
result.checkResult(this.payService, request.getSignType(), true); | |||||
result.checkResult(this.payService, returnRequest.getSignType(), true); | |||||
return result; | return result; | ||||
} | } | ||||
@Override | @Override | ||||
public ProfitSharingReturnResult profitsharingReturnQuery(ProfitSharingReturnQueryRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | |||||
public ProfitSharingReturnResult profitSharingReturnQuery(ProfitSharingReturnQueryRequest queryRequest) throws WxPayException { | |||||
queryRequest.checkAndSign(this.payService.getConfig()); | |||||
String url = this.payService.getPayBaseUrl() + "/pay/profitsharingreturnquery"; | String url = this.payService.getPayBaseUrl() + "/pay/profitsharingreturnquery"; | ||||
String responseContent = this.payService.post(url, request.toXML(), true); | |||||
String responseContent = this.payService.post(url, queryRequest.toXML(), true); | |||||
ProfitSharingReturnResult result = BaseWxPayResult.fromXML(responseContent, ProfitSharingReturnResult.class); | ProfitSharingReturnResult result = BaseWxPayResult.fromXML(responseContent, ProfitSharingReturnResult.class); | ||||
result.checkResult(this.payService, request.getSignType(), true); | |||||
result.checkResult(this.payService, queryRequest.getSignType(), true); | |||||
return result; | return result; | ||||
} | } | ||||
} | } |
@@ -36,7 +36,7 @@ public class ProfitSharingServiceImplTest { | |||||
.transactionId("4200000431201910234736634272") | .transactionId("4200000431201910234736634272") | ||||
.receivers(instance.toJSONString()) | .receivers(instance.toJSONString()) | ||||
.build(); | .build(); | ||||
this.logger.info(this.payService.getProfitSharingService().profitsharing(request).toString()); | |||||
this.logger.info(this.payService.getProfitSharingService().profitSharing(request).toString()); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -52,7 +52,7 @@ public class ProfitSharingServiceImplTest { | |||||
.transactionId("4200000448201910238249687345")//order_id=30000102922019102310821824010 | .transactionId("4200000448201910238249687345")//order_id=30000102922019102310821824010 | ||||
.receivers(instance.toJSONString()) | .receivers(instance.toJSONString()) | ||||
.build(); | .build(); | ||||
this.logger.info(this.payService.getProfitSharingService().multiprofitsharing(request).toString()); | |||||
this.logger.info(this.payService.getProfitSharingService().multiProfitSharing(request).toString()); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -63,7 +63,7 @@ public class ProfitSharingServiceImplTest { | |||||
.transactionId("4200000441201910238267278073") | .transactionId("4200000441201910238267278073") | ||||
.description("分账完成") | .description("分账完成") | ||||
.build(); | .build(); | ||||
this.logger.info(this.payService.getProfitSharingService().profitsharingfinish(request).toString()); | |||||
this.logger.info(this.payService.getProfitSharingService().profitSharingFinish(request).toString()); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -98,7 +98,7 @@ public class ProfitSharingServiceImplTest { | |||||
.outOrderNo("20191023112023031060677") | .outOrderNo("20191023112023031060677") | ||||
.transactionId("4200000431201910234736634272") | .transactionId("4200000431201910234736634272") | ||||
.build(); | .build(); | ||||
ProfitSharingQueryResult result = this.payService.getProfitSharingService().profitsharingQuery(request); | |||||
ProfitSharingQueryResult result = this.payService.getProfitSharingService().profitSharingQuery(request); | |||||
this.logger.info(result.formatReceivers().toString()); | this.logger.info(result.formatReceivers().toString()); | ||||
this.logger.info(result.toString()); | this.logger.info(result.toString()); | ||||
} | } | ||||
@@ -114,7 +114,7 @@ public class ProfitSharingServiceImplTest { | |||||
.returnAmount(2) | .returnAmount(2) | ||||
.description("用户退款") | .description("用户退款") | ||||
.build(); | .build(); | ||||
this.logger.info(this.payService.getProfitSharingService().profitsharingReturn(request).toString()); | |||||
this.logger.info(this.payService.getProfitSharingService().profitSharingReturn(request).toString()); | |||||
} | } | ||||
@Test | @Test | ||||
@@ -124,7 +124,7 @@ public class ProfitSharingServiceImplTest { | |||||
.outOrderNo("20191023154723316420060") | .outOrderNo("20191023154723316420060") | ||||
.outReturnNo("R2019102315") | .outReturnNo("R2019102315") | ||||
.build(); | .build(); | ||||
this.logger.info(this.payService.getProfitSharingService().profitsharingReturnQuery(request).toString()); | |||||
this.logger.info(this.payService.getProfitSharingService().profitSharingReturnQuery(request).toString()); | |||||
} | } | ||||