下载安装python-alipay-sdk:
pip install python-alipay-sdk –upgrade
参考:https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
1、在支付宝开放平台配置好App应用
https://docs.open.alipay.com/204/105297/
2、初始化
alipay = AliPay(
appid="",
app_notify_url=None, # 默认回调url
app_private_key_string=app_private_key_string,
alipay_public_key_string=alipay_public_key_string, # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,
sign_type="RSA2" # RSA 或者 RSA2
debug=False # 默认False
)
3、生成order_string
# App支付,将order_string返回给app即可
order_string = alipay.api_alipay_trade_app_pay(
out_trade_no="20161112",
total_amount=0.01,
subject=subject,
notify_url="https://example.com/notify" # 可选, 不填则使用默认notify url
)
4、通知验证
receive_data = dict(web.input())
signature = receive_data.pop("sign")
if receive_data["sign_type"]:
signatureType = receive_data.pop("sign_type")
# 检查签名
success = alipay.verify(receive_data, signature)
if success and receive_data["trade_status"] in ("TRADE_SUCCESS", "TRADE_FINISHED"):
_LOG.info('verify success')
问题1:
python-alipay-sdk插件报“RSA key format is not supported”错误
解决方法:
sign_type=”RSA” 改成sign_type=”RSA2”
问题2:
订单参数异常,请重新下单后再发起付款(ALIN42273)
解决方法:
ALIN42273-自查方案:
https://openclub.alipay.com/read.php?tid=4699&fid=62&uid=1732
一般是因为传的参数格式不正确,或者忘记传某个必须要传的参数
问题3:
系统繁忙 请稍后再试(ALIN10146)
ALIN10146-自查方案
https://openclub.alipay.com/read.php?tid=6918&fid=60
解决方案:
我的问题是秘钥匹配问题,建议参考这个帖子验证公钥的正确性方法如下:
https://openclub.alipay.com/read.php?tid=1486&fid=46
另外有一个重要的RSA密钥生成工具在开发的过程中非常有用,
https://docs.open.alipay.com/291/105971