@@ -105,8 +105,28 @@ public class WxPaySendMiniProgramRedpackRequest extends BaseWxPayRequest { | |||||
@XStreamAlias("scene_id") | @XStreamAlias("scene_id") | ||||
private String sceneId; | private String sceneId; | ||||
/** | |||||
* wxappid. | |||||
* 微信分配的公众账号ID(企业号corpid即为此appId)。 | |||||
* 接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的), | |||||
* 不能为APP的appid(在open.weixin.qq.com申请的) | |||||
*/ | |||||
@XStreamAlias("wxappid") | |||||
private String wxAppid; | |||||
@Override | @Override | ||||
protected void checkConstraints() { | protected void checkConstraints() { | ||||
} | } | ||||
@Override | |||||
public String getAppid() { | |||||
return this.wxAppid; | |||||
} | |||||
@Override | |||||
public void setAppid(String appid) { | |||||
this.wxAppid = appid; | |||||
} | |||||
} | } |
@@ -0,0 +1,76 @@ | |||||
package com.github.binarywang.wxpay.service; | |||||
import com.github.binarywang.wxpay.bean.request.WxPayRedpackQueryRequest; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendMiniProgramRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.result.WxPayRedpackQueryResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendMiniProgramRedpackResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendRedpackResult; | |||||
import com.github.binarywang.wxpay.exception.WxPayException; | |||||
/** | |||||
* 红包相关接口. | |||||
* | |||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||||
* @date 2019-12-26 | |||||
*/ | |||||
public interface RedpackService { | |||||
/** | |||||
* <pre> | |||||
* 发送小程序红包. | |||||
* 文档详见: https://pay.weixin.qq.com/wiki/doc/api/tools/miniprogram_hb.php?chapter=13_9&index=2 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb | |||||
* </pre> | |||||
* | |||||
* @param request 请求对象 | |||||
* @return the result | |||||
* @throws WxPayException the exception | |||||
*/ | |||||
WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) throws WxPayException; | |||||
/** | |||||
* 发送微信红包给个人用户. | |||||
* <pre> | |||||
* 文档详见: | |||||
* 发送普通红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack | |||||
* 发送裂变红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack | |||||
* </pre> | |||||
* | |||||
* @param request 请求对象 | |||||
* @return the wx pay send redpack result | |||||
* @throws WxPayException the wx pay exception | |||||
*/ | |||||
WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException; | |||||
/** | |||||
* <pre> | |||||
* 查询红包记录. | |||||
* 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。 | |||||
* 请求Url:https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo | |||||
* 是否需要证书:是(证书及使用说明详见商户证书) | |||||
* 请求方式:POST | |||||
* </pre> | |||||
* | |||||
* @param mchBillNo 商户发放红包的商户订单号,比如10000098201411111234567890 | |||||
* @return the wx pay redpack query result | |||||
* @throws WxPayException the wx pay exception | |||||
*/ | |||||
WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException; | |||||
/** | |||||
* <pre> | |||||
* 查询红包记录. | |||||
* 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。 | |||||
* 请求Url:https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo | |||||
* 是否需要证书:是(证书及使用说明详见商户证书) | |||||
* 请求方式:POST | |||||
* </pre> | |||||
* | |||||
* @param request 红包查询请求 | |||||
* @return the wx pay redpack query result | |||||
* @throws WxPayException the wx pay exception | |||||
*/ | |||||
WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException; | |||||
} |
@@ -60,6 +60,13 @@ public interface WxPayService { | |||||
*/ | */ | ||||
EntPayService getEntPayService(); | EntPayService getEntPayService(); | ||||
/** | |||||
* 获取红包接口服务类. | |||||
* | |||||
* @return . | |||||
*/ | |||||
RedpackService getRedpackService(); | |||||
/** | /** | ||||
* 获取分账服务类. | * 获取分账服务类. | ||||
* | * | ||||
@@ -277,62 +284,27 @@ public interface WxPayService { | |||||
WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData) throws WxPayException; | WxScanPayNotifyResult parseScanPayNotifyResult(String xmlData) throws WxPayException; | ||||
/** | /** | ||||
* <pre> | |||||
* 发送小程序红包. | |||||
* 文档详见: https://pay.weixin.qq.com/wiki/doc/api/tools/miniprogram_hb.php?chapter=13_9&index=2 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb | |||||
* </pre> | |||||
* | |||||
* @param request 请求对象 | |||||
* @return the result | |||||
* @throws WxPayException the exception | |||||
* @deprecated 建议使用 {@link RedpackService#sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest)} | |||||
*/ | */ | ||||
@Deprecated | |||||
WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) throws WxPayException; | WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) throws WxPayException; | ||||
/** | /** | ||||
* 发送微信红包给个人用户. | |||||
* <pre> | |||||
* 文档详见: | |||||
* 发送普通红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack | |||||
* 发送裂变红包 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_5&index=4 | |||||
* 接口地址:https://api.mch.weixin.qq.com/mmpaymkttransfers/sendgroupredpack | |||||
* </pre> | |||||
* | |||||
* @param request 请求对象 | |||||
* @return the wx pay send redpack result | |||||
* @throws WxPayException the wx pay exception | |||||
* @deprecated 建议使用 {@link RedpackService#sendRedpack(WxPaySendRedpackRequest)} | |||||
*/ | */ | ||||
@Deprecated | |||||
WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException; | WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException; | ||||
/** | /** | ||||
* <pre> | |||||
* 查询红包记录. | |||||
* 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。 | |||||
* 请求Url:https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo | |||||
* 是否需要证书:是(证书及使用说明详见商户证书) | |||||
* 请求方式:POST | |||||
* </pre> | |||||
* | |||||
* @param mchBillNo 商户发放红包的商户订单号,比如10000098201411111234567890 | |||||
* @return the wx pay redpack query result | |||||
* @throws WxPayException the wx pay exception | |||||
* @deprecated 建议使用 {@link RedpackService#queryRedpack(String)} | |||||
*/ | */ | ||||
@Deprecated | |||||
WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException; | WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException; | ||||
/** | /** | ||||
* <pre> | |||||
* 查询红包记录. | |||||
* 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。 | |||||
* 请求Url:https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo | |||||
* 是否需要证书:是(证书及使用说明详见商户证书) | |||||
* 请求方式:POST | |||||
* </pre> | |||||
* | |||||
* @param request 红包查询请求 | |||||
* @return the wx pay redpack query result | |||||
* @throws WxPayException the wx pay exception | |||||
* @deprecated 建议使用 {@link RedpackService#queryRedpack(WxPayRedpackQueryRequest)} | |||||
*/ | */ | ||||
@Deprecated | |||||
WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException; | WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException; | ||||
/** | /** | ||||
@@ -13,12 +13,12 @@ import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult; | |||||
import com.github.binarywang.wxpay.bean.request.*; | import com.github.binarywang.wxpay.bean.request.*; | ||||
import com.github.binarywang.wxpay.bean.result.*; | import com.github.binarywang.wxpay.bean.result.*; | ||||
import com.github.binarywang.wxpay.config.WxPayConfig; | import com.github.binarywang.wxpay.config.WxPayConfig; | ||||
import com.github.binarywang.wxpay.constant.WxPayConstants.BillType; | |||||
import com.github.binarywang.wxpay.constant.WxPayConstants.SignType; | import com.github.binarywang.wxpay.constant.WxPayConstants.SignType; | ||||
import com.github.binarywang.wxpay.constant.WxPayConstants.TradeType; | import com.github.binarywang.wxpay.constant.WxPayConstants.TradeType; | ||||
import com.github.binarywang.wxpay.exception.WxPayException; | import com.github.binarywang.wxpay.exception.WxPayException; | ||||
import com.github.binarywang.wxpay.service.EntPayService; | import com.github.binarywang.wxpay.service.EntPayService; | ||||
import com.github.binarywang.wxpay.service.ProfitSharingService; | import com.github.binarywang.wxpay.service.ProfitSharingService; | ||||
import com.github.binarywang.wxpay.service.RedpackService; | |||||
import com.github.binarywang.wxpay.service.WxPayService; | import com.github.binarywang.wxpay.service.WxPayService; | ||||
import com.github.binarywang.wxpay.util.SignUtils; | import com.github.binarywang.wxpay.util.SignUtils; | ||||
import com.google.common.base.Joiner; | import com.google.common.base.Joiner; | ||||
@@ -61,6 +61,8 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { | |||||
private EntPayService entPayService = new EntPayServiceImpl(this); | private EntPayService entPayService = new EntPayServiceImpl(this); | ||||
private ProfitSharingService profitSharingService = new ProfitSharingServiceImpl(this); | private ProfitSharingService profitSharingService = new ProfitSharingServiceImpl(this); | ||||
private RedpackService redpackService = new RedpackServiceImpl(this); | |||||
/** | /** | ||||
* The Config. | * The Config. | ||||
*/ | */ | ||||
@@ -76,6 +78,11 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { | |||||
return profitSharingService; | return profitSharingService; | ||||
} | } | ||||
@Override | |||||
public RedpackService getRedpackService() { | |||||
return this.redpackService; | |||||
} | |||||
@Override | @Override | ||||
public void setEntPayService(EntPayService entPayService) { | public void setEntPayService(EntPayService entPayService) { | ||||
this.entPayService = entPayService; | this.entPayService = entPayService; | ||||
@@ -182,51 +189,25 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { | |||||
} | } | ||||
@Override | |||||
public WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) | |||||
throws WxPayException { | |||||
request.checkAndSign(this.getConfig()); | |||||
String url = this.getPayBaseUrl() + "/mmpaymkttransfers/sendminiprogramhb"; | |||||
String responseContent = this.post(url, request.toXML(), true); | |||||
WxPaySendMiniProgramRedpackResult result = BaseWxPayResult.fromXML(responseContent, WxPaySendMiniProgramRedpackResult.class); | |||||
result.checkResult(this, request.getSignType(), true); | |||||
return result; | |||||
} | |||||
@Override | |||||
public WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) | |||||
throws WxPayException { | |||||
return this.redpackService.sendMiniProgramRedpack(request); | |||||
} | |||||
@Override | |||||
@Override | |||||
public WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException { | public WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException { | ||||
request.checkAndSign(this.getConfig()); | |||||
String url = this.getPayBaseUrl() + "/mmpaymkttransfers/sendredpack"; | |||||
if (request.getAmtType() != null) { | |||||
//裂变红包 | |||||
url = this.getPayBaseUrl() + "/mmpaymkttransfers/sendgroupredpack"; | |||||
} | |||||
String responseContent = this.post(url, request.toXML(), true); | |||||
final WxPaySendRedpackResult result = BaseWxPayResult.fromXML(responseContent, WxPaySendRedpackResult.class); | |||||
result.checkResult(this, request.getSignType(), true); | |||||
return result; | |||||
return this.redpackService.sendRedpack(request); | |||||
} | } | ||||
@Override | @Override | ||||
public WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException { | public WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException { | ||||
WxPayRedpackQueryRequest request = new WxPayRedpackQueryRequest(); | |||||
request.setMchBillNo(mchBillNo); | |||||
return this.queryRedpack(request); | |||||
return this.redpackService.queryRedpack(mchBillNo); | |||||
} | } | ||||
@Override | @Override | ||||
public WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException { | public WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException { | ||||
request.setBillType(BillType.MCHT); | |||||
request.checkAndSign(this.getConfig()); | |||||
String url = this.getPayBaseUrl() + "/mmpaymkttransfers/gethbinfo"; | |||||
String responseContent = this.post(url, request.toXML(), true); | |||||
WxPayRedpackQueryResult result = BaseWxPayResult.fromXML(responseContent, WxPayRedpackQueryResult.class); | |||||
result.checkResult(this, request.getSignType(), true); | |||||
return result; | |||||
return this.redpackService.queryRedpack(request); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -0,0 +1,72 @@ | |||||
package com.github.binarywang.wxpay.service.impl; | |||||
import com.github.binarywang.wxpay.bean.request.WxPayRedpackQueryRequest; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendMiniProgramRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.result.BaseWxPayResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPayRedpackQueryResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendMiniProgramRedpackResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendRedpackResult; | |||||
import com.github.binarywang.wxpay.constant.WxPayConstants; | |||||
import com.github.binarywang.wxpay.exception.WxPayException; | |||||
import com.github.binarywang.wxpay.service.RedpackService; | |||||
import com.github.binarywang.wxpay.service.WxPayService; | |||||
import lombok.RequiredArgsConstructor; | |||||
/** | |||||
* 老板加点注释吧. | |||||
* | |||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||||
* @date 2019-12-26 | |||||
*/ | |||||
@RequiredArgsConstructor | |||||
public class RedpackServiceImpl implements RedpackService { | |||||
private final WxPayService payService; | |||||
@Override | |||||
public WxPaySendMiniProgramRedpackResult sendMiniProgramRedpack(WxPaySendMiniProgramRedpackRequest request) | |||||
throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | |||||
String url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/sendminiprogramhb"; | |||||
String responseContent = this.payService.post(url, request.toXML(), true); | |||||
WxPaySendMiniProgramRedpackResult result = BaseWxPayResult.fromXML(responseContent, WxPaySendMiniProgramRedpackResult.class); | |||||
result.checkResult(this.payService, request.getSignType(), true); | |||||
return result; | |||||
} | |||||
@Override | |||||
public WxPaySendRedpackResult sendRedpack(WxPaySendRedpackRequest request) throws WxPayException { | |||||
request.checkAndSign(this.payService.getConfig()); | |||||
String url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/sendredpack"; | |||||
if (request.getAmtType() != null) { | |||||
//裂变红包 | |||||
url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/sendgroupredpack"; | |||||
} | |||||
String responseContent = this.payService.post(url, request.toXML(), true); | |||||
final WxPaySendRedpackResult result = BaseWxPayResult.fromXML(responseContent, WxPaySendRedpackResult.class); | |||||
result.checkResult(this.payService, request.getSignType(), true); | |||||
return result; | |||||
} | |||||
@Override | |||||
public WxPayRedpackQueryResult queryRedpack(String mchBillNo) throws WxPayException { | |||||
WxPayRedpackQueryRequest request = new WxPayRedpackQueryRequest(); | |||||
request.setMchBillNo(mchBillNo); | |||||
return this.queryRedpack(request); | |||||
} | |||||
@Override | |||||
public WxPayRedpackQueryResult queryRedpack(WxPayRedpackQueryRequest request) throws WxPayException { | |||||
request.setBillType(WxPayConstants.BillType.MCHT); | |||||
request.checkAndSign(this.payService.getConfig()); | |||||
String url = this.payService.getPayBaseUrl() + "/mmpaymkttransfers/gethbinfo"; | |||||
String responseContent = this.payService.post(url, request.toXML(), true); | |||||
WxPayRedpackQueryResult result = BaseWxPayResult.fromXML(responseContent, WxPayRedpackQueryResult.class); | |||||
result.checkResult(this.payService, request.getSignType(), true); | |||||
return result; | |||||
} | |||||
} |
@@ -18,6 +18,7 @@ import com.github.binarywang.wxpay.service.WxPayService; | |||||
import com.github.binarywang.wxpay.testbase.ApiTestModule; | import com.github.binarywang.wxpay.testbase.ApiTestModule; | ||||
import com.github.binarywang.wxpay.testbase.XmlWxPayConfig; | import com.github.binarywang.wxpay.testbase.XmlWxPayConfig; | ||||
import com.google.inject.Inject; | import com.google.inject.Inject; | ||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
import org.testng.annotations.DataProvider; | import org.testng.annotations.DataProvider; | ||||
@@ -39,10 +40,10 @@ import static org.testng.Assert.*; | |||||
* | * | ||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | * @author <a href="https://github.com/binarywang">Binary Wang</a> | ||||
*/ | */ | ||||
@Slf4j | |||||
@Test | @Test | ||||
@Guice(modules = ApiTestModule.class) | @Guice(modules = ApiTestModule.class) | ||||
public class BaseWxPayServiceImplTest { | public class BaseWxPayServiceImplTest { | ||||
private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
@Inject | @Inject | ||||
private WxPayService payService; | private WxPayService payService; | ||||
@@ -65,8 +66,8 @@ public class BaseWxPayServiceImplTest { | |||||
.build(); | .build(); | ||||
request.setSignType(SignType.HMAC_SHA256); | request.setSignType(SignType.HMAC_SHA256); | ||||
WxPayUnifiedOrderResult result = this.payService.unifiedOrder(request); | WxPayUnifiedOrderResult result = this.payService.unifiedOrder(request); | ||||
this.logger.info(result.toString()); | |||||
this.logger.warn(this.payService.getWxApiData().toString()); | |||||
log.info(result.toString()); | |||||
log.warn(this.payService.getWxApiData().toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -96,8 +97,8 @@ public class BaseWxPayServiceImplTest { | |||||
.openid(((XmlWxPayConfig) this.payService.getConfig()).getOpenid()) | .openid(((XmlWxPayConfig) this.payService.getConfig()).getOpenid()) | ||||
.outTradeNo("1111112") | .outTradeNo("1111112") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
this.logger.warn(this.payService.getWxApiData().toString()); | |||||
log.info(result.toString()); | |||||
log.warn(this.payService.getWxApiData().toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -116,8 +117,8 @@ public class BaseWxPayServiceImplTest { | |||||
.tradeType(TradeType.APP) | .tradeType(TradeType.APP) | ||||
.outTradeNo("1111112") | .outTradeNo("1111112") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
this.logger.warn(this.payService.getWxApiData().toString()); | |||||
log.info(result.toString()); | |||||
log.warn(this.payService.getWxApiData().toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -137,8 +138,8 @@ public class BaseWxPayServiceImplTest { | |||||
.tradeType(TradeType.NATIVE) | .tradeType(TradeType.NATIVE) | ||||
.outTradeNo("111111290") | .outTradeNo("111111290") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
this.logger.warn(this.payService.getWxApiData().toString()); | |||||
log.info(result.toString()); | |||||
log.warn(this.payService.getWxApiData().toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -158,8 +159,8 @@ public class BaseWxPayServiceImplTest { | |||||
*/ | */ | ||||
@Test | @Test | ||||
public void testQueryOrder() throws WxPayException { | public void testQueryOrder() throws WxPayException { | ||||
this.logger.info(this.payService.queryOrder("11212121", null).toString()); | |||||
this.logger.info(this.payService.queryOrder(null, "11111").toString()); | |||||
log.info(this.payService.queryOrder("11212121", null).toString()); | |||||
log.info(this.payService.queryOrder(null, "11111").toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -169,7 +170,7 @@ public class BaseWxPayServiceImplTest { | |||||
*/ | */ | ||||
@Test | @Test | ||||
public void testCloseOrder() throws WxPayException { | public void testCloseOrder() throws WxPayException { | ||||
this.logger.info(this.payService.closeOrder("11212121").toString()); | |||||
log.info(this.payService.closeOrder("11212121").toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -205,7 +206,7 @@ public class BaseWxPayServiceImplTest { | |||||
String tarType, String deviceInfo) throws Exception { | String tarType, String deviceInfo) throws Exception { | ||||
WxPayBillResult billResult = this.payService.downloadBill(billDate, billType, tarType, deviceInfo); | WxPayBillResult billResult = this.payService.downloadBill(billDate, billType, tarType, deviceInfo); | ||||
assertThat(billResult).isNotNull(); | assertThat(billResult).isNotNull(); | ||||
this.logger.info(billResult.toString()); | |||||
log.info(billResult.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -248,7 +249,7 @@ public class BaseWxPayServiceImplTest { | |||||
public void testDownloadFundFlow(String billDate, String accountType, String tarType) throws Exception { | public void testDownloadFundFlow(String billDate, String accountType, String tarType) throws Exception { | ||||
WxPayFundFlowResult fundFlowResult = this.payService.downloadFundFlow(billDate, accountType, tarType); | WxPayFundFlowResult fundFlowResult = this.payService.downloadFundFlow(billDate, accountType, tarType); | ||||
assertThat(fundFlowResult).isNotNull(); | assertThat(fundFlowResult).isNotNull(); | ||||
this.logger.info(fundFlowResult.toString()); | |||||
log.info(fundFlowResult.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -293,7 +294,7 @@ public class BaseWxPayServiceImplTest { | |||||
.totalFee(1222) | .totalFee(1222) | ||||
.refundFee(111) | .refundFee(111) | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -306,20 +307,20 @@ public class BaseWxPayServiceImplTest { | |||||
WxPayRefundQueryResult result; | WxPayRefundQueryResult result; | ||||
result = this.payService.refundQuery("1", "", "", ""); | result = this.payService.refundQuery("1", "", "", ""); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
result = this.payService.refundQuery("", "2", "", ""); | result = this.payService.refundQuery("", "2", "", ""); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
result = this.payService.refundQuery("", "", "3", ""); | result = this.payService.refundQuery("", "", "3", ""); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
result = this.payService.refundQuery("", "", "", "4"); | result = this.payService.refundQuery("", "", "", "4"); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
//测试四个参数都填的情况,应该报异常的 | //测试四个参数都填的情况,应该报异常的 | ||||
result = this.payService.refundQuery("1", "2", "3", "4"); | result = this.payService.refundQuery("1", "2", "3", "4"); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -332,37 +333,6 @@ public class BaseWxPayServiceImplTest { | |||||
// 请参考com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResultTest里的单元测试 | // 请参考com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResultTest里的单元测试 | ||||
} | } | ||||
/** | |||||
* Test method for {@link WxPayService#sendRedpack(WxPaySendRedpackRequest)} . | |||||
* | |||||
* @throws Exception the exception | |||||
*/ | |||||
@Test | |||||
public void testSendRedpack() throws Exception { | |||||
WxPaySendRedpackRequest request = new WxPaySendRedpackRequest(); | |||||
request.setActName("abc"); | |||||
request.setClientIp("aaa"); | |||||
request.setMchBillNo("aaaa"); | |||||
request.setWishing("what"); | |||||
request.setSendName("111"); | |||||
request.setTotalAmount(1); | |||||
request.setTotalNum(1); | |||||
request.setReOpenid(((XmlWxPayConfig) this.payService.getConfig()).getOpenid()); | |||||
WxPaySendRedpackResult redpackResult = this.payService.sendRedpack(request); | |||||
this.logger.info(redpackResult.toString()); | |||||
} | |||||
/** | |||||
* Test method for {@link WxPayService#queryRedpack(String)}. | |||||
* | |||||
* @throws Exception the exception | |||||
*/ | |||||
@Test | |||||
public void testQueryRedpack() throws Exception { | |||||
WxPayRedpackQueryResult redpackResult = this.payService.queryRedpack("aaaa"); | |||||
this.logger.info(redpackResult.toString()); | |||||
} | |||||
/** | /** | ||||
* Test create scan pay qrcode mode 1. | * Test create scan pay qrcode mode 1. | ||||
* | * | ||||
@@ -375,7 +345,7 @@ public class BaseWxPayServiceImplTest { | |||||
Path qrcodeFilePath = Files.createTempFile("qrcode_", ".jpg"); | Path qrcodeFilePath = Files.createTempFile("qrcode_", ".jpg"); | ||||
Files.write(qrcodeFilePath, bytes); | Files.write(qrcodeFilePath, bytes); | ||||
String qrcodeContent = QrcodeUtils.decodeQrcode(qrcodeFilePath.toFile()); | String qrcodeContent = QrcodeUtils.decodeQrcode(qrcodeFilePath.toFile()); | ||||
this.logger.info(qrcodeContent); | |||||
log.info(qrcodeContent); | |||||
assertTrue(qrcodeContent.startsWith("weixin://wxpay/bizpayurl?")); | assertTrue(qrcodeContent.startsWith("weixin://wxpay/bizpayurl?")); | ||||
assertTrue(qrcodeContent.contains("product_id=" + productId)); | assertTrue(qrcodeContent.contains("product_id=" + productId)); | ||||
@@ -411,7 +381,7 @@ public class BaseWxPayServiceImplTest { | |||||
.spbillCreateIp("127.0.0.1") | .spbillCreateIp("127.0.0.1") | ||||
.authCode("aaa") | .authCode("aaa") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -446,7 +416,7 @@ public class BaseWxPayServiceImplTest { | |||||
.outTradeNo("1111") | .outTradeNo("1111") | ||||
.build()); | .build()); | ||||
assertNotNull(result); | assertNotNull(result); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -460,11 +430,11 @@ public class BaseWxPayServiceImplTest { | |||||
String result = this.payService.shorturl(new WxPayShorturlRequest(longUrl)); | String result = this.payService.shorturl(new WxPayShorturlRequest(longUrl)); | ||||
assertNotNull(result); | assertNotNull(result); | ||||
this.logger.info(result); | |||||
log.info(result); | |||||
result = this.payService.shorturl(longUrl); | result = this.payService.shorturl(longUrl); | ||||
assertNotNull(result); | assertNotNull(result); | ||||
this.logger.info(result); | |||||
log.info(result); | |||||
} | } | ||||
/** | /** | ||||
@@ -478,11 +448,11 @@ public class BaseWxPayServiceImplTest { | |||||
String result = this.payService.authcode2Openid(new WxPayAuthcode2OpenidRequest(authCode)); | String result = this.payService.authcode2Openid(new WxPayAuthcode2OpenidRequest(authCode)); | ||||
assertNotNull(result); | assertNotNull(result); | ||||
this.logger.info(result); | |||||
log.info(result); | |||||
result = this.payService.authcode2Openid(authCode); | result = this.payService.authcode2Openid(authCode); | ||||
assertNotNull(result); | assertNotNull(result); | ||||
this.logger.info(result); | |||||
log.info(result); | |||||
} | } | ||||
/** | /** | ||||
@@ -494,7 +464,7 @@ public class BaseWxPayServiceImplTest { | |||||
public void testGetSandboxSignKey() throws Exception { | public void testGetSandboxSignKey() throws Exception { | ||||
final String signKey = this.payService.getSandboxSignKey(); | final String signKey = this.payService.getSandboxSignKey(); | ||||
assertNotNull(signKey); | assertNotNull(signKey); | ||||
this.logger.info(signKey); | |||||
log.info(signKey); | |||||
} | } | ||||
/** | /** | ||||
@@ -510,7 +480,7 @@ public class BaseWxPayServiceImplTest { | |||||
.partnerTradeNo("1212") | .partnerTradeNo("1212") | ||||
.openidCount(1) | .openidCount(1) | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -524,7 +494,7 @@ public class BaseWxPayServiceImplTest { | |||||
WxPayCouponStockQueryRequest.newBuilder() | WxPayCouponStockQueryRequest.newBuilder() | ||||
.couponStockId("123") | .couponStockId("123") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -540,7 +510,7 @@ public class BaseWxPayServiceImplTest { | |||||
.couponId("11") | .couponId("11") | ||||
.stockId("1121") | .stockId("1121") | ||||
.build()); | .build()); | ||||
this.logger.info(result.toString()); | |||||
log.info(result.toString()); | |||||
} | } | ||||
/** | /** | ||||
@@ -556,7 +526,7 @@ public class BaseWxPayServiceImplTest { | |||||
calendar.add(Calendar.DAY_OF_MONTH, -88); | calendar.add(Calendar.DAY_OF_MONTH, -88); | ||||
Date beginDate = calendar.getTime(); | Date beginDate = calendar.getTime(); | ||||
String result = this.payService.queryComment(beginDate, endDate, 0, 1); | String result = this.payService.queryComment(beginDate, endDate, 0, 1); | ||||
this.logger.info(result); | |||||
log.info(result); | |||||
} | } | ||||
/** | /** | ||||
@@ -610,15 +580,6 @@ public class BaseWxPayServiceImplTest { | |||||
//see test in testUnifiedOrder() | //see test in testUnifiedOrder() | ||||
} | } | ||||
@Test | |||||
public void testSendMiniProgramRedpack() throws WxPayException { | |||||
final WxPaySendMiniProgramRedpackResult result = this.payService | |||||
.sendMiniProgramRedpack(new WxPaySendMiniProgramRedpackRequest() | |||||
.setReOpenid("ojOQA0y9o-Eb6Aep7uVTdbkJqrP4") | |||||
.setTotalAmount(1)); | |||||
System.out.println(result); | |||||
} | |||||
@Test | @Test | ||||
public void testDownloadRawBill() { | public void testDownloadRawBill() { | ||||
} | } | ||||
@@ -0,0 +1,63 @@ | |||||
package com.github.binarywang.wxpay.service.impl; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendMiniProgramRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.request.WxPaySendRedpackRequest; | |||||
import com.github.binarywang.wxpay.bean.result.WxPayRedpackQueryResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendMiniProgramRedpackResult; | |||||
import com.github.binarywang.wxpay.bean.result.WxPaySendRedpackResult; | |||||
import com.github.binarywang.wxpay.exception.WxPayException; | |||||
import com.github.binarywang.wxpay.service.WxPayService; | |||||
import com.github.binarywang.wxpay.testbase.ApiTestModule; | |||||
import com.github.binarywang.wxpay.testbase.XmlWxPayConfig; | |||||
import com.google.inject.Inject; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.testng.annotations.Guice; | |||||
import org.testng.annotations.Test; | |||||
/** | |||||
* 测试类. | |||||
* | |||||
* @author <a href="https://github.com/binarywang">Binary Wang</a> | |||||
* @date 2019-12-26 | |||||
*/ | |||||
@Slf4j | |||||
@Test | |||||
@Guice(modules = ApiTestModule.class) | |||||
public class RedpackServiceImplTest { | |||||
@Inject | |||||
private WxPayService payService; | |||||
@Test | |||||
public void testSendRedpack() throws Exception { | |||||
WxPaySendRedpackRequest request = new WxPaySendRedpackRequest(); | |||||
request.setActName("abc"); | |||||
request.setClientIp("aaa"); | |||||
request.setMchBillNo("aaaa"); | |||||
request.setWishing("what"); | |||||
request.setSendName("111"); | |||||
request.setTotalAmount(1); | |||||
request.setTotalNum(1); | |||||
request.setReOpenid(((XmlWxPayConfig) this.payService.getConfig()).getOpenid()); | |||||
WxPaySendRedpackResult redpackResult = this.payService.getRedpackService().sendRedpack(request); | |||||
log.info(redpackResult.toString()); | |||||
} | |||||
@Test | |||||
public void testQueryRedpack() throws Exception { | |||||
WxPayRedpackQueryResult redpackResult = this.payService.getRedpackService().queryRedpack("aaaa"); | |||||
log.info(redpackResult.toString()); | |||||
} | |||||
@Test | |||||
public void testSendMiniProgramRedpack() throws WxPayException { | |||||
final WxPaySendMiniProgramRedpackResult result = this.payService.getRedpackService() | |||||
.sendMiniProgramRedpack(new WxPaySendMiniProgramRedpackRequest() | |||||
.setReOpenid("ojOQA0y9o-Eb6Aep7uVTdbkJqrP4") | |||||
.setWishing("haha") | |||||
.setMchBillNo("123") | |||||
.setActName("11") | |||||
.setSendName("111") | |||||
.setTotalAmount(1)); | |||||
System.out.println(result); | |||||
} | |||||
} |