数字藏品网站的购物流程中核心的一环是用户支付。目前我们已经服务30个国家和地区,不同国家往往需要对接不同的第三方支付公司,近两年,研发组对接了大量的第三方支付公司,积累了一定的经验。
本文主要分享如何对接第三方支付,以及在生产上实际遇到的一些问题,避免大家重复踩坑。
一、五个接口
先简单阐述一下,对接第三方支付时,需要对接如下5个核心接口
1.发起支付
该接口主要用于从第三方获取token,当用户跳转到第三方网站进行支付时,第三方支付公司用来校验是否是合法的支付请求
2.支付结果查询
商户用该接口来判断支付结果成功与否
3.退款
商户用该接口进行退款
4.退款查询
商户用该接口来判断退款结果成功与否
5.获取支付成功订单列表接口
商户用该接口获取第三方某日所有成功支付订单列表,用于对账时使用
二、四个流程
只需要对接完如下四个流程,便可完成第三方支付的对接。
发起支付请求
同步回调和异步回调
退款和退款查询
对账
1.发起支付请求
下面的时序图中有几个名词,此处先给大家介绍一下
数字藏品网站-电商系统:海外商城的服务系统,负责提供整个购物流程
支付网关:我们将支付抽离为一个单独的系统,该系统用来对接所有支付
相关说明
签名校验:请求支付接口域名为内网域名,使用签名校验,让系统更加安全
记录请求日志:请求除了记录到log文件中,建议落库,方便日后查找
非首次支付判断支付状态:防止重复支付,该判断可在流量高峰期降配掉
生成新的支付号:部分第三方支付公司,规定同一个支付号,无论支付成功与否只能使用一次。目前,在小米网,当订单创建成功后,订单号不会改变,每次用户发起支付后,支付网关会生成新的支付号,使用该支付号请求第三方。该方案会引入重复支付问题,在后面章节阐述解决方案。