无忧支付网首页
站内搜索
您当前的位置:主页 > 相关文档 >

应用内第三方支付协议流程分析

添加时间:2022-11-01

  1、第三方支付平台的选择

  中国国内的第三方支付产品主要有支付宝、微信支付、百度钱包、PayPal、招行一网通支付、京东支付,拉卡拉、财付通、融宝、盛付通、腾付通、通联支付、易宝支付等。

  从行业内的支付企业的市场份额来看,我国第三方移动支付市场集中度较高,且呈现寡头竞争局面,2019年市场仍然主要被支付宝和微信支付两大支付企业所占领,二者份额达到94%。其中,支付宝的市场份额达到55.1%,居于首位,其次是微信支付,其市场份额为38.9%。

第三方支付分类及业务流程示意图

  从市场占有率以及消费者使用习惯的角度考虑,在参考了中国第三方支付移动支付市场报告后,本文选择了五个在中国使用比较广泛的第三方支付平台:支付宝、微信支付、银联支付、京东支付和招行一网通。

  首先,本文选择了支付宝和微信支付。支付宝是中国大陆最大的独立第三方支付平台,支付宝取代了现金或信用卡等交易方式,成为目前中国大陆民众日常生活的主流付款方式。截至2019年10月,支付宝全球用户量达到12亿,是全球用户量第一的移动支付服务机构,也是全球第二大移动支付服务机构。

  微信支付则是腾讯公司开发的应用程序微信内置的支付功能,由财付通运营和提供支付牌照,用户可以通过微信完成支付。目前,微信支付为中国大陆第二大移动支付平台。考虑到这两者庞大的市场占有率,本文将这两者纳入研究范围。

  其次,本文选择了银联支付。银联支付是在中国人民银行的指导下,由中国银联联合各商业银行、支付机构等产业各方共同推出的中国银行业统一移动支付应用程序。出于这种央行领导下的大局考量,本文选择将其纳入研究范围。

  再次,本文选择了京东支付。京东支付是京东针对移动互联网市场推出的支付产品,与京东APP深度绑定。依托京东APP的流量以及京东白条等业务,虽然其用户体量不及前三种第三方支付平台,但是应用仍较为广泛,用户粘性较高。

  最后,本文选择了招行一网通。支付宝、微信支付、京东支付和银联支付已经占据了中国第三方支付市场的绝大部分,其他第三方支付平台的市场份额之和不足1%,但这些平台的安全性仍需得到关注与重视。然而,对其一一进行分析并不现实。招行一网通提供了较为详细的接入说明文档,所以本文选择了招行一网通作为市场占有率较低的第三方平台的代表。

  2、应用内第三方支付协议流程

  在介绍应用内第三方支付协议流程前,为方便阅读,首先列出术语表。

表1

表1

  在研究了五大平台提供的说明文档和样例代码后,本文梳理出第三方支付模型。在架构方面,如图1所示,共有四个实体参与应用内第三方支付协议流程。

应用内第三方支付架构图

图1 应用内第三方支付架构图

  开发者在集成第三方支付SDK前,首先应进行密钥协商。开发者生成商家应用的签名公私钥对,同时获得第三方支付平台的签名公钥,然后协商数据加密所用密钥。在用户(消费者)使用应用内第三方支付协议之前,需要完成新用户注册及绑定第三方支付账号的相关流程,从而使得用户具有在MA中购买并支付商品的能力。随后,用户在下订单后启动第三方支付协议流程。

  应用内第三方支付协议的流程如图2所示,其具体流程为:

  1.生成订单:1-MA向MS提交订单申请(order_info,Order Information),包含商品名和商品数量信息。

  2.绑定订单:2-MS确认MA提交的新订单申请,检验商品类型和商品数量,检验成功后,生成该笔订单的订单号(out_trade_no,OutTradeNumber)以及订单详细信息、(transaction,Transaction Information),transaction 信息、包括 MA 的order_info 的提交时间(timestamp,timestartAPP),新订单申请 order_info,订单号out_trade_no,该笔订单的总价格(total_amount,total amount)以及通知地址(notify_url,notify URL)。

  MS 生成 transaction 后,使用签名私钥 SKMS 对其签名,并发送给MA。

第三方支付模型

图2 第三方支付模型

  图2中用虚线框表示的可选流程为微信支付、银联支付和京东支付需要完成的附加流程(支付宝和招行一卡通不执行):2.1-MS采用自己的私钥SKMS对transaction进行签名后传至CS。

  2-2-CS验签并校验后,生成支付流水号(pidn,Prepay ID Number)和随机数(nonce_no,Nonce Number),之后再对上述信息进行签名后传给MS。MS验签后,将pidn和nonce_no合并成transaction,重新签名后传给MA。

  3.在线付款:3-TP-SDK收到信息后,先进行签名验证和transaction信息校验,成功后,向用户展示付款详细信息,用户确认后,TP-SDK调应用内第三方支付收银台功能,由用户输入支付密码(PayKey,Pay Password),完成付款。

  4.通知结果:付款成功后,CS分别使用同步通知和异步通知两种方式通知付款结果。其中同步通知流程为:4.1-CS向TP-SDK返回由自己私钥签名后的付款详细结果(result,Result Information),result 信息包括支付状态字段(state,PayState)和其他信息。4.2-TP-SDK将消息传至MA。

  4.3-MA再将result传至MS,4.4-MS验签、解析result且核对正确后,MS向MA发送支付成功通知(Msgl,Message success),MA展示支付成功通知,同步通知结束;深色框内流程为异步通知流程:4.5-CS向MS返回由自己私钥签名后的result,MS验签、解析result且核对正确后,MS完全校验result,MS向CS发送支付Msgl,异步通知结束。本次交易完成。

关闭

1.点击下面按钮复制微信号

***********

2.打开微信→查找微信号

加为好友 开始支付接入