Files
tuhui.cloud/backend/app/ysm_sdk/tmp

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 查看:

  • 支付表单页面
  • 订单查询界面
  • 支付成功/取消页面
  • 支付回调处理接口

配置说明

在使用前请修改以下配置:

  1. demo.py 中修改:

    self.appid = 'your_appid'  # 替换为你的AppID
    self.appsecret = 'your_appsecret'  # 替换为你的AppSecret
    
  2. web_demo.py 中修改:

    APPID = 'your_appid'
    APPSECRET = 'your_appsecret'
    NOTIFY_URL = "http://your-domain.com/notify"  # 替换为你的回调地址