「这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战」
支付宝开发详细流程
- 正式环境(需要营业执照等信息)
- 支付宝开放平台-开发文档
- 这里我们选择电脑网站支付
- 使用的话需要有营业执照等,我们这里使用沙箱环境
- 沙箱环境(模拟真实的环境)
2.1 申请开通沙箱环境
- 沙箱环境申请
- 信息填写确定后,就能看到如下界面
- 注册成功之后会获取两个值:
+ APPID:xxxx
+ 支付宝网关
- [openapi.alipaydev.com/gateway.do(…](https://openapi.alipaydev.com/gateway.do%EF%BC%88%E6%B2%99%E7%AE%B1%EF%BC%89)
- [openapi.alipay.com/gateway.do(…](https://openapi.alipay.com/gateway.do%EF%BC%88%E6%AD%A3%E5%BC%8F%EF%BC%89)
2.2 生成密钥
- 密钥用于以后对URL中添加的参数进行加密和校验
2.2.1 下载密钥生成器
2.2.2 生成密钥
- 会生成一对密钥,同时生成两个
txt
文件- 应用公钥
- 应用私钥
- 我们将两个文件放到项目中,方便以后使用
2.2.3 上传应用公钥并获得支付宝公钥
- 点击
保存设置
后就会生成支付宝公钥 - 然后把支付宝公钥也放在项目中,方便以后使用
- 至此,我们共获取到三个密钥:
+ 应用公钥
- 生成支付宝公钥后就没用处了
+ 应用私钥
- 对以后URL中传入的数据进行签名加密用
+ 支付宝公钥(通过应用公钥生成)
- 在页面支付成功后跳转回来时,对支付宝给我们传的值进行校验
- 账户信息和测试APP
- 下载沙箱版支付宝app【仅提供Android版本】
- 然后查看沙箱账号登录
+ 买家信息
+ 卖家信息
注意: 不要使用自己的支付宝账号登录
- SDK & API
一般都会有两个支持
- SDK,现成的Python模块【优先使用】
1
2
3
4 > markdown复制代码1. 安装模块
> 2. 基于模块实现想要的功能
>
>
- API,提供一个URL
1
2
3 > markdown复制代码1. 自己手动对URL进行处理和加密
>
>
4.1 SDK
- 接入文档中都是通过工具实现的,而我们需要通过代码进行实现,点击下载开发工具包
4.2 API
- 支付API
- 要使用支付功能,所以这里选择
统一收单下单并支付页面接口
参数构造
1 | python复制代码# 跳转到这个地址: 【网关?参数】组成 |
如果支付成功之后,服务器宕机,如何处理?
向notify_url
发请求,支付成功,请求更新状态,
服务器宕机,支付宝访问不到,则会在24小时以内:支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
接收到支付宝请求之后,返回的数据不正确,同上。
返回一个success
- 支付宝签名
- 对参数进行处理,处理完之后和网关进行拼接
- 使用生成密钥请求签名
- 自行实现签名
5.1 签名原理
1 | csharp复制代码1. 将参数中 空、文件、字节、sign 剔除 |
5.2 签名实现
1 | python复制代码# pip install pycrypto |
下载也有点麻烦,我这里把下载好的几个文件放在网盘,需要自行下载即可,我这里放的版本有 【py27、py35、py36】,其他版本可自行下载
注意:根据自己的python版本安装,例如: 文件名中的py35代表python3.5
链接:pan.baidu.com/s/1z1kT-Qjd…
提取码:kjnd
1 | python复制代码# 构造字典 |
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯
本文转载自: 掘金