From 53e7558400dcacecdce70e39ebfe1727740f9296 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 25 十一月 2023 17:20:06 +0800
Subject: [PATCH] 重写课包支付和排课逻辑

---
 cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java |   98 ++++++++++++++++++++++++++----------------------
 1 files changed, 53 insertions(+), 45 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java
index 4c7d129..85280d3 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java
@@ -32,7 +32,7 @@
     @Value("${wx.appletsAppSecret}")
     private String wxAppletsAppSecret;
 
-//    @Value("${wx.officialAccountAppid}")
+    //    @Value("${wx.officialAccountAppid}")
     private String officialAccountAppid;
 
     @Value("{wx.officialAccountAppSecret}")
@@ -50,35 +50,36 @@
 
     /**
      * 小程序使用jscode获取openid
+     *
      * @param jscode
      * @return
      */
-    public Map<String, Object> code2Session(String jscode) throws Exception{
+    public Map<String, Object> code2Session(String jscode) throws Exception {
         String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret
                 + "&js_code=" + jscode + "&grant_type=authorization_code";
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(null == httpResult || httpResult.getCode() != 200){
+        if (null == httpResult || httpResult.getCode() != 200) {
             return null;
         }
         JSONObject jsonObject = JSON.parseObject(httpResult.getData());
         int errcode = jsonObject.getIntValue("errcode");
         Map<String, Object> map = new HashMap<>();
         map.put("errcode", errcode);
-        if(errcode == 0){//成功
+        if (errcode == 0) {//成功
             map.put("openid", jsonObject.getString("openid"));
             map.put("sessionKey", jsonObject.getString("session_key"));
             map.put("unionid", jsonObject.getString("unionid"));
             return map;
         }
-        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 40029){//code 无效
+        if (errcode == 40029) {//code 无效
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 45011){//频率限制,每个用户每分钟100次
+        if (errcode == 45011) {//频率限制,每个用户每分钟100次
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
@@ -88,12 +89,13 @@
 
     /**
      * 获取微信小程序token
+     *
      * @return
      */
-    public String getWxAppletsAccessToken() throws Exception{
+    public String getWxAppletsAccessToken() throws Exception {
         String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return "";
         }
         JSONObject jsonObject = JSON.parseObject(httpResult.getData());
@@ -103,34 +105,35 @@
 
     /**
      * 网站应用登录
+     *
      * @param code
      * @return
      */
-    public Map<String, String> webAccessToken(String code) throws Exception{
+    public Map<String, String> webAccessToken(String code) throws Exception {
         String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code";
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         JSONObject jsonObject = JSON.parseObject(httpResult.getData());
         int errcode = jsonObject.getIntValue("errcode");
         Map<String, String> map = new HashMap<>();
-        if(errcode == 0){//成功
+        if (errcode == 0) {//成功
             map.put("access_token", jsonObject.getString("access_token"));
             map.put("openid", jsonObject.getString("openid"));
             map.put("refresh_token", jsonObject.getString("refresh_token"));
             map.put("unionid", jsonObject.getString("unionid"));
             return map;
         }
-        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 40029){//code 无效
+        if (errcode == 40029) {//code 无效
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 45011){//频率限制,每个用户每分钟100次
+        if (errcode == 45011) {//频率限制,每个用户每分钟100次
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
@@ -140,35 +143,36 @@
 
     /**
      * 获取微信个人信息
+     *
      * @param access_token
      * @param openid
      * @return
      */
-    public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{
+    public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception {
         String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid;
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         JSONObject jsonObject = JSON.parseObject(httpResult.getData());
         int errcode = jsonObject.getIntValue("errcode");
         Map<String, Object> map = new HashMap<>();
-        if(errcode == 0){//成功
+        if (errcode == 0) {//成功
             map.put("nickname", jsonObject.getString("nickname"));
             map.put("openid", jsonObject.getString("openid"));
             map.put("sex", jsonObject.getString("sex"));
             map.put("headimgurl", jsonObject.getString("headimgurl"));
             return map;
         }
-        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 40029){//code 无效
+        if (errcode == 40029) {//code 无效
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
-        if(errcode == 45011){//频率限制,每个用户每分钟100次
+        if (errcode == 45011) {//频率限制,每个用户每分钟100次
             map.put("msg", jsonObject.getString("errmsg"));
             return map;
         }
@@ -178,18 +182,19 @@
 
     /**
      * 公众号获取openid
+     *
      * @param code
      * @return
      */
-    public Map<String,Object> getOpenId(String code) throws Exception{
+    public Map<String, Object> getOpenId(String code) throws Exception {
         if (code == null || code.length() == 0) {
             return null;
         }
         String grantType = "authorization_code";
         String params = "appid=" + officialAccountAppid + "&secret=" + officialAccountAppSecret + "&code=" + code + "&grant_type=" + grantType;
-        System.out.println("sssss"+params);
+        System.out.println("sssss" + params);
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", "https://api.weixin.qq.com/sns/oauth2/access_token?" + params, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         JSONObject json = JSON.parseObject(httpResult.getData());
@@ -199,9 +204,9 @@
         Integer expiresIn = json.getInteger("expires_in");
         String refresh_token = json.getString("refresh_token");
         String unionid = json.getString("unionid");
-        Map<String,Object> map=new HashMap<>();
-        map.put("openId",openId);
-        map.put("accessToken",accessToken);
+        Map<String, Object> map = new HashMap<>();
+        map.put("openId", openId);
+        map.put("accessToken", accessToken);
         map.put("expiresIn", expiresIn);
         map.put("refreshToken", refresh_token);
         map.put("unionid", unionid);
@@ -214,11 +219,11 @@
      * 来源www.vxzsk.com
      * @return
      */
-    public String getAccessToken() throws Exception{
+    public String getAccessToken() throws Exception {
         String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + officialAccountAppid
                 + "&secret=" + officialAccountAppSecret;
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         String accessToken = JSONObject.parseObject(httpResult.getData()).getString("access_token");
@@ -230,25 +235,26 @@
      * 来源 www.vxzsk.com
      * @return
      */
-    public String getJSApiTicket() throws Exception{
+    public String getJSApiTicket() throws Exception {
         //获取token
-        String acess_token= this.getAccessToken();
+        String acess_token = this.getAccessToken();
         String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + acess_token + "&type=jsapi";
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", urlStr, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         System.out.println(httpResult.getData());
         String ticket = JSONObject.parseObject(httpResult.getData()).getString("ticket");
-        return  ticket;
+        return ticket;
     }
 
     /**
      * 通过config接口注入权限验证配置(公众号)
      * 附录1-JS-SDK使用权限签名算法,
+     *
      * @return
      */
-    public Map<String,Object> getSignatureConfig(String url) throws Exception{
+    public Map<String, Object> getSignatureConfig(String url) throws Exception {
         //获取token
         try {
             url = URLDecoder.decode(url, "UTF-8");
@@ -260,25 +266,26 @@
         Long timestamp = System.currentTimeMillis();
         String content = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
         String signature = DigestUtils.sha1Hex(content);
-        Map<String,Object> map=new HashMap<>();
+        Map<String, Object> map = new HashMap<>();
         map.put("appId", officialAccountAppid);
         map.put("timestamp", timestamp);
         map.put("nonceStr", noncestr);
         map.put("signature", signature);
-        return  map;
+        return map;
     }
 
 
     /**
      * 公众号获取用户个人信息
+     *
      * @param access_token
      * @param openid
      * @return
      */
-    public Map<String, Object> queryUserInfo(String access_token, String openid) throws Exception{
+    public Map<String, Object> queryUserInfo(String access_token, String openid) throws Exception {
         String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid + "&lang=zh_CN";
         HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
-        if(httpResult.getCode() != 200){
+        if (httpResult.getCode() != 200) {
             return null;
         }
         System.err.println(httpResult.getData());
@@ -294,13 +301,14 @@
 
     /**
      * 获取小程序二维码
-     * @param page      跳转页 例如 pages/index/index
-     * @param scene     参数 a=1&b=2
+     *
+     * @param page  跳转页 例如 pages/index/index
+     * @param scene 参数 a=1&b=2
      */
-    public InputStream getwxacodeunlimit(String page, String scene){
+    public InputStream getwxacodeunlimit(String page, String scene) {
         try {
             String token = getWxAppletsAccessToken();
-            if(ToolUtil.isEmpty(token)){
+            if (ToolUtil.isEmpty(token)) {
                 System.err.println("获取接口调用凭证失败");
             }
             String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token;
@@ -308,17 +316,17 @@
             param.put("scene", scene);
             param.put("page", page);
             HttpHeaders httpHeaders = new HttpHeaders();
-            MediaType type= MediaType.parseMediaType("application/json;charset=UTF-8");
+            MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
             httpHeaders.setContentType(type);
             HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders);
             ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]);
             String body1 = exchange.getBody();
 //            System.err.println(body1);
-            ResponseEntity<byte[]> entity  = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
+            ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
             byte[] body = entity.getBody();
 //            System.err.println(Base64.encodeBase64String(body));
             return new ByteArrayInputStream(body);
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
         return null;

--
Gitblit v1.7.1