知行编程网知行编程网  2022-10-09 21:00 知行编程网 隐藏边栏  32 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python怎么接入支付宝的相关知识,包括python编写的软件,以及python 二维码这些编程知识,希望对大家有参考作用。

python如何访问支付宝


Python接入支付宝流程:


第一步:

首先,你需要下载一个python sdk。这个sdk在支付宝的开发者文档中是没有的,但是强大的python程序员开发了一套属于python的支付宝支付sdk。

下载方式:pip install python-alipay-sdk ,github的链接为 https://github.com/fzlee/alipay


第二步:

下载sdk后,需要在支付宝上进行一些相关配置。支付宝环境分为两种,一种是官方环境,即程序上线后的环境。

二是沙盒环境,是开发者开发项目的测试环境。

正式环境下,需要创建一个应用,然后支付宝后台审核。通过后,将分配一个appid作为唯一标志。如图所示创建一个应用程序。

python如何访问支付宝

这里我使用的是沙盒环境,不用等支付宝审核,点击进入开发者中心->研发服务->沙盒应用。如图,它会自动给你分配一个appid,你只需要私钥和公钥。

python如何访问支付宝


第三步:

你需要生成自己的服务器私钥和公钥。现在支付宝支持sha256、sha1、

推荐使用sha256。支付宝提供了生成秘钥的方法和步骤(https://docs.open.alipay.com/291/105971/)

打开括号中的链接,查看生成秘钥的详细方法和步骤。公钥和私钥生成后,将公钥上传到支付宝密钥设置中。复制支付宝的公钥到本地,保存自己的公钥和私钥以及支付宝的公钥(这个很重要),一般保存到本地项目的文件中。


第四步:

了解并熟悉支付宝的开发流程。图为客户端通过后台程序与支付宝后台交互的流程图

python如何访问支付宝

1、用户选择使用支付宝付款

2、用户通过APP向商户服务器发起请求,获取签名的订单信息

3.商户服务器返回签名后的订单信息(查询字符串或url),例如:

app_id=201609239&biz_content=%7B%22subject%22%3A%22%5Cu6d4b%5Cu8bd5%5Cu8ba2%5Cu5%22out_trade_no%22%3A%22201702021111%22%2C%22total_amount%22%3A1000%2C%22product_code%22%3A%22FAST_INSTANT_TRADE_PAY%22%7D&charset=utf-8&method=alipay.trade.page.pay&notify_url=http%3A%2F%dus.com%2F&return_url=http%3A%2F%2F47.92.87.172%3A8000%2F&sign_type=RSA2&timestamp=2015+15%3A19%3A15&version=1.0&sign=BSzk6LzwNp

4、商户app调用支付接口

5-8、支付宝服务端接收请求,返回支付结果。

9. 商户APP向商户服务器发起请求,同步支付结果,服务器验证签名,解析支付结果。

10、返回支付结果。

11、商户app展示支付结果。

12、支付宝服务器向商户服务器异步发送支付通知。

13、商户服务器收到支付通知,向支付宝服务器返回响应。


第五步:

python代码如下

# 业务处理: 使用python sdk调用支付宝的支付接口
# 初始化
from alipay import AliPay
alipay = AliPay(
    appid="2016092300574189",
    app_notify_url=None,
    app_private_key_path=r"D:\python源代码\alipay_keys\private_keys",
    alipay_public_key_path=r"D:\python源代码\alipay_keys\public_key",
    sign_type="RSA2",
    debug=True,
)
# 调用接口
# total_pay = order.total_price + order.transit_price
total_pay = 12311
order_string = alipay.api_alipay_trade_page_pay(
    out_trade_no=1231231312313,
    total_amount=str(total_pay),
    subject='测试text%s' % 1,
    return_url=None,
    notify_url=None,
)
# 返回应答
pay_url = "https://openapi.alipaydev.com/gateway.do?" + order_string
print(pay_url)

这段代码实现的功能是生成一个签名的url,就是访问支付宝支付的url

其中初始化部分的参数:appid为支付宝的唯一标志id,

app_notify_url 是支付宝在后台完成支付时,异步通知到商户后台服务器的URL地址。

app_private_key_path为自己生成的私钥,

alipay_public_key_path为支付宝的公钥。sign_type为签名的加密方式,

当debug为真时,支付宝的支付url为非正式环境。如果是在线环境,可以改为false。

调用接口部分参数:out_trade_no为订单号。这是商家后台服务器生成的订单号。

total_amount 为支付金额(必须为字符串类型),subject 为标题,return_url 为支付成功后支付页面跳转到的页面。

notify_url为异步通知的url。


第六步:

运行这段代码会得到一个签名之后的url。

python如何访问支付宝

访问这个url,看到的结果为:

python如何访问支付宝

你可以在手机沙盒环境下下载支付宝,也可以点击右侧的登录账号进行支付。支付账户和密码在沙盒应用程序中提供。


第七步:

登录完成支付

python如何访问支付宝

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享