最近有一个朋友花了近十万请了个外包团队对接了第三方支付,这让我感到很惊讶,对接第三方支付不是很简单的么?我们今天就来了解了解,什么是第三方支付。
首先,我们应该了解下什么是第三方支付,如果没有第三方支付会是什么样子呢?如果你有一定的网龄了,就一定还记得,我们在网上买东西,需要去银行打款,或者去汇款,有一些网站还要上传汇款单,一方面非常的麻烦,买个东西都要专门跑去银行打款,另一方面,打完钱钱就到商家手里了,万一商家不给我发货那怎么办?这个时候就需要第三方支付了。
一般第三方支付的流程如下:
1.用户在商城购买商品
2.用户获取支付参数后,去第三方支付支付商品的费用
3.第三方支付收到钱后,通知商城用户已经支付
4.商城像用户提供服务
5.如果用户发现有什么异常,可以像第三方机构投诉商家,第三方机构如果没有收到投诉,过一段时间就会把钱打给商家。
在日常生活中,可能第五步我们用的比较少,因为大部分的商城都会提供退货退款的功能,但是如果你用过ApplePay,购买的服务不合适的话,可以向苹果公司投诉,对方核实后就会给你退款。
如果我们是商家,那么我们需要去对应的商家后台进行注册,提交一定的营业资料,然后会有对应的用户名跟密钥。为什么需要密钥呢?那是为了防止被别人坏人窜改,再回看一遍上一个图的流程,从第一步到第二步,如果有人更改了订单的支付参数,那么用户支付到的钱就可能到了坏人的账户,造成用户的损失了。现在大部分第三方支付用的都是非对称加密,文末有对应的链接。
那么,用户支付的流程是什么样子的呢?
1.用户先在商城那边查询对应订单,发起支付。
2.商城会按照之前根据第三方支付约定的参数构建支付参数,也可以请求第三方支付系统获取支付参数,最后用RSA算法签名把参数返还给用户。
3.用户拿到支付参数后,去唤起第三方支付SDK,然后第三方支付SDK会对支付参数进行解析与签名验证。
4.用户支付成功后,第三方支付会根据之前设置的回调地址,通知商城已经支付成功了。这个时候会告诉商城唯一的支付ID,商城必须把这个保存到数据库,以便后续查询与退款使用。
5.一般商城都会定期对账,保证金额的准确性。
那退款流程又是怎么样子呢?
1.用户发起退款
2.商城查询订单相关数据,并校验是否可以退款
3.商城向第三方支付系统发起退款请求,为了防止被数据被窜改,这里通常需要使用证书或者退款Ip白名单并且数据需要签名。
4.第三方支付系统校验没问题后,就会发起异步任务进行退款。
5.用户收到退款的金额。
好了,第三方支付就是这个样子,对接的话并没有什么高大上的技术,只要熟悉这个流程,仔细阅读对接文档,就能够对接成功了,是不是很简单?当然,第三方支付的系统是非常复杂有挑战性的,后面我们再继续谈谈支付宝、微信支付是如何保证支付可用的。