From 936b40cd883fdadd9ffc066917cfc1a7763a9547 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sun, 13 May 2018 19:19:18 +0800 Subject: [PATCH] =?UTF-8?q?#555=20=E4=BF=AE=E5=A4=8D=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E6=9C=8D=E5=8A=A1=E5=95=86=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=AA=8C=E8=AF=81=E7=AD=BE=E5=90=8D=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/bean/order/WxPayMpOrderResult.java | 2 +- .../service/impl/BaseWxPayServiceImpl.java | 25 +++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/order/WxPayMpOrderResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/order/WxPayMpOrderResult.java index 4fded06fd..12f8e43bc 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/order/WxPayMpOrderResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/order/WxPayMpOrderResult.java @@ -20,7 +20,7 @@ public class WxPayMpOrderResult { private String timeStamp; private String nonceStr; /** - * 由于package为java保留关键字,因此改为packageValue + * 由于package为java保留关键字,因此改为packageValue. */ @XStreamAlias("package") private String packageValue; diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java index 54279e7f9..ec5deea71 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/BaseWxPayServiceImpl.java @@ -311,8 +311,12 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { case TradeType.APP: { // APP支付绑定的是微信开放平台上的账号,APPID为开放平台上绑定APP后发放的参数 - String appId = this.getConfig().getAppId(); - Map configMap = new HashMap<>(); + String appId = unifiedOrderResult.getAppid(); + if (StringUtils.isNotEmpty(unifiedOrderResult.getSubAppId())) { + appId = unifiedOrderResult.getSubAppId(); + } + + Map configMap = new HashMap<>(8); // 此map用于参与调起sdk支付的二次签名,格式全小写,timestamp只能是10位,格式固定,切勿修改 String partnerId = getConfig().getMchId(); configMap.put("prepayid", prepayId); @@ -336,21 +340,20 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { case TradeType.JSAPI: { String signType = SignType.MD5; + String appid = unifiedOrderResult.getAppid(); + if (StringUtils.isNotEmpty(this.getConfig().getSubAppId())) { + appid = this.getConfig().getSubAppId(); + } + WxPayMpOrderResult payResult = WxPayMpOrderResult.builder() - .appId(unifiedOrderResult.getAppid()) + .appId(appid) .timeStamp(timestamp) .nonceStr(nonceStr) .packageValue("prepay_id=" + prepayId) .signType(signType) .build(); - payResult.setPaySign( - SignUtils.createSign( - payResult, - signType, - this.getConfig().getMchKey(), - false) - ); + payResult.setPaySign(SignUtils.createSign(payResult, signType, this.getConfig().getMchKey(), false)); return (T) payResult; } @@ -534,7 +537,7 @@ public abstract class BaseWxPayServiceImpl implements WxPayService { } } } catch (Exception e) { - this.log.error("解析对账单文件时出错",e); + this.log.error("解析对账单文件时出错", e); } return null;