金润·核验通-银行卡二要素验证接口文档
银行卡二要素验证接口行业内常用语
【银行卡二要素】【银行卡二要素】【银行卡二要素认证】【银行卡二三四要素实名认证】【银行卡二要素实名认证】【银行卡实名认证】【银行卡二要素查询】【银行卡二要素接口】【银行卡二要素鉴权】【银行卡三要素认证】【银行卡2元素】【银行卡四要素实名认证接口】【银行卡实名认证查询】【银行卡二要素认证接口】【银行卡2要素】【银行卡二三四要素综合实名认证】【银行卡二要素验证】【银行卡校验核验】【银行卡三要素实名认证】【银行卡二要素比对】【银行卡四要素认证】【银行卡二要素实名】【银行卡四要素实名认证】【银行卡二要素识别】【银行卡二要素校验】【银行卡二要素核验】【银行卡实名认证接口】【银行卡二要素API】【银行卡】【银行二要素接口】【银行二要素】【银行卡二要素验证接口】【银卡二要素验证接口】【银行卡实名认证?】【银行卡实名认证api】【银行卡二要素实名校验】【银行卡二要素实名核验】【银行卡四要素】
目录
1. 银行卡二要素验证接口接口描述
接口名称 |
银行卡二要素验证_简版标准版 |
接口编号 |
JR-HYT-007 |
接口描述 |
银行卡、姓名二要素认证 |
接口地址 |
/dmp/api |
请求方式 |
POST |
加密方式 |
RSA2 |
2. 银行卡二要素验证接口加密方式
2.1 加签,验签机制说明
客户在应用中使用自己的“私钥”对消息加签之后,消息和签名会传递给金枢系统,金枢系统则使用应用的 公钥 验证消息的真实性(来自于合法应用的真实消息)。
对于金枢系统返回消息给商户应用的情形,应用则使用金枢系统的 公钥 来验证返回消息的真实性。
2.2 签名算法
签名算法:RSA2
标准签名算法:SHA256WithRSA
描述:强制要求 RSA 密钥的长度至少为 2048。
2.3 加密方式
请求体加密
将请求参数(biz_content)字段通过 私钥进行加密
2.4 生成签名
2.4.1 筛选并排序
获取所有请求参数(包括公共请求参数),不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数,并按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。
2.4.2 拼接
将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为待签名字符串。
示例:
app_id=2014072300XXXXXX&biz_content=fV9IJsNcmZcPEQbvr8S3kkJ3uT0GRfHlAM25LT8w9xCAJqywxotrVlH1ZJsIXwHBvz97uFyNbBoSKbxfRgwKLl7P88hKBmPDwyDzB4t8MT&charset=UTF-8&method=alipay.trade.pay&sig |
2.4.3 调用签名函数
使用各自语言对应的 SHA256WithRSA(对应 sign_type 为 RSA2)签名函数利用商户私钥对签名字符串进行签名,并进行 Base64 编码。把生成的签名 encode 后赋值给 sign 参数,拼接到请求参数中。
2.4.4 拼接完整请求
调用签名函数 后需将生成的签名作为 sign 的 value 拼接到请求数据中。
示例:
app_id=2014072300XXXXXX&biz_content=fV9IJsNcmZcPEQbvr8S3kkJ3uT0GRfHlAM25LT8w9xCAJqywxotrVlH1ZJsIXwHBvz97uFyNbBoSKbxfRgwKLl7P88hKBmPDwyDzB4t8MT&charset=UTF-8&method=alipay.trade.pay&sign_type=RSA2×tamp=2014-07-24 03:07:50&version=1.0&sign=GhT5Q6YxBtvf4q855TiNWEF/DIeLMyEE97+OnJDHpe6joNfr9F3BAE37dczcogU7uLfpNo+dh3cgly05bQN5nTj9TJ3SrBZWa40cltlgkI+6+0FuJoFSA225+MCrD4fNNqi2Zd5Adi9qC9NdN8nBVsjvzqtn5NepOt8dG1qdv7KvVwG74emFea1j2JuMBVBMp2PgIEwCv5c8OJSXa2P66+l3YCqEEMjBN22Dz0chlJ4hKMW3rA2oISH6ryzIvNIiy4/djKEdmxFeBorp1vrbmAtBqE++afggzzGt5w4arkbQ4fWLXJwkC9+1y4irCgmX65CEb5ct+fRgG2/9/B0rYg== |
2.5 解密方式
返回数据data内容是加密的,要用商户的公钥解密
3. 银行卡二要素验证接口请求参数
3.1 公共请求参数
参数 |
类型 |
必填 |
最大长度 |
说明 |
String |
Y |
32 |
金润商务提供 |
|
method |
String |
Y |
100 |
固定值: "jinrun.bank.verify.bank.info2" |
sign |
String |
Y |
|
参见2加密方式 |
charset |
String |
Y |
10 |
utf-8 |
format |
String |
Y |
10 |
json |
sign_type |
String |
Y |
10 |
RSA2 |
version |
String |
Y |
10 |
1.0 |
3.2 接口请求参数
参数 |
类型 |
必填 |
最大长度 |
说明 |
|
biz_content |
name |
String |
Y |
100 |
姓名 |
bankcard |
String |
Y |
20 |
银行卡号 |
4. 银行卡二要素验证接口响应参数
4.1 公共响应参数
参数 |
类型 |
说明 |
code |
String |
响应码参见附录6 |
request_id |
String |
请求Id |
message |
String |
响应信息 |
timestamp |
Long |
时间戳 |
data |
String |
返回数据 |
4.2 接口响应参数
参数 |
类型 |
说明 |
seqNum |
String |
接口调用流水号 |
status |
String |
参考接口返回码(暂未使用) |
message |
String |
接口返回描述 |
Object |
识别内容 |
|
data.result |
String |
响应码参见附录6 |
data.resultMsg |
String |
认证结果描述 |
5. 银行卡二要素验证接口代码示例
5.1 请求示例
biz_content的json格式样例
{ "bankcard":"4367421xxxxxxxxxxxx", "name":"翁xx" } |
5.2 响应示例
{ "code":"0", "data":{ "data":{ "result":"0", "resultMsg":"验证一致" }, "message":"成功", "seqNum":"7622051700323937", "status":0 }, "message":"验证一致", "timestamp":1652776723962 } |
5.3 异常示例
6. 银行卡二要素验证接口附录
6.1 接口返回码
编码 |
描述 |
是否收费 |
0 |
验证一致 |
收费 |
1 |
验证不一致 |
收费 |
2 |
卡状态异常或卡号错误 |
收费 |
3 |
未开通银联无卡支付 |
收费 |
4 |
验证次数超限 |
免费 |
5 |
不支持验证 |
免费 |
400 |
错误信息 |
免费 |
|
系统错误 |
免费 |
|
参数错误 |
免费 |
|
数据异常,未能获取结 |
免费 |
|
⽤户不存在或配置错误 |
免费 |
|
TokenKey验证失败 |
免费 |
|
接口未定义或停止使用 |
免费 |
|
用户没有接口使用权限 |
免费 |
|
用户接口暂停使用 |
免费 |
|
用户余额不足 |
免费 |
|
系统繁忙,请稍候再试 |
免费 |