Ysm-SDK-python
易收米支付Python SDK,提供支付相关API的Python实现。
安装依赖
pip install -r requirements.txt
或者手动安装:
pip install aiohttp fastapi uvicorn jinja2 python-multipart
文件说明
api.py- 基础API工具类,提供HTTP请求和签名方法pay.py- 发起支付模块query.py- 订单查询模块notify.py- 支付回调处理模块demo.py- 命令行演示脚本web_demo.py- Web服务演示requirements.txt- 依赖包列表
使用示例
发起支付
from pay import create_payment
# 配置信息
appid = '20********' # 支付通道ID
appsecret = 'e605ac7******************4af5164' # AppSecret
# 创建支付
pay_url = create_payment(
appid=appid,
appsecret=appsecret,
order_id="123321123321",
description="快充数据线",
amount=100, # 1元
notify_url="http://example.com/notify",
nopay_url="http://example.com/cancel",
callback_url="http://example.com/success",
pay_type=1 # 微信内支付
)
print(f"支付链接: {pay_url}")
查询订单
from query import query_order
# 配置信息
appid = '20********' # 支付通道ID
# 查询订单
order_info = query_order(
appid=appid,
mch_orderid='202305105056', # 商户订单号
)
print(f"订单信息: {order_info}")
处理支付回调
from flask import Flask, request
from notify import PaymentNotify
app = Flask(__name__)
@app.route('/notify', methods=['POST'])
def payment_notify():
# 配置信息
appid = '20********' # 支付通道ID
appsecret = 'e605ac7******************4af5164' # AppSecret
# 创建通知处理器
notify_handler = PaymentNotify(appid, appsecret)
# 获取请求数据
request_data = request.get_data()
# 处理通知
success, message = notify_handler.process(request_data)
if success:
# 处理成功
return message
else:
# 处理失败
return {"error": message}, 400
if __name__ == '__main__':
app.run(debug=True)
支付类型说明
pay_type=1: 微信内支付pay_type=2: 微信扫码支付pay_type=3: 微信H5支付(非原生)pay_type=11: 支付宝H5支付
演示程序
1. 命令行演示
运行完整的SDK功能演示:
python demo.py
这个演示会展示:
- 创建支付订单
- 查询订单状态
- 处理支付回调
- 不同支付类型说明
2. Web服务演示
启动Web演示服务:
python web_demo.py
然后访问 http://localhost:8000 查看:
- 支付表单页面
- 订单查询界面
- 支付成功/取消页面
- 支付回调处理接口
配置说明
在使用前请修改以下配置:
-
在
demo.py中修改:self.appid = 'your_appid' # 替换为你的AppID self.appsecret = 'your_appsecret' # 替换为你的AppSecret -
在
web_demo.py中修改:APPID = 'your_appid' APPSECRET = 'your_appsecret' NOTIFY_URL = "http://your-domain.com/notify" # 替换为你的回调地址