JavaSSM接入支付宝当面付(扫码支付)

本文介绍了JavaSSM项目如何接入支付宝当面付,包括查阅官方文档、使用沙箱环境调试、Demo测试及实际项目集成。重点讨论了密钥配置、避免单边账问题,以及对接过程中需要注意的步骤。
摘要由CSDN通过智能技术生成

最近做的项目的支付模块需要对接支付宝的当面付,刚做完,想把整个过程以及需要注意的一些点整理罗列下,于是便想着写一写。

接入的大体思路及过程

  1. 查看支付宝当面付官方文档(https://docs.open.alipay.com/194
  2. 通过支付宝提供的沙箱环境调试测试(支付宝沙箱环境
  3. 调试通官方提供的Demo(https://docs.open.alipay.com/194/105201/
  4. 根据Demo分析整个处理流程,以及需要重点注意的点
  5. 根据官方文档和Demo将当面付集成到自己的项目中

一、支付宝当面付官方文档
题外话:阿里的文档是真的很详细,因此避免了很多坑,所以有不懂的一般翻翻文档就大概知道了。

好了,不说废话了,根据支付宝的官方文档我们首先要了解的是整个业务流程
这里写图片描述

以及用户的使用流程

这里写图片描述

以上两个都是官方文档提供的图,文档中都有说,我就不复述了。

实际上对接到项目中,属于我们项目本身的处理逻辑主要集中是下图红框内的流程:

这里写图片描述
以我的项目为例:
系统通过用户订单向支付宝后台发起下单请求–》支付宝后台收到请求并返回订单数据以及二维码–》系统后台接受并处理支付宝的返回数据–》向用户展示二维码–》用户通过支付宝进行扫码操作–》支付宝回调支付数据–》系统后台进行处理
emm,感觉我这个例子太乱的同学可以直接无视=。 =

整个支付宝当面付中需要重点注意的有两点:

1. 密钥的配置
关于支付宝密钥的解释和流程请参考(扫码支付接入指引 )中的“配置应用 ”
支付宝的密钥有两种:“RSA2(SHA256)密钥”和“RSA(SHA1)密钥”,官方推荐的是“RSA2(SHA256)密钥”,而我使用的也是官方推荐的
这里写图片描述

下面我将叙述密钥的配置(RSA2(SHA256)密钥)过程
以下操作均在沙箱环境操作,没有沙箱环境的请务必创建沙箱环境(支付宝沙箱环境

因为需要生成RSA密钥,所以需要用支付宝提供一键生成工具生成一对RSA密钥(生成RSA密钥

我的系统是windows的,所以用密钥生成工具的过程是这样的:

这里写图片描述

生成密钥后,将“商户应用公钥”复制到沙箱应用下的“RSA2(SHA256)密钥”设置中。

这里写图片描述
这里写图片描述

保存后系统会生成“支付宝公钥”,可直接点击“查看支付宝公钥”查看。另外,“商户应用私钥”请自行保存,因为后面会用到。

PS:密钥的配置是对交易数据进行双方校验,所以请务必配置正确。

2.避免单边账
以下均引用官方文档(避免单边账):

一,单边帐是指对于一笔交易,商户端和用户端的结果不一致,分为两种情况:
1.1 商户资损单边账:用户实际未付款成功,但商户系统判定支付成功;或用户支付成功后,商户系统由于逻辑问题发起了撤销。
1.2 用户资损单边账:用户付款成功,但商户系统未得到支付成功的结果,误认为付款失败,再次扫用户付款码发起支付,导致用户多支付了一笔。在用户手机网络不好的情况下,支付成功后用户手机不一定会显示支付成功页面,用户自己也不知道已经付成功了。这种情况在小额场景下尤其容易出现,且难以发现,需要商户和系统商特别注意。

二,为了避免单边帐,建议商户和系统商采取以下措施:
2.1. 每一笔交易一定要闭环,即要么支付成功,要么撤销交易,一定不能有交易一直停留在等待用户付款的状态。
2.2 轮询+撤销的流程中,如轮询的结果一直为未付款,撤销一定要紧接着最后一次查询,当中不能有时间间隔。
2.3 门店收银系统应该具备独立的手动查询功能作为兜底,输入商户订单号(可从用户手机账单中获得)调用支付宝查询接口获得确切的支付状态。
2.4 当遇到网络超时和未知异常时,参考异常处理流程正确处理,对于每一笔交易或退款,一定要得到确切的结果。
2.5 撤销接口调用成功后,需要在收银台页面为收银员展示撤销成功的强提示文案,且按实际业务情况引导收银员进行手工订单查询。如果撤销接口没有明确返回处理结果,如遇到网络超时或支付宝未知异常等情况,则需要在收银台提示文案中表明,撤销正在处理中;若该笔订单已经支付则后续会有发生退款的可能,并和用户做好线下沟通。
2.6 对于经过轮询和撤销仍然无法确认结果的(例如系统故障或门店断网),应上报总部IT或财务,由IT(从系统内)或财务(从支付宝后台),确认支付结果后,通过后台发起退款。或让顾客查询手机支付宝账单,如顾客手机没网络,可拨打支付宝客服热线95188确认支付结果。
2.7 在上述基础上,业务流程培训时应强调支付结果必须以商户端为准,用户手机上的支付宝结果或账单只能做参考,不能作为最终识别标准。如果商户未正确处理业务逻辑和业务流程培训,存在潜在的风险,商户自行承担因此而产生的所有损失。

官方文档叙述的已经足够清楚了,我就不造轮子了,各位重点注意便可。

二、沙箱环境调试测试

支付宝沙箱是支付宝官方提供的沙箱测试环境,里面提供了支付宝的部分功能,但相对来说够用了。

支付宝沙箱环境
注册申请完沙箱环境后,系统会自动生成沙箱应用。在上面的密钥配置了,我们的公钥配置就是在沙箱应用中配置的。

首先我们先说下”沙箱应用“,因为开发操作也主要围绕”

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值