Python接入支付宝流程:
第一步:
首先,你需要下载一个python sdk。这个sdk在支付宝的开发者文档中是没有的,但是强大的python程序员开发了一套属于python的支付宝支付sdk。
下载方式:pip install python-alipay-sdk ,github的链接为 https://github.com/fzlee/alipay
第二步:
下载sdk后,需要在支付宝上进行一些相关配置。支付宝环境分为两种,一种是官方环境,即程序上线后的环境。
二是沙盒环境,是开发者开发项目的测试环境。
正式环境下,需要创建一个应用,然后支付宝后台审核。通过后,将分配一个appid作为唯一标志。如图所示创建一个应用程序。
这里我使用的是沙盒环境,不用等支付宝审核,点击进入开发者中心->研发服务->沙盒应用。如图,它会自动给你分配一个appid,你只需要私钥和公钥。
第三步:
你需要生成自己的服务器私钥和公钥。现在支付宝支持sha256、sha1、
推荐使用sha256。支付宝提供了生成秘钥的方法和步骤(https://docs.open.alipay.com/291/105971/)
打开括号中的链接,查看生成秘钥的详细方法和步骤。公钥和私钥生成后,将公钥上传到支付宝密钥设置中。复制支付宝的公钥到本地,保存自己的公钥和私钥以及支付宝的公钥(这个很重要),一般保存到本地项目的文件中。
第四步:
了解并熟悉支付宝的开发流程。图为客户端通过后台程序与支付宝后台交互的流程图
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¬ify_url=http%3A%2F%dus.com%2F&return_url=http%3A%2F%2F47.92.87.172%3A8000%2F&sign_type=RSA2×tamp=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。
访问这个url,看到的结果为:
你可以在手机沙盒环境下下载支付宝,也可以点击右侧的登录账号进行支付。支付账户和密码在沙盒应用程序中提供。
第七步:
登录完成支付
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Python 中的 __slots__ 限制属性01/04
- ♥ python生成器函数的特点12/04
- ♥ python raise有什么用11/08
- ♥ 如何干净地删除python12/24
- ♥ python有哪些类型的slice09/16
- ♥ 如何区分python返回函数和返回值?01/06
内容反馈