支付宝转账码生成
重要更新
userId 已改为 outUserNo
获取 outUserNo
- 登录 https://b.alipay.com/page/home
- 查看源码搜索
outUserNo - 复制16位数字(以2088开头)
完整示例
alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data={"s": "money","u": "2088712204441975","a": "0.01","m":"备注"}
参数说明
{
"s": "money", // 固定值
"u": "2088xxxxxxxxxx", // outUserNo
"a": "0.01", // 金额(字符串)
"m": "备注" // 可选
}
Python代码
基础版本
import json
import urllib.parse
def generate_alipay_url(out_user_no, amount, memo=""):
biz_data = {
"s": "money",
"u": out_user_no,
"a": str(amount),
"m": memo
}
biz_data_json = json.dumps(biz_data, ensure_ascii=False)
biz_data_encoded = urllib.parse.quote(biz_data_json)
return f"alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data={biz_data_encoded}"
# 使用
url = generate_alipay_url("2088712204441975", "0.01", "测试")
print(url)
生成二维码
import qrcode
def create_qr(url, filename="qr.png"):
qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data(url)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
return filename
# 使用
url = generate_alipay_url("2088712204441975", "0.01", "测试")
qr_file = create_qr(url)
print(f"二维码已保存: {qr_file}")
完整示例
import json
import urllib.parse
import qrcode
def generate_alipay_qr(out_user_no, amount, memo="", filename="alipay.png"):
# 生成URL
biz_data = {"s": "money", "u": out_user_no, "a": str(amount), "m": memo}
biz_data_encoded = urllib.parse.quote(json.dumps(biz_data, ensure_ascii=False))
url = f"alipays://platformapi/startapp?appId=20000123&actionType=scan&biz_data={biz_data_encoded}"
# 生成二维码
qr = qrcode.QRCode(version=1, box_size=10, border=4)
qr.add_data(url)
qr.make(fit=True)
qr.make_image(fill_color="black", back_color="white").save(filename)
return url, filename
# 使用
url, file = generate_alipay_qr("2088712204441975", "0.01", "测试")
print(f"URL: {url}")
print(f"文件: {file}")
安装依赖
pip install qrcode[pil]
注意事项
- outUserNo 格式:16位数字,以2088开头
- 金额必须是字符串格式
- 备注可选,避免特殊字符