From d8668fd36452cb1fe20ab3170c7fd638519efec2 Mon Sep 17 00:00:00 2001 From: ihao <13112651622@163.com> Date: Wed, 2 Jul 2025 16:31:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BE=AE=E4=BF=A1h5=E7=BA=AF=E7=AD=BE?= =?UTF-8?q?=E7=BA=A6=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=9D=9E?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=E5=AD=97=E6=AE=B5=E5=88=A4=E6=96=AD=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=8A=A0=E5=85=A5url=EF=BC=8C=E5=90=A6=E5=88=99?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5=E4=B8=BAnull=E5=80=BC=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=AD=BE=E5=90=8D=E9=AA=8C=E8=AF=81=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/service/impl/WxEntrustPapServiceImpl.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java index 951c1d5a8..8a90ea350 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java @@ -10,6 +10,7 @@ import com.github.binarywang.wxpay.util.SignUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.util.json.WxGsonBuilder; +import org.apache.commons.lang3.StringUtils; import java.net.URLEncoder; @@ -65,8 +66,13 @@ public class WxEntrustPapServiceImpl implements WxEntrustPapService { strBuilder.append("&contract_code=").append(wxH5EntrustRequest.getContractCode()); strBuilder.append("&contract_display_account=").append(URLEncoder.encode(wxH5EntrustRequest.getContractDisplayAccount())); strBuilder.append("&mch_id=").append(wxH5EntrustRequest.getMchId()).append("¬ify_url=").append(URLEncoder.encode(wxH5EntrustRequest.getNotifyUrl())); - strBuilder.append("&plan_id=").append(wxH5EntrustRequest.getPlanId()).append("&outerid=").append(URLEncoder.encode(wxH5EntrustRequest.getOuterId())); - strBuilder.append("&return_appid=").append(wxH5EntrustRequest.getReturnAppid()); + strBuilder.append("&plan_id=").append(wxH5EntrustRequest.getPlanId()); + if (StringUtils.isNotEmpty(wxH5EntrustRequest.getOuterId())) { + strBuilder.append("&outerid=").append(URLEncoder.encode(wxH5EntrustRequest.getOuterId())); + } + if (StringUtils.isNotEmpty(wxH5EntrustRequest.getReturnAppid())) { + strBuilder.append("&return_appid=").append(wxH5EntrustRequest.getReturnAppid()); + } strBuilder.append("&clientip=").append(wxH5EntrustRequest.getClientIp()); strBuilder.append("&request_serial=").append(wxH5EntrustRequest.getRequestSerial()).append("×tamp=").append(wxH5EntrustRequest.getTimestamp()); strBuilder.append("&version=").append(wxH5EntrustRequest.getVersion()).append("&sign=").append(sign); -- Gitee From 3c942a6ad7640fcbe8e4682060e1fcd1e776b60d Mon Sep 17 00:00:00 2001 From: ihao <13112651622@163.com> Date: Mon, 22 Sep 2025 15:23:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=85=AC=E4=BC=97?= =?UTF-8?q?=E5=8F=B7=E7=AD=BE=E7=BA=A6=E7=BC=BA=E5=A4=B1=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E6=96=B9=E6=B3=95=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=9D=9E=E5=BF=85=E5=A1=AB=E5=8F=82=E6=95=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/service/impl/WxEntrustPapServiceImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java index 8a90ea350..8adf76dfa 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/service/impl/WxEntrustPapServiceImpl.java @@ -27,15 +27,21 @@ public class WxEntrustPapServiceImpl implements WxEntrustPapService { @Override public String mpSign(WxMpEntrustRequest wxMpEntrustRequest) throws WxPayException { + wxMpEntrustRequest.checkAndSign(payService.getConfig()); StringBuilder signStrTemp = new StringBuilder(payService.getPayBaseUrl() + "/papay/entrustweb"); signStrTemp.append("?appid=").append(wxMpEntrustRequest.getAppid()); signStrTemp.append("&contract_code=").append(wxMpEntrustRequest.getContractCode()); signStrTemp.append("&contract_display_account=").append(URLEncoder.encode(wxMpEntrustRequest.getContractDisplayAccount())); signStrTemp.append("&mch_id=").append(wxMpEntrustRequest.getMchId()).append("¬ify_url=").append(URLEncoder.encode(wxMpEntrustRequest.getNotifyUrl())); - signStrTemp.append("&plan_id=").append(wxMpEntrustRequest.getPlanId()).append("&outerid=").append(URLEncoder.encode(wxMpEntrustRequest.getOuterId())); + signStrTemp.append("&plan_id=").append(wxMpEntrustRequest.getPlanId()); signStrTemp.append("&request_serial=").append(wxMpEntrustRequest.getRequestSerial()).append("×tamp=").append(wxMpEntrustRequest.getTimestamp()); - signStrTemp.append("&version=").append(wxMpEntrustRequest.getVersion()).append("&return_web=").append(wxMpEntrustRequest.getReturnWeb()).append("&sign=").append(wxMpEntrustRequest.getSign()); - + if (StringUtils.isNotEmpty(wxMpEntrustRequest.getReturnWeb())) { + signStrTemp.append("&return_web=").append(wxMpEntrustRequest.getReturnWeb()); + } + if (StringUtils.isNotEmpty(wxMpEntrustRequest.getOuterId())) { + signStrTemp.append("&outerid=").append(URLEncoder.encode(wxMpEntrustRequest.getOuterId())); + } + signStrTemp.append("&version=").append(wxMpEntrustRequest.getVersion()).append("&sign=").append(wxMpEntrustRequest.getSign()); return signStrTemp.toString(); } -- Gitee