diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java index 45973443..bdba22ad 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpPayService.java @@ -74,8 +74,9 @@ public interface WxMpPayService { * 发送普通红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 * 发送裂变红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4 * + * @param keyFile 证书文件对象 */ - WxRedpackResult sendRedpack(WxSendRedpackRequest request) throws WxErrorException; + WxRedpackResult sendRedpack(WxSendRedpackRequest request, File keyFile) throws WxErrorException; /** *
diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java
index a8d5dc3f..8e3e015e 100644
--- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java
+++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImpl.java
@@ -160,14 +160,15 @@ public class WxMpPayServiceImpl implements WxMpPayService {
}
@Override
- public WxRedpackResult sendRedpack(WxSendRedpackRequest request)
+ public WxRedpackResult sendRedpack(WxSendRedpackRequest request, File keyFile)
throws WxErrorException {
XStream xstream = XStreamInitializer.getInstance();
xstream.processAnnotations(WxSendRedpackRequest.class);
xstream.processAnnotations(WxRedpackResult.class);
request.setWxAppid(this.wxMpService.getWxMpConfigStorage().getAppId());
- request.setMchId(this.wxMpService.getWxMpConfigStorage().getPartnerId());
+ String mchId = this.wxMpService.getWxMpConfigStorage().getPartnerId();
+ request.setMchId(mchId);
request.setNonceStr(System.currentTimeMillis() + "");
String sign = this.createSign(this.xmlBean2Map(request),
@@ -180,7 +181,7 @@ public class WxMpPayServiceImpl implements WxMpPayService {
url = PAY_BASE_URL + "/mmpaymkttransfers/sendgroupredpack";
}
- String responseContent = this.wxMpService.post(url, xstream.toXML(request));
+ String responseContent = this.executeRequestWithKeyFile(url, xstream.toXML(request), keyFile, mchId);
WxRedpackResult redpackResult = (WxRedpackResult) xstream
.fromXML(responseContent);
if ("FAIL".equals(redpackResult.getResultCode())) {
diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImplTest.java
index 7f524fd1..6d0b8a5c 100644
--- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImplTest.java
+++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpPayServiceImplTest.java
@@ -62,7 +62,8 @@ public class WxMpPayServiceImplTest {
request.setMchBillno("aaaa");
request
.setReOpenid(((WxXmlMpInMemoryConfigStorage) this.wxService.getWxMpConfigStorage()).getOpenid());
- WxRedpackResult redpackResult = this.wxService.getPayService().sendRedpack(request);
+ File keyFile = new File("E:\\dlt.p12");
+ WxRedpackResult redpackResult = this.wxService.getPayService().sendRedpack(request, keyFile);
System.err.println(redpackResult);
}