【世界报资讯】Python中使用支付宝支付
(资料图片仅供参考)
准备# 支付宝文档 https://opendocs.alipay.com/open/270/105898?pathHash=b3b2b667# 在沙箱环境下实名认证 https://openhome.alipay.com/platform/appDaily.htm?tab=info# 完成RSA密钥生成# 1 下载密钥工具# 2 生成密钥 https://opendocs.alipay.com/common/02kipk?pathHash=0d20b438# 在沙箱应用中的开发信息中自定义密钥# Python支付宝开源框架:https://github.com/fzlee/alipay pip install python-alipay-sdk --upgrade# 如果抛ssl相关错误,代表缺失该包 pip install pyopenssl# 7、公钥私钥设置"""# alipay_public_key.pem-----BEGIN PUBLIC KEY-----支付宝公钥-----END PUBLIC KEY-----# app_private_key.pem-----BEGIN RSA PRIVATE KEY-----用户私钥-----END RSA PRIVATE KEY-----"""
初始化from alipay import AliPay, DCAliPay, ISVAliPayfrom alipay.utils import AliPayConfig# 支付宝网页下载的证书不能直接被使用,需要加上头尾# 你可以在此处找到例子: tests/certs/ali/ali_private_key.pemapp_private_key_string = open("私钥文件的路径").read()alipay_public_key_string = open("公钥文件的路径").read()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 verbose=False, # 输出调试数据 config=AliPayConfig(timeout=15) # 可选,请求超时时间)# 如果你是 Python2 用户(考虑考虑升级到 Python3 吧),请确保非 ascii 的字符串为 utf8 编码:# subject = u"测试订单".encode("utf8")# 如果你是 Python3 的用户,使用默认的字符串即可subject = "旺仔牛奶"# 电脑网站支付,需要跳转到:https://openapi.alipay.com/gateway.do? + order_stringorder_string = alipay.api_alipay_trade_page_pay( out_trade_no="20230704171400", total_amount=888, subject=subject, return_url="https://example.com", notify_url="https://example.com/notify" # 可选,不填则使用默认 notify url)print("https//openapi.alipay.com/gateway.do?" + order_string)app_private_key_string = open("yourPrivateKey.key").read()app_public_key_cert_string = open("yourPrivateCert.crt").read()alipay_public_key_cert_string = open("alipayPublicCert.crt").read()alipay_root_cert_string = open("alipayRootCert.crt").read()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二次封装# 新建一个包alipay_common pem # 公钥私钥文件夹 alipay_public_key.pem # 支付宝公钥文件 app_private_key.pem # 应用私钥文件 __init__.py pay.py # 支付文件 settings.py # 应用配置# alipay_public_key.pem -----BEGIN PUBLIC KEY----- 支付宝公钥 -----END PUBLIC KEY-----# app_private_key.pem -----BEGIN RSA PRIVATE KEY----- 用户私钥 -----END RSA PRIVATE KEY-----# __init__.py from .pay import gateway, alipay# settings.py import os # 应用私钥 APP_PRIVATE_KEY_STRING = open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "pem", "app_private_key.pem")).read() # 支付宝公钥 ALIPAY_PUBLIC_KEY_STRING = open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "pem", "alipay_public_key.pem")).read() # 应用ID APP_ID = "9021000122699958" # 加密方式 SIGN = "RSA2" # 是否是支付宝测试环境(沙箱环境),如果采用真是支付宝环境,配置False DEBUG = True # 支付网关 GATEWAY = "https://openapi-sandbox.dl.alipaydev.com/gateway.do?" if DEBUG else "https://openapi.alipay.com/gateway.do?"# pay.py from alipay import AliPay from alipay.utils import AliPayConfig from . import settings alipay = AliPay( appid=settings.APP_ID, # 支付宝页面上复制,沙箱环境---》公司有人会给你 app_notify_url=None, # 默认回调 url app_private_key_string=settings.APP_PRIVATE_KEY_STRING, # 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥, alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY_STRING, sign_type=settings.SIGN, # RSA 或者 RSA2 debug=settings.DEBUG, # 默认 False verbose=False, # 输出调试数据 config=AliPayConfig(timeout=15) # 可选,请求超时时间 ) # 支付网关 gateway = settings.GATEWAY
下一篇:最后一页
X 关闭
-
【世界报资讯】Python中使用支付宝支付
准备```python 支付宝文档https: opendocs alipay com open 270 1058
-
山西汾阳:8名未成年人殴打侮辱女孩,两人被刑拘
汾阳发布山西汾阳市通报一起未成年人欺凌案7月4日,汾阳市对外公布了一
-
每日热门:徐州探索解决耕地细碎化问题 小田变大田农户乐增收
“从这到北边那道田埂,这一大块田共9亩多,都是我们家的地!”趁着天
-
山姆泡面桶被炒至1999元,深圳市监局回应 天天快讯
7月4日,深圳市市场监督管理局通过其公众号回应“山姆泡面桶被炒至1999
-
新手包粽子的手法步骤图_看完这篇你学会了吗
1、做粽子前的准备:选择粽子叶。叶子可以是常用的竹叶、竹叶和芦苇叶