|
@@ -67,6 +67,33 @@ def get_user_info(code: str):
|
|
|
url = "{}/ebus/yzyapi/cgi-bin/user/getuserinfo?access_token={}&code={}".format(settings.YZY_API_ROOT, access_token, code)
|
|
|
return __post_url__(url, {})
|
|
|
|
|
|
+def generate_deskey(secret):
|
|
|
+ # 使用SHA256哈希然后取前8字节
|
|
|
+ return hashlib.sha256(secret.encode()).digest()[:8]
|
|
|
+
|
|
|
+def generate_signature(appid, secret, curtime):
|
|
|
+ # 拼接字符串
|
|
|
+ sign_str = appid + secret + str(curtime)
|
|
|
+ # 计算SHA256哈希值
|
|
|
+ sha256_hash = hashlib.sha256(sign_str.encode('utf-8')).hexdigest()
|
|
|
+ # 转换为大写
|
|
|
+ signature = sha256_hash.upper()
|
|
|
+ return signature
|
|
|
+
|
|
|
+# 2.开通用户工作台可见及第三方应用获取用户基本信息接口说明V1.3.pdf
|
|
|
+def getuserbycode(code: str):
|
|
|
+ url = f"{settings.YZY_API_ROOT}/ebus/applicationsyn/getuserbycode"
|
|
|
+
|
|
|
+ curtime = get_datetime_str(datetime.now())
|
|
|
+ signature = generate_signature(settings.YZY_AGENTID, settings.YZY_CORPSECRET, curtime)
|
|
|
+ data = {
|
|
|
+ "appid": settings.YZY_AGENTID,
|
|
|
+ "curtime": curtime,
|
|
|
+ "code": code,
|
|
|
+ "signature": signature
|
|
|
+ }
|
|
|
+ return __post_url__(url, data)
|
|
|
+
|
|
|
def send_text_message(users, content: str):
|
|
|
access_token = get_cache_access_token()
|
|
|
url = "{}/ebus/yzyapi/cgi-bin/message/send?access_token={}".format(settings.YZY_API_ROOT, access_token)
|
|
@@ -194,3 +221,34 @@ def add_to_msg_queue(db: Session, data: dict) -> None:
|
|
|
new_msg = YzyMsgQueue(**data, sent_status = 0, create_time = datetime.now())
|
|
|
db.add(new_msg)
|
|
|
db.commit()
|
|
|
+
|
|
|
+# 辅助类
|
|
|
+# 调用JAVA编写的密评接口
|
|
|
+
|
|
|
+def desDecryptValue(appSecret: str, value: str) -> any:
|
|
|
+ data = {}
|
|
|
+ data['appSecret'] = appSecret
|
|
|
+ data['value'] = value
|
|
|
+ headers = {'Content-Type': 'application/json;charset=UTF-8'}
|
|
|
+
|
|
|
+ response = requests.post(url="http://127.0.0.1:8052/yzy" + "/DecryptValue", headers=headers, json=data, timeout=60)
|
|
|
+ if response.status_code == 200:
|
|
|
+ result = response.json()
|
|
|
+ print(result)
|
|
|
+ if result['errcode'] == 0:
|
|
|
+ return result['data']
|
|
|
+ return None
|
|
|
+
|
|
|
+def desEncryptValue(appSecret: str, value: str) -> any:
|
|
|
+ data = {}
|
|
|
+ data['appSecret'] = appSecret
|
|
|
+ data['value'] = value
|
|
|
+ headers = {'Content-Type': 'application/json;charset=UTF-8'}
|
|
|
+
|
|
|
+ response = requests.post(url="http://127.0.0.1:8052/yzy" + "/EncryptValue", headers=headers, json=data, timeout=60)
|
|
|
+ if response.status_code == 200:
|
|
|
+ result = response.json()
|
|
|
+ print(result)
|
|
|
+ if result['errcode'] == 0:
|
|
|
+ return result['data']
|
|
|
+ return None
|