Spring Boot集成支付宝(最新版SDK)—— H5/网页支付

目录

获取源码—GitHub仓库地址

闲言碎语

一些重要的网址或文档

发起支付的业务流程图

沙箱环境简介&基础开发配置

创建Spring Boot项目

编写支付页面和回调页面

搭建内网穿透

配置Spring Boot项目&初始化支付宝SDK

 编写下单支付接口

 支付测试

下单支付的定制化参数

支付完成的回调

总结


获取源码—GitHub仓库地址

https://github.com/QiuFengYanMeng/alipay-demo

闲言碎语

最近有朋友咨询第三方支付相关的开发,心血来潮想疾书一番。

正好支付宝有提供沙箱环境,我们个人开发者也可以进行开发、测试,不需要你有企业资质,降低了学习门槛。支付宝的Java SDK换成了较新的版本,我个人觉得新版本的SDK和旧版本相比很简洁,值得更换

但是现在网上大量的教程,普遍都是老版本SDK,这是因为新版本才刚出来没多久。所以笔者也想趁这个时机,写下此文,希望后来者集成支付宝的时候能少走弯路。

一些重要的网址或文档

1、支付宝支付官网:支付宝 知托付!

2、支付宝开放平台-文档中心:创建应用 | 网页&移动应用

3、natapp内网穿透工具官网:NATAPP-内网穿透 基于ngrok的国内高速内网映射工具

发起支付的业务流程图

图片来自支付宝开放平台。

上面的流程图,已经大致描述了发起支付的过程,这里笔者用自己的语言,详细地转化一下:

  • 下单。这里的下单,在项目中往往表现为用户确认了订单、然后选择支付方式、点击立即支付,即当用户点击“立即支付”时才产生的动作。 这一步要发送一个请求到我们的服务器,假如说系统中立即支付的API路径是/pay,参数一般就是订单包含的订单项,如商品id、购买数量、优惠券id等。
  • 服务器端处理用户的下单请求。在这一步,是业务比较多的一步,也是关键步骤。我们根据客户端传来的商品id、数量、优惠券等参数,计算出每一个商品的单价、订单的总金额等(金额是不应该由客户端直接传的,应该由服务器端计算,更安全)。再生成一个订单号。然后调用一个接口,把这些参数(如商品名称、支付金额、订单号等)打包传给支付宝,也就是对应上图中的1.1。
  • 依然是处理用户的下单请求,只是我嫌段落太长,换一段。在图中的1.1,我们调用了支付宝的接口。其实图中还少了一步1.2,那就是支付宝会返回一段html文档,就是大家经常看到的带二维码的PC端支付页面。请注意,到这一步,对客户端来说依然是在访问/pay接口,因为我们还没有对请求作出响应,只是一直在和支付宝交互罢了。所以,我们把支付宝返回的html文档作为响应信息,返回给客户端,客户端直接加载这一段html文档,用户就看到了一个支付页面。
  • 到了这里,对应上图中的2、3、4、5步,和我们的服务器就没关系了,完全是用户在进行支付的过程。
  • 到了第6步,用户支付完成,支付宝会跳转到一个我们指定的网页,这个网页一般是我们自定义的页面,比如在网页上显示“您已成功购买xxx商品,感谢您的支持”等。注意,此处的returnUrl只是跳转到我们自定义的友好页面,告诉用户支付成功了,只做展示用途,并非真正的支付回调。
  • 到了第7步,支付宝会调用我们指定的回调API接口,将一些参数传给我们,如交易流水号、订单号,我们可以根据这些信息查询交易是否真的成功了(第8步),从而执行后续的业务,比如将订单状态变为已支付、给用户增加积分、扣减优惠券……等。

沙箱环境简介&基础开发配置

支付宝有一个供开发者测试使用的沙箱环境,会提供一个沙箱版的支付宝app、一个商家账户、一个买家账户。有了这个,可以让我们跳过商家入驻、企业资质审核等过程,开箱即用,降低了学习成本。

现在,让我们简单的配置沙箱环境。

1、进入到支付宝支付官网,点击“我是开发者”,在新的页面右上角,用你自己的支付宝扫码登录,再点击开发服务中的研发服务

此时就到了沙箱应用的控制台,会为你分配一个APPID:

2、出于安全性的考虑,我们需要生成一份公钥和私钥,公钥提供给支付宝,支付宝对数据进行加密;私钥用于解析支付宝传来的加密数据,由我们自行保管。支付宝提供了公钥和私钥的生成工具,在文档中心点击“开发工具”

然后在这个地方根据你的系统下载工具:

我们打开下载好的工具,在以下地方点击“生成密钥”:

把私钥和公钥保存好。

3、回到沙箱应用控制台,点击这个地方设置公钥(注意不是公钥证书哦,我们用的不是证书的方式)

在弹出的窗口,把刚才生成的公钥复制粘贴进去,点击确定:

其中支付宝公钥就是我们上传的公钥,应用公钥是支付宝为我们自动生成的。</

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值