我们平时使用支付宝进行各种消费支付,然而对于像支付宝这样能够快速便捷地实现支付流程的支付平台,其底层核心产品逻辑工程师是如何设计和实现的呢?底层设计揭秘,笔者作为一名第三方支付平台产品的设计开发经验,将带领大家尽快探秘支付宝快捷支付的核心,帮助大家全面系统地了解支付产品的核心支付设计。
如果想深入学习了解互联网电商、互联网金融、大数据的实战知识、核心底层技术、架构设计,可以关注微信公众号:互联网金融实战知识,有空我会分享给大家。
支付宝用户在支付宝网站申请快捷支付合同,在签订合同过程中,支付宝调用银行卡信息验证接口对用户身份信息和银行卡信息进行验证,验证通过后,支付宝才承认当前用户为该银行卡的合法持卡人,合同签订成功后,支付宝账户与银行卡的绑定关系成立。
快捷支付服务主要服务对象是互联网交易中的买家,使买家能够使用签约银行卡内的资金通过支付宝实现订单的安全交易支付,支付宝负责验证客户持卡人身份及服务权限并请求银行划拨客户资金用于互联网交易支付;统一支付平台负责验证支付宝下发的支付指令是否在支付合同的业务范围及银行控制的支付限额内,并发送给核心实时扣除签约银行卡内的余额。
1)客户通过互联网向支付宝商户下订单,并在支付宝中创建交易。
2)客户输入支付宝支付密码,请求支付宝使用其支付宝账户绑定的快捷支付签约银行卡支付该笔交易。
3)支付宝验证客户身份及网上支付请求的合法性。验证项目包括:
若以上任何一项验证不满足,支付宝将拒绝客户的网上支付请求,并将客户引导至相应的支付宝功能页面。
4)支付宝为同一渠道下的银行支付生成唯一的在线支付流水号,根据支付宝账户使用的银行卡号确定银行,构造“快捷支付请求”报文,支付宝将交易发送给银行。
5)统一支付平台收到“快捷支付请求”消息,并验证该快捷支付消息的合法性。
6)统一支付平台验证交易报文所有必填字段是否均已发送,若验证失败,转至步骤19进行下一步处理。
7)统一支付平台验证支付宝支付流水号是否唯一,若验证失败,转步骤19进行下一步处理。
8)统一支付平台验证客户支付交易金额不超过每日及单笔交易限额,若验证失败,转至步骤19进行下一步处理。
9)统一支付平台记录本次支付交易,并将扣款交易发送到前置系统。
10)预接收快捷支付扣款交易。
11)将交易转发至相应的银行核心/银联。
12)核心/银联系统收到预扣款交易信息。
13)核心/银联系统对扣款交易的合法性进行验证,验证项至少包括:
若以上验证有一项不符,核心/银联将拒绝该请求消息,并返回预扣费失败的原因。
14)核心/银联处理快捷支付扣款交易,将资金从支付合同记录中的银行卡账户划转至电子中间账户。
15)核心/银联完成扣款交易后,将交易处理结果返回前端。
16)前端从核心/银联收到的交易处理结果按原路由返回统一支付平台。
17)统一支付平台接收前端发送的扣款交易结果。
18)统一支付平台根据前端返回的核心/银联扣款结果更新本次快捷支付交易记录状态及核心到账日期等信息。若统一支付平台没有正常收到前端返回的核心扣款结果,则向核心/银联发起另一次查询交易,获取该笔交易的明确处理状态,并更新本地交易状态。
19)统一支付平台通过“快捷支付响应”报文向支付宝返回交易处理结果。
20)支付宝收到银行统一支付平台返回的“快捷支付响应”消息,解析后得到处理结果。若处理结果显示银行处理成功,支付宝将资金存入客户账户,支付本次互联网交易。若结果显示银行处理失败,支付宝将不记录这笔资金,快捷支付交易视为失败。若支付宝未收到银行明确的处理状态,将再次向银行发送查询,获取银行处理状态,更新支付宝交易处理状态。
21)支付宝向用户展示快捷支付结果。
22)顾客查看快捷支付结果。
分析完支付宝类支付系统的快捷支付核心逻辑设计,支付系统还包括提现、单笔交易、批量交易、清算对账等核心模块,每个核心模块都有复杂的核心逻辑设计,需要深入研究。想要更系统地学习互联网金融支付系统的底层技术,一定要关注头条号:互联网金融干货,我们会在后续的线下沙龙交流中和大家直接分享。
作者:刘永平,拥有超过11年互联网电商、互联网金融项目实战经验,担任资深产品总监、产品咨询专家,亲自主导和参与过超过15个项目,有超过10个从0到1的实战经验。想要学习和了解互联网电商、互联网金融及大数据的实战知识、核心底层技术及架构设计,可以关注微信公众号:互联网金融实战知识,我们会定期与大家分享。