名词 | 解释 |
快捷支付 | 指用户无需输入银行卡密码,而通过在支付机构设置的支付密码完成银行卡支付。能够进行快捷支付的银行卡需事先完成快捷绑卡流程。 |
快捷绑卡 | 也称快捷绑卡1.0。指用户输入完整银行卡号、户名、手机号、短信验证码等信息,完成用户支付账户与发卡银行卡的绑定,绑定成功后用户即可使用快捷支付。 |
快捷绑卡2.0 | 快捷绑卡1.0的升级版,大幅提升用户绑卡体验。只需账号授权,用户即可选卡绑定,而无需记住银行卡号等任何信息,让用户可以随选绑卡,随时绑卡。 |
一键绑卡 | 快捷绑卡2.0的一种场景,用户从银行APP发起绑卡,跳转至支付宝APP验证授权完成绑定,绑定成功后用户可选择回跳银行APP。 |
网关签约 | 快捷绑卡2.0的一种场景,用户从支付宝APP发起绑卡,打开银行绑卡H5页面并验证授权后完成绑定,绑定完成后支付宝呈现绑卡结果页,用户绑卡流程无需跳端,体感一致性更佳。 |
为解决用户忘记卡号,卡不在身边也能绑卡,进一步提升用户快捷支付绑卡随绑随付的便利性,降低因签约信息误填、弃填等问题出现的频率,提高签约成功率,优化客户签约体验以及提升用户信息安全。支付宝基于网联平台报文交互规范,定义了一套快捷绑卡2.0解决方案及标准业务流程,帮助各发卡银行快速完成系统升级和对接。
用户在支付宝APP打开“添加银行卡”功能,选择发卡银行以及对应卡类型,在完成用户支付宝侧身份信息验证后(如支付密码、指纹或人脸识别),页面跳转至银行绑卡验证H5页面,用户在银行页面完成授权、选卡(如有多张卡)以及短信验证后,后台系统完成快捷协议签约,页面跳回支付宝并提示用户绑定成功。
网关签约业务流程根据服务提供方可分为两个阶段,第一阶段由支付宝进行用户身份验证,成功后跳转至银行页面;第二阶段由银行页面提供用户授权、选卡、绑卡服务,绑卡完成后跳回支付宝页面展示结果。若银行处理绑卡失败,也回跳支付宝页面展示失败信息并提示用户做相应处理。
不同银行业务处理流程有所不同,因此阶段二也分为“先验证授权后选卡”以及“先选卡后验证授权”两种流程。在用户选卡并确认信息后,绑卡提交前(即最后一步前)进行短信验证有助于进一步提升绑卡业务成功率,建议银行采用“先选卡后验证授权”的业务流程。本方案后续以该推荐流程介绍后续技术集成方案。
为帮助银行详细了解整体合作对接流程,下图详细描述了银行侧以及支付宝侧的工作内容以及对应步骤。其中红色节点为银行操作,蓝色节点为支付宝操作。
快捷支付2.0网关签约业务除了前面介绍的页面流程外,在后端系统接口交互层面主要由银行直接对接网联平台,并经由网联平台间接对接支付宝。完整报文交互流程如下。银行侧开发工作分为“银行服务端”和“银行前端”(H5或小程序)两部分。下面就银行在整体技术链路中涉及的主要工作进行说明。
银行服务端除自身业务功能开发外,需处理支付宝APP跳转银行侧的信息(步骤1.3和1.3.1),并且在绑卡完成后回跳支付宝,并通过网联平台返回快捷协议号(步骤3.1.2和3.2),或在失败情况下返回对应错误码和错误描述信息,并最终返回支付宝页面进行结果展示(绑卡成功或失败,以及失败原因和推荐处理措施)。
银行前端开发主要涉及与银行服务端内部交互,以及最终回跳支付宝APP页面,银行前端页面需按照交互规范,为用户提供清晰动线,并需保证每次页面跳转耗时小于3秒的技术指标。
支付宝获取到网联平台返回的银行绑卡页面地址后(步骤1.2),会通过POST方法,进行如下内容的表单提交,其中表单字段名为epccGwMsg,字段值为基于网联快捷协议签约跳转报文(epcc.105.001.01)返回的加密信息Sec的base64编码。
由于表单提交会进行URLEncode,因此银行网关接收到请求信息后需先进行URLDecode解码,然后进行base64解码以获取原始加密信息Sec,并用于后续解密处理。由于某些银行系统内部会自动进行URLDecode,因此需保证系统不会进行多次url解码。
绑卡结束回跳支付宝分为服务端信息回执以及页面端地址回跳,其中服务端信息回执不涉及页面交互,由银行通过网联平台向支付宝服务端返回绑卡结果。具体银行需发送快捷协议签约回执报文(epcc.102.001.01,交易类别0200),并填写快捷协议号SgnNo等信息,通知网联及支付宝绑卡成功。对于绑卡失败场景,银行需按网联平台规范给出对应错误码和错误描述,保证用户可知晓绑卡失败的原因,减少用户因不清楚具体失败原因而导致的咨询或投诉。
页面端回跳支付宝的地址可通过解密上述加密信息Sec获取,字段名为ClbckUrl,目前支付宝回跳地址为支付宝APP内使用的固定内部地址,形式如https://sdklite.h5quit,银行在完成绑卡后,无论成功失败,均可直接回跳上述地址,支付宝会内部进行绑卡状态查询和页面展示。银行回跳方式为直接GET请求该地址,并且无需携带任何附加参数和信息,代码示例如下:window.location.href="https://sdklite.h5quit"。由于是支付宝APP内部地址,因此银行需进行相关访问域名白名单添加(如银行有域名访问控制),允许上述地址的回跳而无需检查地址的格式或有效性。
此处银行服务端被动接收支付宝请求,无主动请求报文。银行监听支付宝请求后,通过url解码以及base64解码获取快捷协议签约跳转报文(epcc.105.001.01)的加密信息Sec,经过解密后可获取支付宝提供的受理人相关信息以及回跳支付宝的地址ClbckUrl。解密规范参见网联平台文档说明。
银行绑卡成功或出现错误后需发送快捷协议签约回执报文(epcc.102.001.01,交易类别0200)
todo
接口API由网联平台定义,具体文档请咨询网联并由网联平台官方提供。
正式业务上线前,双方需完成如下三阶段测试及验收。
下面就阶段二“验收测试”进行详细说明。
支付宝会基于如下原则对系统和用户交互流程进行评估,以保证整体用户交互和体验达到最佳,请银行产研人员进行关注,其中红线问题无法通过业务验收。
支付宝侧业务验收需银行提供完整录屏,涉及Android以及iOS双端,包含一个单卡成功场景(样例1或2),一个多卡成功场景(样例3或4),以及一个无卡失败场景(样例9或10),总计6个完整流程录屏。录屏文件命名如下:
银行侧业务验收可内部进行更为详细的验收样例测试,可基于下面10种测试场景进行扩展,以提升系统的健壮性、稳定性和用户体验。
1、支付宝扫码获取支付宝uid
2、支持的证件类型
3、银行重点关注的错误码和错误信息的展示如下。
错误码 | 错误描述信息 |
PB511026 | 身份认证失败次数超过当日最大次数 |
PB500013 | 客户身份核实失败 |
PB500002 | 系统不可用,请稍后重试 |
PB511014 | 签约人账户未登记预留手机 |
PB511025 | 身份认证短信发送次数超过当前时间段最大次数 |
PB511004 | 签约人账户为存折账户、对公账户、外币账户等不支持协议支付的账户 |
PB500018 | 支付机构无权发起此交易 |
PB511002 | 签约行查无此账号 |
基于法律法规、监管政策等原因,我公司有权采取变更或暂停接口使用、终止合作等措施。