银行卡鉴权流程
2020-04-02 16:35:13 12 举报
银行卡鉴权流程
作者其他创作
大纲/内容
有返回payChannelType
检查当前卡支付失败的最新一条订单的失败原因找到最新的一笔银行卡支付失败的订单,查询见附录3如果订单不为空 & 订单的createDate在最新createDate之后,则进行判断,否则进入下一步
附录3
银行卡鉴权
只进行京东的单个重新鉴权type = AUTHENTICATION_SINGLEpayChannelType = JING_DONG进行返回
查询当前公司下当前银行满足条件的所有数据查询条件详见附录6
1.通过i.investorId和银行卡号ibd.bankCardNumber获取ibd表。2.如果ibd == null && ibd.status = ('active' || 'pending.active')时,则不通过,否则进行下一个判断。3.通过银行卡ID--ibd.bank.bankId && ab.announcement.startDate <= now && ab.announcement.endDate >= now 来获取公告信息4.如果有公告信息,则不通过,否则进入下一步。
检查是否有渠道进行额度升级获取已鉴权渠道的最高额度查找没有鉴权过并且单笔额度高于已鉴权渠道的单笔额度的渠道
有数据
1.根据返回code,成功的情况下2.鉴权 type = 'AUTHENTICATION_SINGLE' && payChannelType 不为空时3.删除当前使用的鉴权数据 ibpcps
检查当前公司开放渠道和已经鉴权渠道的交集。查询pcp数据,详情见附录2。如果不为空,则通过bankId查询银行卡每种最高单笔支付限额的银行支付渠道bpcpMap如果当前卡的所有鉴权ibpcpsMap包含交集pcp,则进行下一步,并且获取当前卡鉴权渠道的最新createDate
查询icpcp数据1.ifaCompanyId2.icpcp.bank.bankId3.bankNumber 判断是否排除富友4.身份验证 icpcp.type = 'identity.verify'5.身份验证短信签约 icpcp.pcp.portMode ='identity.verify.sms'6.icpcp.status = 'active'7.icpcp.pcp.status = 'active'
如果type='LIMIT_UPGRADE'1.查询当前公司下支持该银行的所有支付渠道2.获取已鉴权渠道的最高额度3.筛选比已鉴权渠道额度高的可用渠道4.过滤不可用渠道
从当前公司渠道中,筛选支持当前银行额度最高的支付渠道icpcp返回对应的payChannelType
获取当前卡所有的鉴权信息返回ibpcpMap数据
附录4
如果payChannelType 不为空 & 有已知渠道过滤其他渠道
过滤掉查找可用的渠道中存在已经鉴权的,然后再进行降序排序,取出第一个个 payChannelType 类型,type = AUTHENTICATION_SINGLE进行单个重新鉴权,进行返回
如果type= 'AUTHENTICATION_SINGLE' & payChannelType 为空1.已鉴权渠道的 payChannelType 为空时,代表当前已鉴权的渠道不可用2.过滤已经鉴权渠道
表对应简称1.INVESTOR--i2.INVESTOR_BANK_DETAILS--ibd3.ANNOUNCEMENT_BANK--ab4.INVESTOR_BANK_PAY_CHN_PT_SETUP--ibpcps5.PAY_CHANNEL_PORT--pcp6.BANK_PAY_CHANNEL_PORT--bpcp7.IFA_COMPANY_PAY_CHANNEL_PORT--icpcp8.CONTRACT_FUND_BUY--cfb9.CONTRACT--c10.YFB_CONTRACT--yfbc11.PAY_CHANNEL_STRATEGY--pcs
如果type= 'AUTHENTICATION_ALL' & payChannelType 为空过滤壹钱包
无数据
查询pcpList数据1.支付验证 pcp.portMode = 'payment' 2.pcp.status = 'active' 3.bpcp.bank.bankId 4.icpcp.ifaCompany.ifaCompanyId5.icpcp.status = 'active' 6.投顾公司鉴权类型 icpcp.type = 'buy.ipo'
检查上传的手机号码是否和银行预留手机号码一致
判断ibpcps是否为空
不用鉴权
如果验证响应信息为属于身份信息已变更
鉴权校验验证码
进行公司层面的熔断策略处理查找公司设置的熔断策略,详情见附录5查找1小时内失败的渠道,并且把失败原因不在范围内的过滤掉 (验证响应信息是否属于身份信息已变更,验证响应信息是否属于余额不足,验证京东需要重新鉴权的响应信息)
通过ibd.investorBankDetailsId获取当前卡所有的鉴权信息返回ibpcps数据
token进行加密之后返回token
如果满足验证京东需要重新鉴权的响应信息
更新ibd.status = 'active' & ibd.telHp = 新鉴权的预留手机号
过滤掉 YQB然后再按照单笔限额进行降序排序,取第一个的 payChannelType 类型,type=全部重新鉴权,进行返回
查询yfbc数据1.yfbc.investorId2.yfbc.investorBankDetailsId3.yfbc.paymentMode = 'bank' 4.yfbc.transactionStatus = 'failure' 5.yfbc.transactionType = 'buy'6.yfbc.reason is not null
有
通过
判断当前卡是否需要重新鉴权详细判断见附录1
判断是否有返回的payChannelType
返回数据,鉴权结束
没有返回payChannelType计算重新鉴权的渠道
获取token数据
没有
条件都不满足
为空
返回type 为空和payChannelType 为空
鉴权发送验证码
返回鉴权类型Authentication.type 为全部重新鉴权AUTHENTICATION_ALL
查询pcs数据1.pcs.status = 'active' 2.熔断策略 pcs.cateGory = 'fuse.mechanism' 3.ifaCompanyId
检查当前卡的鉴权信息
否
附录6
有则进行降序排序,取第一个的 payChannelType 类型,type = LIMIT_UPGRADE进行额度升级鉴权,进行返回
附录5
不一致
一致
查询cfb数据1.i.investorId2.ibd.investorBankDetailsId3.c.paymentMode = 'bank' 4.c.transactionStatus = 'failure' 5.c.failureReason is not null
1.根据返回code,成功的情况下2.如果鉴权 type = 'AUTHENTICATION_ALL' 删除当前使用的鉴权数据 ibpcps3.添加新的鉴权数据到ibpcps
不为空
是
附录1
附录2
检查YFB最新一条订单的失败原因找到最新的一笔银行卡支付失败的YFB订单,查询见附录4如果订单不为空 & 订单的createDate在最新createDate之后,则进行判断,否则进入下一步
0 条评论
下一页