支付宝转账码生成

重要更新

userId 已改为 outUserNo

获取 outUserNo

  1. 登录 https://b.alipay.com/page/home
  2. 查看源码搜索 outUserNo
  3. 复制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开头
  • 金额必须是字符串格式
  • 备注可选,避免特殊字符