Pu Zhibing
2024-12-17 2fb095b8ba3b943264477074eb02b08192a9cfd0
DriverAHTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
@@ -1,7 +1,12 @@
package com.stylefeng.guns.modular.system.util;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.stylefeng.guns.core.util.ToolUtil;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +22,7 @@
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
 * 微信工具类
@@ -32,6 +38,9 @@
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private RedisUtil redisUtil;
@@ -110,7 +119,32 @@
        String ticket = JSONObject.parseObject(backData).getString("ticket");
        return  ticket;
    }
    public String getWxAppletsAccessToken(){
        String wxAppletsAccessToken = redisUtil.getValue("wxAppletsAccessToken");
        if(ToolUtil.isNotEmpty(wxAppletsAccessToken)){
            return wxAppletsAccessToken;
        }
        String appletsAccessToken = getAppletsAccessToken();
        redisUtil.setStrValue("wxAppletsAccessToken", appletsAccessToken, 7200);
        return appletsAccessToken;
    }
    /**
     * 获取微信小程序token
     * @return
     */
    public String getAppletsAccessToken() {
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
        HttpRequest get = HttpUtil.createGet(url);
        HttpResponse response = get.execute();
        if(response.getStatus() != 200){
            return "";
        }
        JSONObject jsonObject = JSON.parseObject(response.body());
        return jsonObject.getString("access_token");
    }
    /***
     * 获取acess_token (公众号)
@@ -118,7 +152,7 @@
     * @return
     */
    public String getAccessToken(){
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxc89ecab90d24edd8&secret=bca863174d22736a4a9758a67484947e";
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
        String backData = restTemplate.getForObject(url, String.class);
        String accessToken = JSONObject.parseObject(backData).getString("access_token");
        return accessToken;
@@ -168,7 +202,7 @@
    public String rid(String path, Integer driverId) throws Exception{
        // 获取access_token
        String accessToken = getAccessToken();
        String accessToken = getWxAppletsAccessToken();
        // 替换CREATE_CODE_URL
        String url = "https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token="+accessToken;
        // 发送请求
@@ -183,11 +217,9 @@
            byte[] bytes = rep.getBody();
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
            MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream);
//            ResultUtil resultUtil = userInfoController.uploadImg(file, null, null);
            String s = OssUploadUtil.ossUpload(file,driverId);
            String s = ObsUploadUtil.obsUpload(file);
            System.err.println("===url"+s);
//            StringBuilder sb = new StringBuilder(stringApiResult);
//            stringApiResult = sb.toString();
            System.err.println(Base64.encodeBase64String(bytes));
            return s;
        } catch (Exception e) {