From a72cdde58414b30a2f1c6fd23888d54e28803dbf Mon Sep 17 00:00:00 2001 From: S Date: Mon, 2 Sep 2019 09:18:41 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20#1188=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BC=9A=E5=91=98=E5=8D=A1=E5=BC=80=E5=8D=A1?= =?UTF-8?q?=E9=93=BE=E6=8E=A5=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpMemberCardService.java | 10 ++++++ .../api/impl/WxMpMemberCardServiceImpl.java | 34 +++++++++++-------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMemberCardService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMemberCardService.java index e551f7d98..579ae3463 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMemberCardService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpMemberCardService.java @@ -93,6 +93,16 @@ public interface WxMpMemberCardService { */ ActivatePluginParam getActivatePluginParam(String cardId, String outStr) throws WxErrorException; + /** + * 获取开卡组件链接接口 + * + * @param cardId 会员卡的CardId,微信分配 + * @param outStr 会员卡设置商户的渠道 + * @return 会员卡开卡插件参数结果对象 + * @throws WxErrorException 接口调用失败抛出的异常 + */ + String getActivatePluginUrl(String cardId, String outStr) throws WxErrorException; + /** * 更新会员卡信息. * diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMemberCardServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMemberCardServiceImpl.java index 31d9bcf37..5e434d61e 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMemberCardServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpMemberCardServiceImpl.java @@ -248,26 +248,30 @@ public class WxMpMemberCardServiceImpl implements WxMpMemberCardService { @Override public ActivatePluginParam getActivatePluginParam(String cardId, String outStr) throws WxErrorException { + String url = this.getActivatePluginUrl(cardId, outStr); + try { + String decodedUrl = URLDecoder.decode(url, "UTF-8"); + Map resultMap = parseRequestUrl(decodedUrl); + ActivatePluginParam activatePluginParam = new ActivatePluginParam(); + activatePluginParam.setEncryptCardId(resultMap.get("encrypt_card_id")); + activatePluginParam.setOuterStr(resultMap.get("outer_str")); + activatePluginParam.setBiz(resultMap.get("biz") + "=="); + return activatePluginParam; + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + + + @Override + public String getActivatePluginUrl(String cardId, String outStr) throws WxErrorException { JsonObject params = new JsonObject(); params.addProperty("card_id", cardId); params.addProperty("outer_str", outStr); String response = this.wxMpService.post(WxMpApiUrl.MemberCard.MEMBER_CARD_ACTIVATE_URL, GSON.toJson(params)); ActivatePluginParamResult result = GSON.fromJson(response, ActivatePluginParamResult.class); - if (0 == result.getErrcode()) { - String url = result.getUrl(); - try { - String decodedUrl = URLDecoder.decode(url, "UTF-8"); - Map resultMap = parseRequestUrl(decodedUrl); - ActivatePluginParam activatePluginParam = new ActivatePluginParam(); - activatePluginParam.setEncryptCardId(resultMap.get("encrypt_card_id")); - activatePluginParam.setOuterStr(resultMap.get("outer_str")); - activatePluginParam.setBiz(resultMap.get("biz") + "=="); - return activatePluginParam; - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - return null; + return result.getUrl(); } @Override