From 05683f2b2bdbdbe21cf17ad523c21ab338bd1c54 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 19 七月 2022 21:49:55 +0800
Subject: [PATCH] 优化添加设备 功能
---
java110-core/src/main/java/com/java110/core/factory/WechatFactory.java | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/factory/WechatFactory.java b/java110-core/src/main/java/com/java110/core/factory/WechatFactory.java
old mode 100644
new mode 100755
index b5685c5..8f175b3
--- a/java110-core/src/main/java/com/java110/core/factory/WechatFactory.java
+++ b/java110-core/src/main/java/com/java110/core/factory/WechatFactory.java
@@ -1,14 +1,20 @@
package com.java110.core.factory;
import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Synchronized;
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.StringUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.client.RestTemplate;
+import org.apache.commons.codec.binary.Base64;
+import org.slf4j.Logger;
+import com.java110.core.log.LoggerFactory;
+import org.springframework.web.client.RestTemplate;
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
import java.util.Date;
/**
@@ -45,6 +51,7 @@
* @param appSecure
* @return
*/
+ @Java110Synchronized(value = "appId")
public static String getAccessToken(String appId, String appSecure) {
String accessToken = JWTCache.getValue(WECHAT + appId);
if (StringUtil.isEmpty(accessToken)) {
@@ -61,7 +68,11 @@
* @return
*/
private static String refreshAccessToken(String appId, String appSecure) {
- String url = WechatConstant.GET_ACCESS_TOKEN.replace("APPID", appId)
+ String getAccessToken = MappingCache.getRemark(WechatConstant.WECHAT_DOMAIN,WechatConstant.GET_ACCESS_TOKEN_URL);
+ if(StringUtil.isEmpty(getAccessToken)){
+ getAccessToken = WechatConstant.GET_ACCESS_TOKEN;
+ }
+ String url = getAccessToken.replace("APPID", appId)
.replace("SECRET", appSecure);
RestTemplate outRestTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class);
String response = outRestTemplate.getForObject(url, String.class);
@@ -96,7 +107,34 @@
* @return
*/
public static String getAppId(String wId) {
+ wId = wId.replace(" ", "+");
return AuthenticationFactory.decrypt(password, wId);
}
+
+ public static String getPhoneNumberBeanS5(String decryptData, String key, String iv) {
+ /*
+ *杩欓噷浣犳病蹇呰闈炴寜鐓ф垜鐨勬柟寮忓啓锛屼笅闈㈡墦浠g爜涓昏鏄湪涓�涓嚜宸辩殑绫讳腑 鏀句笂decrypts5杩欎釜瑙e瘑宸ュ叿锛屽伐鍏峰湪涓嬫柟鏈変唬鐮�
+ */
+ String resultMessage = decryptS5(decryptData, "UTF-8", key, iv);
+ return resultMessage;
+ }
+
+ public static String decryptS5(String sSrc, String encodingFormat, String sKey, String ivParameter) {
+ try {
+ Base64 base64 = new Base64();
+ byte[] raw = base64.decode(sKey);
+ SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+ IvParameterSpec iv = new IvParameterSpec(base64.decode(ivParameter));
+ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
+ byte[] myendicod = base64.decode(sSrc);
+ byte[] original = cipher.doFinal(myendicod);
+ String originalString = new String(original, encodingFormat);
+ return originalString;
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+
}
--
Gitblit v1.8.0