背景
商家有收款的需求。
商家分线下的商家和线上的商家。
线下的商家
线下的商家,是实体店,收款的时候,贴个二维码,用户使用支付宝或微信扫码支付。
这里涉及到的角色有3个,1.用户 2.商家 3.支付宝或微信。
本篇文章里要说的是聚合支付二维码,现在的二维码支付,一般都支持多个支付方式(支付宝、微信、京东、百度等),至少也支持两个支付方式(支付宝、微信)。
所以,从这里可以看出,并不是支付宝和微信直接提供二维码收款服务,而是聚合支付公司提供,具体来说,这里有4个角色:
1.用户使用第三方支付公司的软件(支付宝或微信),扫二维码,付款。2.商家聚合支付公司的商家。3.聚合支付公司聚合支付公司直接打交道的角色,只有2个,一个是商家,一个是通道。聚合支付公司生成二维码,给商家放在实体店里,供用户扫码支付。
聚合支付公司对接通道,这里的通道指第三方支付公司。
聚合支付公司,有收钱吧、好近、兴业银行等。
4.通道第三方支付公司(支付宝或微信)。线上的商家
同上。
唯一的不同,就是线上的商家不是实体店,而是网站(例如,电商网站),也可以是任何类型的有收款需求的网站。
二维码是放在商家网站里,而不是贴在实体店的墙上或桌子上。聚合支付公司,有ping++、BeeCloud等。
资金流
1.用户
付款2.商家收钱。收到的钱,放在聚合支付公司的商家账户。3.聚合支付公司聚合支付公司在自己系统内部记账。聚合支付公司与商家采用T+N进行结算。
4.通道第三方支付公司在自己系统内部记账,因为聚合支付公司也是第三方支付公司的一个商家。第三方支付公司与聚合支付公司,也是采用T+N进行结算。最终真正发生转账的地方,是第三方支付公司对接银行,不过银行也是记账,因为第三方支付公司也是银行的商家,这里不展开多说。
收款
资金流是进来,就是收款。
在这些角色里面,可以看出来,每个角色都扮演了收款的角色。
用户,虽然是付款(资金流是出去),但是用户买到了商品或服务,所以还是收款。
技术实现
以下文字里的商家指聚合支付公司。
通道指第三方支付公司。业务流程
1.用户使用支付宝或微信扫二维码
2.用户输入金额,提交数据3.商家调通道支付接口,把订单数据发往通道4.通道调支付宝或微信的支付控件,弹出输入密码界面5.用户输入密码,确认支付6.支付宝或微信收到钱之后,显示支付成功7.支付宝或微信调商家的异步通知地址,商家更新订单状态和账户余额
8.用户点击完成按钮9.支付宝或微信调商家的同步通知地址,显示商家的支付成功界面10.商家调通道的单笔订单查询接口,查询是否支付成功,如果支付成功,那么商家更新订单状态和账户余额
通知地址
通知地址,分同步通知地址和异步通知地址。
有的通道提供了两个通知地址(例如,微信、兴业银行-威富通),有的通道只提供了一个通知地址(支付宝、智付),有的通道则是提供一个必填同步通知地址、一个选填异步通知地址(例如,平安银行)。
从上面的业务流程第7、8、9步,可以看出通知地址是有先后顺序的,用户输入支付密码之后,如果支付成功,通道就显示支付成功界面,然后通道立即调异步通知地址,商家更新订单状态和账户余额。
接下来,只有当用户点击通道支付成功界面的完成按钮之后,通道才会调同步通知地址,然后显示商家的支付成功界面。
不管通道提供了几个通知地址,主要是理解通知地址的作用是什么,通道地址的作用和通道的单笔订单查询结果接口是一样的,就是判断是否支付成功,如果成功,那么商家就更新订单状态和账户余额。
实际上,如果通知地址可以立即返回成功,那么只需要一个通知地址即可。
当然,如果提供两个通知地址,只是把业务分得更细,更容易理解。