chore: initialize tuhui repository

This commit is contained in:
Codex
2026-03-08 19:28:32 +08:00
commit ee10c46aae
189 changed files with 17754 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import hashlib
import aiohttp
class YsmPayApi:
"""易收米支付API工具类"""
@staticmethod
async def http_post(url, data):
"""
发送异步HTTP POST请求
Args:
url: 请求地址
data: 请求数据JSON字符串
Returns:
str: 响应内容
"""
headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
'User-Agent': '*/*',
'Authorization': 'WECHATPAY2-SHA256-RSA2048 '
}
try:
async with aiohttp.ClientSession() as session:
async with session.post(url, data=data, headers=headers, ssl=False, timeout=30) as response:
return await response.text()
except Exception as e:
print(f"Error: {str(e)}")
return None
@staticmethod
def hash_sign(data, secret):
"""
生成签名
Args:
data: 要签名的数据字典
secret: 密钥
Returns:
str: 签名字符串
"""
# 按键名升序排序
sorted_data = dict(sorted(data.items()))
# 构造签名字符串
sign_str = ""
for key, value in sorted_data.items():
# 跳过hash字段和空值
if key == 'hash' or value is None or value == '':
continue
# 添加分隔符
if sign_str:
sign_str += '&'
# 拼接键值对
sign_str += f"{key}={value}"
# 添加密钥并计算SHA256哈希
sign_str += secret
return hashlib.sha256(sign_str.encode('utf-8')).hexdigest()