wuxw
2022-05-10 b2b5bdf6f42597e582da96aa56707e1f68d3936e
java110-core/src/main/java/com/java110/core/factory/ChinaUmsFactory.java
@@ -2,16 +2,21 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Synchronized;
import com.java110.dto.smallWeChat.SmallWeChatDto;
import com.java110.utils.cache.JWTCache;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.WechatConstant;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.PayUtil;
import com.java110.utils.util.StringUtil;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.java110.core.log.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
@@ -50,9 +55,9 @@
     * @return
     */
    @Java110Synchronized(value = "appId")
    public static String getAccessToken() {
        String appId = MappingCache.getValue(ChinaUmsFactory.CHINA_UMS_DOMAIN, "appId");
        String appSecure = MappingCache.getValue(ChinaUmsFactory.CHINA_UMS_DOMAIN, "appKey");
    public static String getAccessToken(SmallWeChatDto smallWeChatDto) {
        String appId = smallWeChatDto.getRemarks().split("::")[0];
        String appSecure = smallWeChatDto.getRemarks().split("::")[1];
        String accessToken = JWTCache.getValue(CHINA_UMS + appId);
        if (StringUtil.isEmpty(accessToken)) {
            return refreshAccessToken(appId, appSecure);
@@ -75,14 +80,22 @@
        JSONObject paramMap = new JSONObject();
        paramMap.put("appId", appId);
        paramMap.put("timestamp", PayUtil.getCurrentTimeStamp());
        paramMap.put("timestamp", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_DEFAULT));
        paramMap.put("nonce", PayUtil.makeUUID(32));
        paramMap.put("signMethod", "SHA256");
        paramMap.put("signature", getSignature(paramMap, appSecure));
        RestTemplate outRestTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class);
        ResponseEntity<String> response = outRestTemplate.postForEntity(url, paramMap.toJSONString(), String.class);
        logger.debug("获取access_token 入参:" + url + " 请求参数" + paramMap.toJSONString());
        //ResponseEntity<String> response = outRestTemplate.postForEntity(url, paramMap.toJSONString(), String.class);
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json");
        HttpEntity httpEntity = new HttpEntity(paramMap.toJSONString(), headers);
        ResponseEntity<String> response = outRestTemplate.exchange(
                url, HttpMethod.POST, httpEntity, String.class);
        logger.debug("获取access_token 入参:" + url + " 返回参数" + response);