银行普通支付快捷支付银企直连对接操作手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
银行普通支付、快捷支付、B2B、银企直连
对接操作手册
一、普通支付
1.普通网银支付整体流程时序图
图1-1 网银支付整体流程时序图(可另存下来或放大看)
2.代码结构图
图1-2普通支付代码结构图
3.对接银行开发步骤
1)首先应该有框架代码,IPaymentService、PaymentServiceImpl、IBankPaymentService、AbstractBankPaymentServiceImpl;
2)新建maven项目,命名为ccb,建立package b.service及b.service.impl;
3)在b.service下编写ICcbPaymentService接口,扩展自IBankPaymentService接口;
4)在package b.service.impl下创建CcbPaymentServiceImpl,继承AbstractBankPaymentServiceImpl并实现刚定义的ICcbPaymentService接口,按提示添加须实现的方法,添加完后如下图:
5)在CcbPaymentServiceImpl中添加com.rrtx.payment.service.IPaymentService.Bank的对象属性bank,并复写父类的init方法,在init方法中对bank对象的相关属性初始化,此属性主要封装了本银行服务的相关信息,比如显示的图标、银行编号、在平台的代码、简称等,该部分可能需要读取配置文件config.properties,该文件约定放在src/main/resources/目录下,文件里一般还包含了提交的银行接口地址、在银行开立的商户号、证书、密钥、返回通知本系统的url等信息:
6)在prePayment方法里写逻辑,将我们平台的PaymentInput转换成建设银行对应的报文格式,部分字段可能需要根据PaymentInput中的字段去数据库查询;
7)在afterPayment方法中,根据建行的接口文档将银行返回的Map解析出我们平台的数据PaymentOutput对象返回;
8)如果要使用模拟银行,我们一般在shopDemo中的simBank目录下放置模拟银行的应答jsp,里面模拟银行返回信息,然后将上面提到的提交银行接口的url改成该jsp的请求url。
9)至此银行普通支付的对接工作基本完成。
二、快捷支付
1.代码结构图
图2-1 快捷支付代码结构图
2.交互流程描述
客户操作流程:
1)选择支付方式“快捷支付”,从支持快捷支付的银行列表中选择银行;
2)输入银行卡、银行预留手机号等等信息,阅读并勾选签约协议,提交信息;
3)提示支付成功;
系统前后端交互流程:
1)用户在支付方式页面选择快捷支付选项卡后,页面向后台请求系统支持的快捷支付的银行列表并展示银行快捷支付图标;
2)用户选择银行后点击下一步,进入快捷支付页面,该页面首先发起请求判断当前用户是否已签约该银行的快捷支付;
3)如果没有则显示签约录入表单,用户输入签约所需的所有信息,并点击发送手机短信验证码,用户收到短信验证码后输入并一起提交表单,后台将该用户提交的信息发送至银行的鉴权接口,鉴权返回成功后系统验证用户提交的短信验证码和支付密码等信息;验证通过后系统调用银行的签约接口签约,完成后前端转入步骤4);
4)如果已签约则提示输入手机号等关键支付信息,提交到后台,后台发送短信验证码后,前端弹出验证码输入框,再次提交到后台验证,后台验证正确后发送银行快捷支付接口,成功后返回到前端,提示支付结果;
3.对接快捷支付开发步骤
开发步骤和普通网银支付基本一样,但是我们有几项约定:
1)快捷银行的项目和银行的简称我们都以quick结尾,比如中信银行快捷支付项目名叫citicquick;
2)因为不同银行的快捷支付接口功能统一性不高,因此相对网银支付我们加了一层适配器来屏蔽接口方法,银行服务中只需实现我们本银行有的接口。
3)因为对快捷支付来说,我们平台输出的数据与网银支付不同,因此我们封装的快捷支付的QuickBank与网银支付的Bank类中的属性也不同;
三、B2B银行对接
1.代码结构图
图3-1 B2B银行对接代码结构图
2.与普通支付及快捷支付的异同
B2B银行对接的开发相对以上两种方式来说都要简单,主要区别在以下几个方面:
1)所有功能都是一次调用接口完成,没有复杂的前后端交互;
2)类图与快捷支付结构完全一样,因为不同银行接口功能统一度很低,因此我们也是用了Adapter来屏蔽各种各样的接口方法,每个银行服务中只须实现本行提供的功能方法即可;
3)与快捷支付相似,我们约定B2B的银行服务的简称都以B2B结尾,比如农业银行服务简称为ABCB2B
四、银企直连
因为银企直连几乎与B2B银行对接完全一样,因此这里不再重复描述。
不同之处只在于代码结构
五、收单系统对接银行
1.收单业务与银行交互流程
图5-1 业务逻辑与银行服务交互流程图
2.银行对接开发步骤
因为收单银行服务与银企直连和B2B银行类似都是一步交互返回数据,因此对接时参照B2B 银行即可;