支付接口教程,详解支付宝接口(二)

简介: 支付宝的接口向来集成过程都让人觉得比较舒服,只有APP支付相对复杂,但也只是配置上复杂一些,只要清楚原理相信也不是什么难事。下面是以前介绍双钥加密原理的传送门:支付接口教程特别篇,公钥与私钥,双钥加密和数字签名在这篇文章的引导下,我们来看一种真实的支付接口加密情景。

支付宝的接口向来集成过程都让人觉得比较舒服,只有APP支付相对复杂,但也只是配置上复杂一些,只要清楚原理相信也不是什么难事。下面是以前介绍双钥加密原理的传送门:
支付接口教程特别篇,公钥与私钥,双钥加密和数字签名
在这篇文章的引导下,我们来看一种真实的支付接口加密情景。
支付宝APP支付
为了确定商户和支付宝双方的身份数据的安全,双方都会进行校验,也就是同时存在两套公私钥,支付宝一套,商家一套。画个图就是这样子的:

img_f66d0f9519f73bd49cb9c4ea26cb4bd1.jpe
支付接口教程,详解支付宝接口(二)

这个过程中有两个关键点:

  • 支付宝用商家公钥解密,确认商家身份和发起支付数据的安全
  • 商家用支付宝公钥解密,确认支付宝身份和支付成功数据的安全

由此,在理论上可以推出,我们在配置阶段需要做的工作有以下几点:

  1. 利用工具生成自己(商家)的公钥和私钥
  2. 将生成的公钥告诉支付宝
  3. 下载支付宝提供的公钥

让我开始具体的流程。

接口申请

接口申请的地址为蚂蚁金服开放平台,在此之前需要成为入驻商家(这一步得客户去做)。
然后我们在开放平台创建一个应用

img_6e592fc222277dbe5d0681bc4a3cb0a7.jpe
支付接口教程,详解支付宝接口(二)

创建完之后我们查看应用详情, 添加应用功能
img_fd7c17828cbfe71049727b3741d3136e.jpe
支付接口教程,详解支付宝接口(二)

在靠下的位置找到APP支付,根据提示一步步完成 签约
img_61b6a6ddaa3c366be183cfb3596e6404.jpe
支付接口教程,详解支付宝接口(二)

注意:签约之后你会获得一个partner_id,也就是收款账户id

接口配置

首先我们得去准备商家的公钥和私钥,这个是需要自己生成的:
我们下载官方提供的生成工具,双击打开:

img_6f698b2869f301640d6cc77f834bc201.jpe
支付接口教程,详解支付宝接口(二)

秘钥格式和秘钥长度按照上图选择即可,点击生成之后可以看到工具提示秘钥保存的路径。
注意:通常情况下Mac用户是无法打开工具的,需要去 设置-》安全与隐私中设置允许打开所有开发者的应用。

先把我们的生成的公钥告诉支付宝,下面这张图是重点:

img_00f5fb47a98059b58a143763967f4f1f.jpe
支付接口教程,详解支付宝接口(二)
注意:这个页面的入口请注意右上角的箭头,
需要把鼠标放到右上角小头像那里,
然后点击弹出框中的账号管理。

点击左侧开放平台秘钥,这里顺手先把APPID记录下来。
之后,点击RSA2(SHA256)后面的查看应用公钥,在这里把刚才生成的商家公钥填进去。
最后,点击查看支付宝公钥,在这里把支付宝公钥记录下来。
最最后,再顺手把授权回调地址配置一下,也就是支付宝异步通知的地址。

接口集成

在这步之前,请确保你已经正确的完成下面几件事:

  1. 获取APPID
  2. 准备好商户的私钥
  3. 准备好支付宝公钥
  4. 已经上传了商户公钥到支付宝
  5. 已经配置好了授权回调地址
  6. 你已经签约完成并且准备好了partner_id(也称seller_id)

集成及调试步骤如下:

  1. 构造支付参数
  2. 使用商户私钥对参数进行签名
  3. 把签名和签名方式附在支付参数后面,通过接口传递给APP
  4. (抱歉,我是服务端视角,并不知道APP那边的故事)
  5. 接收支付宝异步回调并使用支付宝公钥进行验证

和微信APP支付一样,支付宝APP接口也并不会提示明确的错误,我们只能做的过程中加倍认真,然后多阅读文档。

注意:千万不要去检查签名和验证签名的过程是否正确,
绝大部分情况出错都是参数和配置的错

最后

支付宝APP的集成代码,和我们之前总结过的支付接口通用模式是符合的,感觉距离实现通用支付类又近了一步。


以上内容属于作者原创,特此声明,如需转载,请留言取得同意

目录
相关文章
|
小程序 算法 API
小程序微信支付
微信小程序支付是一种常见的支付方式,实现起来相对较为复杂。在实现微信小程序支付功能时,需要认真阅读微信支付开发文档,严格遵守微信支付规范,确保支付过程的安全性和可靠性。希望这篇分享能够帮助开发者了解微信小程序支付相关的技术和注意事项,为开发微信小程序支付功能提供帮助。
183 0
|
前端开发
基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付
基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付
608 0
基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付
|
XML JSON JavaScript
【微信支付】精选干货带你使用微信公众号调起微信支付
最近搞了个微信公众号拉起微信支付的功能项目,看了微信官方文档之后,我从不懂变成了迷糊,又看了几遍之后,发现我从迷糊变成了懵逼状态。
543 0
【微信支付】精选干货带你使用微信公众号调起微信支付
|
移动开发 小程序 Java
【微信公众号】微信 jsapi 支付大概流程
jsapi 支付可运用于微信小程序和 h5 jsapi 支付不会弹出二维码(这点与 native 支付不同) jsapi 支付运用于移动端 native 支付运用于 PC 端
721 0
【微信公众号】微信 jsapi 支付大概流程
|
开发工具
微信支付 & 退款 - 快速入门(第三方SDK)(一)
微信支付 & 退款 - 快速入门(第三方SDK)(一)
1312 0
微信支付 & 退款 - 快速入门(第三方SDK)(一)
|
前端开发 开发工具 数据库
微信支付 & 退款 - 快速入门(第三方SDK)(二)
微信支付 & 退款 - 快速入门(第三方SDK)(二)
310 0
微信支付 & 退款 - 快速入门(第三方SDK)(二)
|
JavaScript 算法 NoSQL
微信公众平台开发(四)——微信支付
公众号中的微信支付需要通过JS来实现。微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
|
JSON Java 数据格式
网站调用支付宝进行支付-Java后台调用支付宝支付
网站调用支付宝进行支付-Java后台调用支付宝支付 最近公司一个产品用到了打赏支付,其中一个是支付宝,记录一下java后台调用支付宝的过程付代码。本文讲的是使用沙箱环境(支付宝提供的一种开发专用模式,不要实际支付,可以走通整个流程)。
1488 0