博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
支付-收款
阅读量:7112 次
发布时间:2019-06-28

本文共 1548 字,大约阅读时间需要 5 分钟。

背景

商家有收款的需求。

商家分线下的商家和线上的商家。

线下的商家

线下的商家,是实体店,收款的时候,贴个二维码,用户使用支付宝或微信扫码支付。

这里涉及到的角色有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步,可以看出通知地址是有先后顺序的,用户输入支付密码之后,如果支付成功,通道就显示支付成功界面,然后通道立即调异步通知地址,商家更新订单状态和账户余额。

接下来,只有当用户点击通道支付成功界面的完成按钮之后,通道才会调同步通知地址,然后显示商家的支付成功界面。

不管通道提供了几个通知地址,主要是理解通知地址的作用是什么,通道地址的作用和通道的单笔订单查询结果接口是一样的,就是判断是否支付成功,如果成功,那么商家就更新订单状态和账户余额。

实际上,如果通知地址可以立即返回成功,那么只需要一个通知地址即可。

当然,如果提供两个通知地址,只是把业务分得更细,更容易理解。

转载地址:http://opmhl.baihongyu.com/

你可能感兴趣的文章
cut命令
查看>>
linux装oracle10.0.5简记
查看>>
Linux命令:DNS应用
查看>>
Linux图形界面常用操作方法
查看>>
简单的动态线性表
查看>>
Python练习28
查看>>
VMware ThinApp - 单文件软件、便携软件制作工具
查看>>
json 通过Ztree展示到页面
查看>>
RSA2012系列(4):网络战揭秘
查看>>
.NET Micro Framework动态调用C/C++底层代码(原理篇)
查看>>
国际标准的网页BANNER规格
查看>>
java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理...
查看>>
linux 安装配置JDK
查看>>
redis 并发锁
查看>>
程序员需要具备的基本技能 新手必看
查看>>
第十章网络设备基本调试
查看>>
docker使用入门
查看>>
流程管理的五大误区
查看>>
xml四种解析技术
查看>>
GridView结合dropdownlist更改父级ID
查看>>