前言:本文是学习网易微专业的《python全栈工程师》 中的《服务器运维开发工程师》专题的课程笔记,欢迎学习交流。同时感谢老师们的精彩传授!
一、课程目标
- 支付宝支付流程
- 支付宝接口
- 商城支付接口
二、详情解读
2.1.支付宝支付流程
2.1.1.支付宝支付通过url 跳转完成
用户支付时是根据订单生成的支付
2.1.2.支付宝支付完成后需要通知商家服务器接口
支付完成后,支付宝通知商家,该订单已经完成支付
2.1.3.支付完成确认
2.1.4.支付宝支付流程
2.2.支付宝支付开发准备
2.2.1.支付宝接入准备
1.申请商家支付宝账号,并且申请商家支付功能
2.支付宝有不同应用场景,可能需要签订不同的协议
2.2.2.支付宝沙箱环境
1.进入支付宝开放平台:https://openhome.alipay.com
2.入驻成为开发者
3.创建相关应用
4.在开发服务部分进入沙箱环境
实操:
用支付宝扫码登录,如果还不是开发者,则注册成为开发者。
在沙箱环境的
说明:
沙箱环境:表示模拟正式的支付流程和环境,只不过数据都是虚拟的。
安装完成后,点击生成密钥,然后复制应用公钥,下一步要用到:
点击上面的保存设置,即可得到下图结果,这里的支付宝公钥程序里要用到:
应用私钥在支付宝生成器里的:
支付宝公钥在沙箱环境里:
然后新建文件夹
将如下的两个文件,
分别重命名为:
然后将这两个文件上传到
2.3.支付接口文档
2.3.1.支付宝代码实现
统一下单支付接口:
https://opendocs.alipay.com/apis/api_1/alipay.trade.page.pay/
支付时会传递参数到支付网关地址中,支付宝会根据订单的状态跳转到相应的接口中:
异步通知接口文档地址:https://opendocs.alipay.com/open/270/105902
1.异步通知在构造请求参数中用
2.该
3.支付宝支付成功之后,支付宝就会在后台对该接口进行调用
2.4.利用支付宝SDK 开发支付功能
2.4.1.支付宝代码实现
1 | pip install alipay-python |
统一下单支付接口:
打开文件
2.5.flask-alipay
安装方法:
1 | pip install flask-alipay |
插件使用方法:
1.配置参数。在
2.在
3.订单创建后,调用
1 2 3 4 5 6 7 8 9 10 11 12 13 | def pay_order(self, order): self.model.out_trade_no = order.order_no self.model.total_amount = order.total_price self.model.subject = order.subject self.model.body = order.subject _request = AlipayTradePagePayRequest(biz_model=self.model) _request.notify_url = self.notify_url _request.return_url = self.return_url # 得到构造的请求,如果http_method是GET,则是一个带完成请求参数的url,如果http_method是POST,则是一段HTML表单片段 _response = self.client.page_execute(_request, http_method="GET") return _response |
打开文件
2.6.回调域名问题
由于支付完成后,支付宝需要对商家网站进行回调,因此测试地址必须可以被公网访问
1.使用云服务器与注册域名
2.使用内网穿透工具,比如花生壳
3.直接使用路由器外网
三、课程小结
- 01 支付宝支付流程。从订单的创建,到支付完成之后的通知网站支付成功,这个流程要掌握。不知道的要多看几遍,或者在图纸上画一画。
- 02 支付宝接口。要知道支付宝接口文档在哪里,我们使用的是哪一个接口,参数的说明等等,要看一遍。
- 03
flask-alipay 。了解接口不是要求从0 开始写接口,这对我们当前有点挑战性,而且在实际工作中都是已经封装好了相应的接口,只需要进行调用即可。关键的是要掌握原理,了解接口之间到底发生了哪些事情,传递了哪些参数,加密的方法,安全是如何保证的。
通过这节课,同学们要掌握如何通过配置让网站实现支付宝的支付功能。需要配置