Python SDK for GMWalletApp/epusdt GMPay and EPay integrations
Project description
Epusdt Python SDK
Python SDK for GMWalletApp/epusdt。
面向 epusdt 商户接入场景,当前聚焦公开支付接口,不包含后台管理端接口封装。
支持能力
- GMPay 创建订单
- 支付配置查询
- 收银台订单查询
- 支付状态查询
- 切换网络 / 币种
- 手动提交交易哈希补单
- EPay
submit.php兼容接入 - GMPay / EPay 回调验签
- 订单二维码生成
安装
安装:
pip install epusdt
安装二维码依赖:
pip install epusdt[qrcode]
升级:
pip install --upgrade epusdt
本地开发:
pip install -e .
快速开始
from epusdt import EpusdtClient
client = EpusdtClient(
base_url="https://pay.example.com",
pid="1000",
secret_key="epusdt_secret_key",
)
order = client.create_order(
order_id="ORD202606240001",
amount=100,
currency="cny",
token="usdt",
network="tron",
notify_url="https://merchant.example.com/notify",
redirect_url="https://merchant.example.com/return",
name="VIP",
)
print(order.trade_id)
print(order.payment_url)
print(order.actual_amount)
常见场景
查询支付配置
config = client.get_public_config()
for asset in config.supported_assets:
print(asset.network, asset.tokens)
创建占位订单,再让用户选择网络
placeholder = client.create_order(
order_id="ORD202606240002",
amount=88.5,
currency="cny",
notify_url="https://merchant.example.com/notify",
)
selected = client.switch_network(
trade_id=placeholder.trade_id,
token="USDT",
network="solana",
)
print(selected.trade_id)
print(selected.receive_address)
查询订单与状态
checkout = client.get_checkout("20260523171652123456001")
status = client.check_status("20260523171652123456001")
print(checkout.payment_type)
print(status.status)
EPay 兼容接入
构造跳转地址:
url = client.build_epay_redirect_url(
out_trade_no="ORD202606240003",
money=100,
notify_url="https://merchant.example.com/notify",
return_url="https://merchant.example.com/return",
name="VIP",
)
print(url)
直接请求网关并拿到收银台地址:
redirect = client.create_epay_order(
out_trade_no="ORD202606240003",
money=100,
notify_url="https://merchant.example.com/notify",
return_url="https://merchant.example.com/return",
)
print(redirect.checkout_url)
手动补单
result = client.submit_tx_hash(
trade_id="20260523171652123456001",
block_transaction_id="0xabc123",
)
print(result.status)
print(result.block_transaction_id)
回调验签
GMPay JSON 回调:
payload = {
"pid": "1000",
"trade_id": "20260523171652123456001",
"order_id": "ORD202605230001",
"amount": 100,
"actual_amount": 14.29,
"receive_address": "TTestTronAddress001",
"token": "USDT",
"block_transaction_id": "0xabc123",
"status": 2,
"signature": "a1b2c3",
}
callback = client.parse_gmpay_callback(payload)
print(callback.trade_id)
EPay GET 回调:
params = {
"pid": "1000",
"trade_no": "20260523171652123456001",
"out_trade_no": "ORD202605230001",
"type": "alipay",
"name": "VIP",
"money": "100.0000",
"trade_status": "TRADE_SUCCESS",
"sign": "a1b2c3",
"sign_type": "MD5",
}
callback = client.parse_epay_callback(params)
print(callback.out_trade_no)
生成二维码
order = client.get_checkout("20260523171652123456001")
image = order.generate_qrcode()
image.save("epusdt-payment.png")
API 一览
create_order(...)get_public_config()get_checkout(trade_id)check_status(trade_id)switch_network(trade_id, token, network)submit_tx_hash(trade_id, block_transaction_id)build_epay_params(...)build_epay_redirect_url(...)create_epay_order(...)verify_gmpay_callback(payload)verify_epay_callback(params)parse_gmpay_callback(payload)parse_epay_callback(params)
适用范围
当前 SDK 面向 GMWalletApp/epusdt 的商户公开支付接口。
如果你的目标是:
- 商户下单
- 收银台支付
- EPay 兼容接入
- 回调验签
这个仓库就是当前应该使用的 Python SDK。
验证情况
- 单元测试通过
- 构建通过
- 干净环境安装通过
- 安装后导入通过
- 二维码烟测通过
- 已发布到 PyPI
- 已对真实线上
epusdt网关做过联调
开发
python -m venv .venv
. .venv/bin/activate
pip install -U pip build pytest
pip install -e .
pytest
python -m build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
epusdt-0.2.2.tar.gz
(16.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
epusdt-0.2.2-py3-none-any.whl
(13.5 kB
view details)
File details
Details for the file epusdt-0.2.2.tar.gz.
File metadata
- Download URL: epusdt-0.2.2.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
711153c928bcb582238c0eda4e16c1609e2b419aeb4a66336a0104e7c9026e58
|
|
| MD5 |
91056542f1b2dde4e23d83e55a32e204
|
|
| BLAKE2b-256 |
3995b931a5d938629a160a2d065e12e799cd32c2186869248f9b10ec78f7c38d
|
File details
Details for the file epusdt-0.2.2-py3-none-any.whl.
File metadata
- Download URL: epusdt-0.2.2-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b62408700c124714da370d5413bd5dff00c3b6f903f3005fe859f11448adf65a
|
|
| MD5 |
b11561ad0e496e55097aa17df48cc780
|
|
| BLAKE2b-256 |
6c42bb5685a06519ab5ceac9a92934273c0586c4239a8914a11d053b4ee14281
|