Browse Source

:art: 电商收付通支付接口调整

经测试小程序支付时不能使用服务商的appId签名,故增加方法返回微信接口返回的结果。
cloudX 4 years ago
parent
commit
efdf64eb6b

+ 25 - 0
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/EcommerceService.java

@@ -63,6 +63,19 @@ public interface EcommerceService {
    *
    * @param tradeType 支付方式
    * @param request 请求对象
+   * @return 微信合单支付返回
+   */
+  TransactionsResult combine(TradeTypeEnum tradeType, CombineTransactionsRequest request) throws WxPayException;
+
+  /**
+   * <pre>
+   * 合单支付API(APP支付、JSAPI支付、H5支付、NATIVE支付).
+   * 请求URL:https://api.mch.weixin.qq.com/v3/combine-transactions/jsapi
+   * 文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/e-combine.shtml
+   * </pre>
+   *
+   * @param tradeType 支付方式
+   * @param request 请求对象
    * @return 调起支付需要的参数
    */
   <T> T combineTransactions(TradeTypeEnum tradeType, CombineTransactionsRequest request) throws WxPayException;
@@ -89,6 +102,18 @@ public interface EcommerceService {
    * @param request 请求对象
    * @return 调起支付需要的参数
    */
+  TransactionsResult partner(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException;
+
+  /**
+   *  <pre>
+   *  服务商模式普通支付API(APP支付、JSAPI支付、H5支付、NATIVE支付).
+   *  请求URL:https://api.mch.weixin.qq.com/v3/pay/partner/transactions/jsapi
+   *  文档地址: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/transactions_sl.shtml
+   *  </pre>
+   * @param tradeType 支付方式
+   * @param request 请求对象
+   * @return 调起支付需要的参数
+   */
   <T> T partnerTransactions(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException;
 
   /**

+ 14 - 4
weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/EcommerceServiceImpl.java

@@ -46,10 +46,15 @@ public class EcommerceServiceImpl implements EcommerceService {
   }
 
   @Override
-  public <T> T combineTransactions(TradeTypeEnum tradeType, CombineTransactionsRequest request) throws WxPayException {
+  public TransactionsResult combine(TradeTypeEnum tradeType, CombineTransactionsRequest request) throws WxPayException {
     String url = this.payService.getPayBaseUrl() + tradeType.getCombineUrl();
     String response = this.payService.postV3(url, GSON.toJson(request));
-    TransactionsResult result = GSON.fromJson(response, TransactionsResult.class);
+    return GSON.fromJson(response, TransactionsResult.class);
+  }
+
+  @Override
+  public <T> T combineTransactions(TradeTypeEnum tradeType, CombineTransactionsRequest request) throws WxPayException {
+    TransactionsResult result = this.combine(tradeType, request);
     return result.getPayInfo(tradeType, request.getCombineAppid(),
       request.getCombineMchid(), payService.getConfig().getPrivateKey());
   }
@@ -76,10 +81,15 @@ public class EcommerceServiceImpl implements EcommerceService {
   }
 
   @Override
-  public <T> T partnerTransactions(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException {
+  public TransactionsResult partner(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException {
     String url = this.payService.getPayBaseUrl() + tradeType.getPartnerUrl();
     String response = this.payService.postV3(url, GSON.toJson(request));
-    TransactionsResult result = GSON.fromJson(response, TransactionsResult.class);
+    return GSON.fromJson(response, TransactionsResult.class);
+  }
+
+  @Override
+  public <T> T partnerTransactions(TradeTypeEnum tradeType, PartnerTransactionsRequest request) throws WxPayException {
+    TransactionsResult result = this.partner(tradeType, request);
     return result.getPayInfo(tradeType, request.getSpAppid(),
       request.getSpMchid(), payService.getConfig().getPrivateKey());
   }