ソースを参照

fix(修改获取token的方式)

xing.li 3 年 前
コミット
121a238798

+ 2 - 0
src/main/java/com/ads/common/constant/UrlConstant.java

@@ -87,4 +87,6 @@ public class UrlConstant {
      * AFTERSALE_SEND
      */
     public static final String AFTERSALE_SEND = "https://api.weixin.qq.com/shop/aftersale/add?access_token={}";
+
+    public static final String URL_HSAY_OPEN = "https://vapi.hsayi.com/open/wxapp/get-wx-app-token";
 }

+ 44 - 13
src/main/java/com/ads/common/handler/WeChatHandler.java

@@ -24,6 +24,8 @@ import java.io.File;
 import java.io.IOException;
 import java.util.*;
 
+import static com.ads.common.util.CodecUtil.encryptMD5;
+
 /**
  * 微信接口
  *
@@ -158,21 +160,50 @@ public class WeChatHandler {
      * @date 2021/12/22 15:52
      */
     static String getAccessToken() {
+
+        String url = UrlConstant.URL_HSAY_OPEN;
+
+        HashMap<String,Object> params = new HashMap<>();
+        String appCode ="HSAY_SHARE_COUPON";
+        Long timestamp = (new Date()).getTime();
+        String sign = encryptMD5(appCode + "hsay-wx-app-0302" + timestamp);
+        params.put("timestamp",timestamp);
+        params.put("appCode",appCode);
+        params.put("sign",sign);
+        String param = JSONUtil.toJsonStr(params);
+
+
         log.info("===>请求access_token");
-        String url = StrUtil.format(
-                UrlConstant.ACCESS_TOKEN,
-                appId,
-                appSecret
-        );
-        String res = HttpUtil.get(url);
-        JSONObject jsonObject = JSONUtil.parseObj(res);
-        String accessToken = jsonObject.getStr(CodeConstant.WECHAT.ACCESS_TOKEN);
-        if (StrUtil.isBlank(accessToken)) {
-            String errCode = jsonObject.getStr(CodeConstant.WECHAT.ERR_CODE);
-            throw new RuntimeException("请求access_token失败!");
+        try{
+            String res = HttpUtil.post(url, param);
+            JSONObject jsonObject = JSONUtil.parseObj(res);
+            if(jsonObject.getInt("code")==200){
+                log.info("===>请求access_token成功");
+                String data = jsonObject.getStr("data");
+                return JSONUtil.parseObj(data).getStr("accessToken");
+            }else{
+                throw new BusinessException("获取token失败:"+jsonObject.getStr("msg"));
+            }
+
         }
-        log.info("===>请求access_token成功");
-        return accessToken;
+        catch (Exception e){
+            throw new BusinessException("获取token失败");
+        }
+
+//        String url = StrUtil.format(
+//                UrlConstant.ACCESS_TOKEN,
+//                appId,
+//                appSecret
+//        );
+//        String res = HttpUtil.get(url);
+//        JSONObject jsonObject = JSONUtil.parseObj(res);
+//        String accessToken = jsonObject.getStr(CodeConstant.WECHAT.ACCESS_TOKEN);
+//        if (StrUtil.isBlank(accessToken)) {
+//            String errCode = jsonObject.getStr(CodeConstant.WECHAT.ERR_CODE);
+//            throw new RuntimeException("请求access_token失败!");
+//        }
+//        log.info("===>请求access_token成功");
+//        return accessToken;
     }
 
     /**

+ 15 - 0
src/test/java/com/ads/common/handler/WeChatHandlerTest.java

@@ -0,0 +1,15 @@
+package com.ads.common.handler;
+
+import junit.framework.TestCase;
+
+import javax.annotation.Resource;
+
+public class WeChatHandlerTest extends TestCase {
+    @Resource
+    private WeChatHandler weChatHandler ;
+    public void testGetAccessToken() {
+
+        String accessToken = weChatHandler.getAccessToken();
+        Integer a= 6;
+    }
+}