凯发真人娱乐

python中使用支付宝支付 -凯发真人娱乐

2023-08-17,,

# 支付宝文档
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, isvalipay
from alipay.utils import alipayconfig # 支付宝网页下载的证书不能直接被使用,需要加上头尾
# 你可以在此处找到例子: tests/certs/ali/ali_private_key.pem
app_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_string
order_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_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

python中使用支付宝支付的相关教程结束。

网站地图