Files
tuhui/backend/app/ysm_sdk/tmp/README.md
2026-03-08 19:28:32 +08:00

157 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ysm-SDK-python
易收米支付Python SDK提供支付相关API的Python实现。
## 安装依赖
```bash
pip install -r requirements.txt
```
或者手动安装:
```bash
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` - 依赖包列表
## 使用示例
### 发起支付
```python
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}")
```
### 查询订单
```python
from query import query_order
# 配置信息
appid = '20********' # 支付通道ID
# 查询订单
order_info = query_order(
appid=appid,
mch_orderid='202305105056', # 商户订单号
)
print(f"订单信息: {order_info}")
```
### 处理支付回调
```python
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功能演示
```bash
python demo.py
```
这个演示会展示:
- 创建支付订单
- 查询订单状态
- 处理支付回调
- 不同支付类型说明
### 2. Web服务演示
启动Web演示服务
```bash
python web_demo.py
```
然后访问 `http://localhost:8000` 查看:
- 支付表单页面
- 订单查询界面
- 支付成功/取消页面
- 支付回调处理接口
### 配置说明
在使用前请修改以下配置:
1.`demo.py` 中修改:
```python
self.appid = 'your_appid' # 替换为你的AppID
self.appsecret = 'your_appsecret' # 替换为你的AppSecret
```
2. 在 `web_demo.py` 中修改:
```python
APPID = 'your_appid'
APPSECRET = 'your_appsecret'
NOTIFY_URL = "http://your-domain.com/notify" # 替换为你的回调地址
```