对于大多数设计支付系统的同学来说,他们都熟悉支付渠道提供的调用方式。 相信大家也都熟悉这些支付渠道的调用方式。
1.支付通道调用方法
一般来说,传统的支付渠道调用方式分为以下几种:API直接调用、网关跳转支付、手机APP SDK跳转支付、手机APP直接跳转支付、二维码扫码支付和Pay。
1.API直接调用
这种方式一般适用于支付渠道不再涉及用户交互,直接实现扣费的场景。
例如:刷银行卡时,发卡机构系统直接验证客户的余额和合法性,然后进行扣款。 协议支付、银行卡扣费、快捷支付等同样适用。
2.网关跳转支付
这种方式最早诞生于淘宝、亚马逊等在线电商平台。 此类平台需要与银行网上银行对接。 为了保证安全,电商平台在发起支付时需要跳转到银行的B2C或B2B支付网关来完成支付。 客户将UKEY插入网银支付网关,输入支付密码即可完成支付。
这种支付方式在电商平台上被广泛使用。 电商平台或支付公司会提供类似网上收银的支付网关页面。 客户可以在页面上选择各种支付方式来完成支付。在移动互联网时代,还衍生出了H5或WAP跳转支付。
3.手机APP SDK跳转支付
这种方式在近几年移动互联网兴起后开始进入大家的生活。 一个常见的例子是,在电商APP上完成购物后,调用支付公司提供的SDK插件来完成银行卡扣款支付。这些插件中有一些是支付公司提供的(比如Pay应用内支付插件和苹果提供的银联云闪付支付插件),也有一些是支付系统集成商提供的,如\\ping++\Now Pay。
4.手机APP直接跳转支付
这种方式其实是在上面的SDK跳转支付方式的基础上又前进了一步。 随着微信、支付宝等生态APP的成长,支付原本只以SDK插件的形式存在。 相反,电商APP需要直接跳转到微信、支付宝等APP来完成支付。 这其中的代表就是现在大家使用的很多互联网电商APP,比如滴滴打车、美团外卖、拼多多等,都跳转到微信、支付宝APP上完成支付。
5.扫描二维码进行支付
上述支付方式按定义仍属于网上支付行为。 如何区分线上支付和线下支付? 根据笔者多年的实践经验,可以根据交易对方是否需要亲自完成交易来进行区分。 那么扫码支付当然是线下支付。 传统银行卡刷卡是通过收单机构完成,收单机构直接调用银联和发卡机构的API完成扣款。 客户只需在商户的POS机上完成身份认证,即输入密码和签名。 相比之下,二维码支付则需要顾客通过APP与商户的POS机或其他扫码收银终端进行交互。 无论是主扫还是扫码,支付认证流程取决于客户APP。
6.付款
这种支付方式应该算是微信首创。 其产品形式是在微信中打开的网页链接上可以嵌入支付按钮。 支付按钮可以直接调用微信的密码控制完成支付。 与此类似的还有支付宝。 到服务窗口缴费。
7、其他配制方法
例如,先通过API下单,然后调用网关或APP或SDK。 例如,在网关支付页面嵌入二维码,客户可以通过手机APP扫描二维码进行支付。 该形式是上述方法的组合。
2、微信公众号支付方式产品设计分析
微信支付方式实际上是上述复合支付方式中的典型之一。 但从产品设计来看,它的设计非常精致,既考虑到了商户的个性化,又保证了支付的安全性。 也独立于微信C端客户。 缝开了,也为APP厂商后期二维码聚合支付提供了标准的支付产品设计模板。
2.1 产品流程
微信公众号支付是一种典型的在线支付模式。 商户系统首先从后端下单,获取参数,通过前端页面直接向微信支付系统发起支付请求。 在此过程中,完成了客户的身份授权和密码输入。 ,完成付款。 支付完成后,通过异步通知或商户主动发起查询支付完成。
2.2 产品易用性
由于微信是在移动端,移动支付不同于基于浏览器的在线支付模式。 在线支付的浏览器可以通过网页在商户平台和支付平台之间传递信息,例如跳转到银行支付页面让用户输入密码; 在移动支付场景中,除了商户平台和支付平台之外,还存在商户APP、商户服务器、支付SDK(如果有)和支付平台之间信息交互的过程。 中间最重要的环节是:用户需要在商户APP上进行授权和确认。
微信场景下,没有商户APP。 顾客和商家都使用微信,这意味着微信直接与商家网站进行交互。 因此,微信要求先统一下单,商户获取支付参数后,再激活微信完成支付,包括商户的扫码支付、APP支付、公众号支付、H5/WAP支付,也是这样设计的。
仔细分析后可以了解到,不同的行业解决方案对于支付订单的请求参数是不同的。 如果是在APP端或者SDK端完成,协议的变更和调整是极其麻烦的。 如果放入统一下单,只需要调整统一下单界面即可,不需要在APP端或者SDK端做任何调整。 例如:微信支付增加卡券识别、增加借记贷识别、红包支持等,都是通过在后台添加附加字段来完成的。 另外,由于移动端的网络不确定性和调用的复杂性,通过后端API模式下单可以大大简化中间的问题,不仅可以降低出错的概率,还可以减少数据传输。 另外,通过该方法还可以对商户的支付页面进行定制。 整个支付过程看不到微信提供的任何网关页面。 而是直接调用支付控件,让整个支付流程和体验更加流畅。
2.3 产品安全
同时,微信实施了极其严格的安全控制,主要体现在以下几个方面:
2.3.1 商户网站防伪
1、激活支付密码控制的企业域名必须经过ICP注册并在微信支付后台列入白名单。
2. 支付目录和支付必须预先配置并绑定
3、使用微信支付的公众号主体必须与开通微信支付的商户主体一致。
4、未注册的网站也会有安全提示。 请不要在页面上输入账号密码等敏感信息。
以上几点有效防止钓鱼页面及其他中间人页面劫持
2.3.2 客户身份授权
1、此外,微信还对跨账户支付进行了严格限制,防止一个公众号跳转到其他支付网关进行支付。
2、客户使用微信支付下单前必须先登录微信授权(隐式授权使用户基本无意识)
2.3.3 支付流程安全
1、后端订单返回的支付要素需要使用商户私钥进行签名
2、一组支付参数不能被其他用户使用进行支付
3、微信自带密码控制及回显交易对手
2.3.4 风险控制体系
1. 阻止可疑交易
2、对信用卡比例过高设置限制
3、另外机器有手动和自动操作,控制商户行为风险,进行配额和停机处理。
3 总结
不同支付渠道的调用方式也随着支付业务的发展而不断创新。 产品的易用性和安全性是支付系统在此类问题设计中的重中之重。 微信支付的相关机制为我们提供了很好的借鉴,值得我们研究和借鉴。