
上次所写关于“轻轻一扫,即刻扣款,探索付款码背后的秘密”的文章,本以为阅读量可能不会太高,但出乎预料的是,发布后的反响十分热烈。今天,我将继续和大家探讨支付领域的另一重要话题——银行卡支付。
在我们日常的支付习惯中,支付宝和微信支付无疑是主流方式,但当我们的余额不足或者需要直接从银行卡扣款时,银行卡支付就显得尤为重要。
今天,就让我们一起深入了解银行卡支付的相关原理,科普一下其整个流程。
银行卡支付可以大致分为线上支付与线下支付。线下支付主要指的是我们在商场、超市等实体店通过POS机进行的刷卡支付。而线上支付则更为复杂多样,按照银行卡类别可分为支付和借记卡支付;按照支付行为又可细分为快捷支付、网银支付、Token支付等。
今天,我们主要来聊聊其中最为流行的两种支付方式:快捷支付和网银支付。至于其他支付方式,我们后续再详细探讨。
让我们来了解一下网银支付。
网银支付在数年前应该是最主流线上支付方式。以电商购物为例,我们在网站下单后,选择银行卡支付通常会跳转到一个收银台页面。然后在收银台页面我们选择相关银行,点击支付后会跳转到相应银行的页面。
这个收银台页面可能是商户的页面,也可能是支付机构的页面,具体与网银支付对接模式有关。
跳转到银行页面后,我们需要下载并安装银行的安全控件,这样才能输入银行卡的相关信息。还需要使用银行提供的安全设备,如U盾、令牌器等。
在银行网站支付成功后,就可以返回到电商网站,整个流程相对固定。
网银支付的链路非常长,任何一步都可能发生失败,因此支付成功率可能不高。部分银行的网银页面只能在特定版本的IE浏览器中打开,再加上为了保证安全性所需要的各种和安装步骤,使得整个支付过程相对复杂。
接下来,我们来聊聊快捷支付。
快捷支付是指用户将银行卡信息提供给电商等商户,商户会在后台将卡信息传递给支付机构进行协议绑定。一旦绑定成功,下次支付时无需再用户提供卡号等信息。
以电商购物支付为例,首次支付需要经历绑卡过程。扣款成功后,我们可以在银行APP中查看到该卡与支付机构的绑定记录。
后续在电商网站下单时,由于电商网站已保存记录,因此无需再输入卡信息,流程大大简化。而且,快捷支付还可以实现一定额度的免密支付。
快捷支付接口一般可以归为两类:签约/支付和代扣支付。
签约/支付过程需要分为两步:签约申请/签约验证和支付。签约过程需要传入银行卡信息,一旦支付机构/银行端信息校验成功,将会下发短信。用户回填短信后,就代表同意开通快捷支付,建立绑定关系。
代扣支付的过程相对简洁,直接上送银行卡信息即可扣款。虽然代扣支付看似更快捷,但安全风险也相对较大,可能会出现盗刷现象。在使用过程中需要格外注意。
对接银行卡支付渠道时,有几个问题需要我们特别注意。首先是加签/验签过程,为了保证报文的安全性,通常会采用加密算法进行加密和签名。商户在发送请求时需要加签,而在接收响应时则需要验签,以确保请求是从合法商户发起。
终态判定也是关键。对于快捷支付等同步接口,我们需要根据接口返回的响应码来判断请求是否成功。而对于网银支付等同步接口,则需要等待渠道端的异步通知。在接受到异步通知后,一定要内部逻辑处理成功后再返回成功响应给渠道端。
在请求参数方面,我们需要注意支付金额的单位是“分”还是“元”,以及请求流水号/订单号的唯一性。为了避免重复支付或重复扣款的问题,建议使用唯一ID作为请求流水号。
对接银行卡支付渠道需要特别注意安全性和稳定性问题。除了技术层面的问题外还需要警惕一些常见的风险点如限额溢出等问题避免造成不必要的损失。同时我们也要不断学习和了解新的技术和工具以提高系统的稳定性和安全性从而更好地服务于用户和业务需求。 今天的分享就到这里感谢大家的关注和支持我们下期再见!
