puhanshu
2022-07-23 bbda2ee1af4e86d76f93e00386d77efb56c60d5f
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
@@ -7,6 +7,9 @@
import java.util.Map;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.user.SysAppConfigVO;
import com.panzhihua.common.service.user.UserService;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
@@ -39,6 +42,7 @@
    private static String APP_IMAGE_NAME = "5.jpg";
    @Resource
    private RedisTemplate redisTemplate;
    UserService userService;
    private static WxXCXTempSend wxXCXTempSend;
    /**
@@ -88,43 +92,35 @@
     * @return
     */
    public String getAccessToken() throws Exception {
         String appid=this.getAppId();
         String accessToken = "";
         Boolean aBoolean = wxXCXTempSend.redisTemplate.hasKey(SecurityConstants.APPLETS_ACCESS_TOKEN);
         Boolean aBoolean = wxXCXTempSend.redisTemplate.hasKey(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);
         ValueOperations<String, String> valueOperations = wxXCXTempSend.redisTemplate.opsForValue();
         if(aBoolean){
         Long expireTime = Long.parseLong(valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME));
         Long expireTime = Long.parseLong(valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid));
         if(expireTime <= System.currentTimeMillis()){
             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN);//如果过期则删除
             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME);//如果过期则删除
             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);//如果过期则删除
             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid);//如果过期则删除
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN, accessToken);
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME, System.currentTimeMillis() + 1100000 + "");
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid, getAppAccessToken(appid));
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid, System.currentTimeMillis() + 1100000 + "");
         }else{
         accessToken = valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN);
         accessToken = valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);
         }
         }else{
         accessToken = getAppAccessToken();
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN, accessToken);
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME, System.currentTimeMillis() + 1100000 + "");
         accessToken = getAppAccessToken(appid);
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid, accessToken);
         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid, System.currentTimeMillis() + 1100000 + "");
         }
        return accessToken;
    }
    public String getAppAccessToken() throws Exception {
    public String getAppAccessToken(String appid) throws Exception {
        R<SysAppConfigVO> sysAppConfigVOR=userService.selectByAppid(appid);
        String accessToken = "0";
        try {
            // 此处APP_ID APP_SECRET 在微信小程序后端可见
            // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET);
            String appId = getAppId();
            String appSecret = getAppSecret();
            if(StringUtils.isEmpty(appId)){
                appId = APP_ID;
            }
            if(StringUtils.isEmpty(appSecret)){
                appSecret = APP_SECRET;
            }
            log.info("获取微信token参数:appid=" + appId + ",appSecret=" + appSecret);
            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + appId + "&secret=" + appSecret;
            log.info("获取微信token参数:appid=" + APP_ID + ",appSecret=" + APP_SECRET);
            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + sysAppConfigVOR.getData().getAppId() + "&secret=" + sysAppConfigVOR.getData().getSecret();
            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
            if (resultMap.containsKey("access_token")) {