一 流程
1 支付宝支付: -商户号:营业执照(登录的沙箱环境的商家) -客户:我们客户 2 生成公钥和私钥:公钥配置到支付宝网站上----》支付宝公钥 -担心私钥不安全(不要把公钥私钥直接放在代码中,而是放在服务器上) -支付宝支付(官方没有sdk,只提供了api),我们用了第三方,担心有问题 3 支付流程 -用户在前端提交支付---》后端要生成订单(未支付)---》生成支付宝付款链接---》返回前端---》get请求支付链接---》支付宝付款页面(扫描付款)---》支付宝收到钱---》get回调到我们网站(展示用户付款成功)-----》post回调(验签)修改订单状态 -用户刚打开支付链接,你服务挂了,用户付款成功了 -get回调也回不来了 -支付宝的post回到,你也收不到(24小时以后,支付宝会推送8次) -25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)
二 文档链接
1 支付宝API六大接口
https://docs.open.alipay.com/270/105900/
2 支付宝工作流程
https://docs.open.alipay.com/270/105898/
3 支付宝8次异步通知机制
https://docs.open.alipay.com/270/105902/
4 沙箱环境下实名认证
https://openhome.alipay.com/platform/appDaily.htm?tab=info
5 电脑网站支付API
https://docs.open.alipay.com/270/105900/
6 完成RSA密钥生成
https://docs.open.alipay.com/291/105971
7 在开发中心的沙箱应用下设置应用公钥
填入生成的公钥文件中的内容
8 Python支付宝开源框架
https://github.com/fzlee/alipay
pip install python-alipay-sdk --upgrade
9 公钥私钥设置
""" # alipay_public_key.pem -----BEGIN PUBLIC KEY----- 支付宝公钥 -----END PUBLIC KEY----- # app_private_key.pem -----BEGIN RSA PRIVATE KEY----- 用户私钥 -----END RSA PRIVATE KEY----- """
10 支付宝链接
开发:https://openapi.alipay.com/gateway.do
沙箱:https://openapi.alipaydev.com/gateway.do
三. 支付宝接入入门
1 流程
''' # 支付宝开放平台 1. 服务范围(自研开发服务) -> 实名认证 2. 控制台 -> 我的应用 -> 创建应用 -> 网页&移动应用 -> 支付接入 -> 应用名称 -> 应用图标 -> 1) 移动应用 -> 应用平台 -> Bundle ID ... 2) 网页应用 (不成功. 需要使用营业执照) -> 网址url -> 简介 注意: 先选择功能再审核 能力列表:添加能力 -> 支付能力 -> 电脑网站支付 开发设置: 加签管理 -> 公钥 - 支付宝网关 应用网关 授权回调地址 3. 文档 -> 网页 & 移动应用 接口文档能力列表 1) 开放能力: 支付能力 -> 电脑网站支付 2) 产品介绍: 注意: 会跳到支付宝的页面, 支付宝会有一个get页面回调, post数据返回后端回调 费率: 0.6% 3) 快速接入: SDK快速接入: python没有, 只能使用API开发 支付流程: 下单 -> 商户系统 -> 支付宝 -> 回调(get显示订单结果, post修改订单状态) 4) 支付API: 公共请求参数 请求参数 订单号 out_trade_no 总金额 total_amount 订单标题 subjet 公共响应参数 支付宝交易号 trade_no 我们的订单号 out_trade_no 5) GitHub开源SDK pip install python-alipay-sdk # 支付宝沙箱环境 1. 沙箱环境地址: https://openhome.alipay.com/platform/appDaily.htm 2. 沙箱应用: APPID 支付宝网关: 地址中带dev表示沙箱环境, 不带表示正式环境 加密方式: 使用支付宝提供的密钥生成(支付宝开放平台组助手). 之前是xx.jar包, 现在变成xx.exe软件. 需要生成公钥和私钥 将自己的公钥配置在支付宝中, 支付宝会生成一个支付宝的公钥. 3. 项目中使用: 注释 .read这里是操作文件的 app_private_key_string 配置自己的私钥 alipay_public_key_string 配置支付宝的公钥 注意: 不能有空格 AliPay类中的参数配置: APPID配置 沙箱环境的APPID sign_type 配置自己的 RSA2 debug=False测试环境, True正式环境 alipay.api_alipay_trade_page_pay中的参数配置: out_trade_no 配置自己的商品订单号 total_amount 总金额 subject 订单标题 return_url 回调地址 (注意: 需要使用公网地址) notify_url 回调地址 支付宝网关 + order_string => 生成连接地址 提示: 生成连接地址打开会出现钓鱼网站异常 4. 解决提示钓鱼问题: 浏览器里面有多个窗口 沙箱环境存在的问题, 如果出现问题, 开无痕窗口即可, 付完之后会回调到之前配置的return_url中配置的网页 支付宝沙箱环境充值: 控制台 -> 沙箱账号 -> 账户余额 # 支付宝公私密钥生成, sdk使用 支付宝开放平台组助手使用: 生成公私钥 支付宝开放平台下载:https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB 密钥长度: RSA2 密钥格式: PKCS1 生成即可 GitHub开源SDK: 支付宝开源框架地址: https://github.com/fzlee/alipay pip install python-alipay-sdk # 拓展: xx.apk 如果apk使用QQ 或者 微信传送, 它会改名, 再后面加个.1 -> xx.apk.1. 目的就是防止恶意软件. 如果你需要安装, 只需要将后缀名修改过来即可 '''