支付宝支付
程序员文章站
2022-04-11 13:48:15
...
1.1 秘钥相关
-
安装
# 安装python-alipay-sdk pip install python-alipay-sdk --upgrade
-
生成**文件
openssl OpenSSL> genrsa -out app_private_key.pem 2048 # 私钥 OpenSSL> rsa -in app_private_key.pem -pubout -out app_public_key.pem # 导出公钥 OpenSSL> exit
-
使用阿里工具生成公钥
- https://docs.open.alipay.com/291/105971(下载支付宝生成秘钥的软件)
- 在本地计算机生成公钥和私钥
上传公钥
-
https://openhome.alipay.com/platform/appDaily.htm?tab=info
-
上传公钥后就可以查看支付宝公钥了
-
初始化
from alipay import AliPay, DCAliPay, ISVAliPay app_private_key_string = open("/path/to/your/private/key.pem").read() alipay_public_key_string = open("/path/to/alipay/public/key.pem").read() app_private_key_string == """ -----BEGIN RSA PRIVATE KEY----- base64 encoded content -----END RSA PRIVATE KEY----- """ alipay_public_key_string == """ -----BEGIN PUBLIC KEY----- base64 encoded content -----END PUBLIC KEY----- """ 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="RSA" # RSA 或者 RSA2 debug=False # 默认False ) dc_alipay = DCAliPay( appid="appid", app_notify_url="http://example.com/app_notify_url", app_private_key_string=app_private_key_string, app_public_key_cert_string=app_public_key_cert_string, alipay_public_key_cert_string=alipay_public_key_cert_string, alipay_root_cert_string=alipay_root_cert_string ) # 如果您没有听说过ISV, 那么以下部分不用看了 # app_auth_code或app_auth_token二者需要填入一个 isv_alipay = ISVAliPay( appid="", app_notify_url=None, # 默认回调url app_private_key_srting="", # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥, alipay_public_key_string="", sign_type="RSA" # RSA or RSA2 debug=False # False by default, app_auth_code=None, app_auth_token=None )
-
电脑网站支付 alipay.trade.page.pay
# 如果你是Python 2用户(考虑考虑升级到Python 3吧),请确保非ascii的字符串为utf8编码: subject = u"测试订单".encode("utf8") # 如果你是 Python 3的用户,使用默认的字符串即可 subject = "测试订单" # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string order_string = alipay.api_alipay_trade_page_pay( out_trade_no="20161112", total_amount=0.01, subject=subject, return_url="https://example.com", notify_url="https://example.com/notify" # 可选, 不填则使用默认notify url )
上一篇: FreeBSD9.0开启SSH远程登录
下一篇: PHP实现的Mysql读写分离