python如何接入支付宝沙箱环境

最近的项目需要对接支付宝,因为之前没有接触过支付宝支付的功能,折腾了好久才把问题测地解决了,现在把详细的过程贴出来让广大同学少走弯路。
目前,支付宝有两种状态,一种是用于支付的正式环境,也就是平时我们在网上购物后用户支付的环境,另外一种是用于开发的沙箱环境,所以一开始因为要测试,顾接入的是沙箱环境。具体的过程如下文字:
1、打开CMD环境(windows或linux是一样的),在命令行提示符后输入openssl命令,进入ssl环境。
在这里插入图片描述
2、在openssl命令行下输入命令:genrsa -out app_private_key.pem 2048,得到私钥。

在这里插入图片描述
3、再执行命令:rsa -in app_private_key.pem -pubout -out app_public_key.pem,得到公钥并导出公钥。
在这里插入图片描述
4、生成的公私钥在计算机本地,地址在C:\Users\Administrator(我的系统是windows,Linux系统可能不太一样).
5、将生成的私钥导入到项目中去。
6、再把生成的公钥复制到支付宝沙箱环境中的‘自定义秘钥’中的‘秘钥模式’下的‘应用公钥’内,并将其下的’支付宝公钥’复制出来,粘贴到本地,并在收尾加上(-----BEGIN PUBLIC KEY-----和-----END PUBLIC KEY-----),并将此文件保存为txt文件,文件名自取即可。
7、之后就是传参的问题了。因为蚂蚁金服没有提供对应的python SDK和API,顾需要从GitHub上找对应的支付宝的SDK(网址:https://github.com/fzlee/alipay/blob/master/README.zh-hans.md)
8、该文档分为三块内容:一是准备,是要在python中安装(python-alipay-sdk),所以执行命令:pip install python-alipay-sdk --upgrade
9、第二模块是初始化,是用于传递支付宝沙箱环境的APP ID 和保存在本地的公私钥。代码如下:

from alipay import AliPay, DCAliPay, ISVAliPay
from alipay.utils import AliPayConfig

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 ID
    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
    verbose=False,  # 输出调试数据
    config=AliPayConfig(timeout=15)  # 可选,请求超时时间
)

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
)

10、文档的第三模块是接口。提供了很多的功能,比如电脑网页的支付功能,手机APP支付功能。可以根据自己的实际需求来选择对应的代码即可,如截图:
在这里插入图片描述

我的项目是电脑网页的支付功能。顾我选择的是第一项。将电脑网站支付的代码复制下来粘贴到项目中即可。

# 如果你是 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="20161112",#这里是订单编号
    total_amount=0.01,#这里是具体的金额
    subject=subject,#这里是标题
    return_url="https://example.com",
    notify_url="https://example.com/notify" # 可选,不填则使用默认 notify url
)

到此整个后端配置完成了,后面的其实就是要传递订单编号、金额和标题整个三个参数即可。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有图有派

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值