2.1 要素认证接口
方法名: mch/authCheckM2
版本:1
提交值:
参数名称 参数说明 备注
request_time 请求时间 10位时间戳Unix,注意时区是上海时区
auth_type 验证几要素 必填,参考3.1
result_type 必填,1
tunnel 渠道 必填,1
mch_no 商户号 必填,商户号
name 用户名 必填
cert_no 身份证号码 必填
account_no 银行卡号 非必填,3、4要素时必传
mobile 银行预留手机号 非必填,4要素时必传
sign 签名 必填,参考4签名规则生成
返回值:
参数错误
{
“status”: false,
“code”: “3001”,
“message”: “缺少必要的参数”,
“data”: “name unset”
}
{
“status”:false,
“code”:“3001”,
“message”:“缺少必要的参数”,
“data”:“加密数据非正常json数据”
}
认证一致
{
“status”:true,
“code”:“0000”,
“message”:“请求成功”,
“data”:“SUCCESS”,
“businessCode”:“20000000”,
“businessMsg”:“成功”,
“detailRespCode”:“0000”,
“detailRespMsg”:“验证一致”,
“auth_count”:5,
“is_cost”:“1”
}
认证不一致
{
“status”:true,
“code”:“0000”,
“message”:“请求成功”,
“data”:“验证不一致”,
“businessCode”:“01”,
“businessMsg”:“验证不一致”,
“detailRespCode”:“2319”,
“detailRespMsg”:“验证不一致”,
“auth_count”:5,
“is_cost”:“1”
}
不支持认证
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“该卡交易过于频繁,请稍后重试”,
“businessCode”:“02”,
“businessMsg”:“不支持验证”,
“detailRespCode”:“5101”,
“detailRespMsg”:“该卡交易过于频繁,请稍后重试”,
“auth_count”:5,
“is_cost”:“1”
}
渠道方异常
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“该卡交易过于频繁,请稍后重试”,
“businessCode”:“04”,
“businessMsg”:“发卡行响应超时,请稍后重试”,
“detailRespCode”:“1302”,
“detailRespMsg”:“系统异常”,
“auth_count”:5,
“is_cost”:“1”
}
请求渠道异常5秒未响应
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“请求渠道超时”,
}
系统异常
{
“status”:false,
“code”:9999,
“message”:“系统异常”,
“data”:[
]
}
参数名称 参数说明 备注
status 请求状态 true代表成功
false代表失败
(此时只代表请求成功)
code 返回码 详见4返回码说明
0000(此时只代表请求成功)
message 返回的信息
data 返回的信息 验证信息一致为SUCCESS
验证信息不一致为具体的原因
当code==’0000’ 且 data ’SUCCESS’ 验证信息一致
当code’0000’ 且 data不是SUCCESS 验证信息不一致
is_cost 是否扣费 当code为0000是才出现
1扣费
0免费
businessCode 渠道返回的参考信息
businessMsg 渠道返回的参考信息
detailRespCode 渠道返回的参考信息 参考6中的细分应答码
detailRespMsg 渠道返回的参考信息 参考6中的应答码描述
2.2 要素认证rsa加密接口
方法名: mchRsa/authCheckM2Rsa
版本:1
提交值:
签名参数名称 参数说明 备注
request_time 请求时间 10位时间戳Unix,注意时区是上海时区
auth_type 验证几要素 必填,参考3.1
result_type 必填,1
tunnel 渠道 必填,1
mch_no 商户号 必填,商户号
rsa_data rsa加密数据 必填,rsa公钥分段117位加密,填充方式OPENSSL_PKCS1_PADDING
sign 签名 必填,参考4签名规则生成
extend 扩展字段 非必填,商户提供此参数方便排查问题
rsa加密参数名称 参数说明 备注
name 用户名 必填
cert_no 身份证号码 非必填,3、4要素必填
account_no 银行卡号 非必填,3、4要素时必传
mobile 银行预留手机号 非必填,4、2要素时必传 【auth_type为6时】
返回值:
参数错误
{
“status”: false,
“code”: “3001”,
“message”: “缺少必要的参数”,
“data”: “name unset”
}
{
“status”:false,
“code”:“3001”,
“message”:“缺少必要的参数”,
“data”:“加密数据非正常json数据”
}
认证一致
{
“status”:true,
“code”:“0000”,
“message”:“请求成功”,
“data”:“SUCCESS”,
“businessCode”:“20000000”,
“businessMsg”:“成功”,
“detailRespCode”:“0000”,
“detailRespMsg”:“验证一致”,
“auth_count”:5,
“is_cost”:“1”
}
认证不一致
{
“status”:true,
“code”:“0000”,
“message”:“请求成功”,
“data”:“验证不一致”,
“businessCode”:“01”,
“businessMsg”:“验证不一致”,
“detailRespCode”:“2319”,
“detailRespMsg”:“验证不一致”,
“auth_count”:5,
“is_cost”:“1”
}
不支持认证
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“该卡交易过于频繁,请稍后重试”,
“businessCode”:“02”,
“businessMsg”:“不支持验证”,
“detailRespCode”:“5101”,
“detailRespMsg”:“该卡交易过于频繁,请稍后重试”,
“auth_count”:5,
“is_cost”:“1”
}
渠道方异常
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“该卡交易过于频繁,请稍后重试”,
“businessCode”:“04”,
“businessMsg”:“发卡行响应超时,请稍后重试”,
“detailRespCode”:“1302”,
“detailRespMsg”:“系统异常”,
“auth_count”:5,
“is_cost”:“1”
}
请求渠道异常5秒未响应
{
“status”:true,
“code”:“5001”,
“message”:“渠道异常”,
“data”:“请求渠道超时”,
}
系统异常
{
“status”:false,
“code”:9999,
“message”:“系统异常”,
“data”:[
]
}
参数名称 参数说明 备注
status 系统核心参数-请求状态 true代表成功
false代表失败
(此时只代表请求成功)
code 系统核心参数-返回码 详见4返回码说明
0000(此时只代表请求成功)
message 系统核心参数-返回的信息
data 系统核心参数-返回的信息 验证信息一致为SUCCESS
验证信息不一致为具体的原因
当code==’0000’ 且 data ’SUCCESS’ 验证信息一致
当code’0000’ 且 data不是SUCCESS 验证信息不一致
is_cost 是否扣费 当code为0000是才出现
1扣费
0免费
auth_count 当天扣费次数 当code为0000是才出现
参考值,以详细订单笔数为基准
businessCode 渠道返回的参考信息
businessMsg 渠道返回的参考信息
detailRespCode 渠道返回的参考信息 参考6中的细分应答码
detailRespMsg 渠道返回的参考信息 参考6中的应答码描述
3.参数说明
3.1 auth_type
2 验证2要素,姓名、身份证【暂时不支持】
3 验证3要素,姓名、身份证、银行卡
4 验证4要素,姓名、身份证、银行卡、手机号
6 验证2要素。用户名、银行卡
4签名生成规则
4.1排序,除sign外其余的参数全部参与,对数组的键值进行字典升序排序。
4.2去空,值为空的不参与待签名字符串的生成。
4.3生成待签串k1=v1&k2=v2&k3=v3,然后待签名串&key= YOURKEY。(商户后台–我的信息—当前秘钥)
4.4生成签名md5(待签名串)。#注意是小写
当签名失败时,请参考排序返回码data信息,看待签名串顺序是否一致
PHP示例代码:
function sign($data, KaTeX parse error: Expected '}', got 'EOF' at end of input: …y) { ksort(data);
s t r = " " ; f o r e a c h ( str = ""; foreach ( str="";foreach(data as $k => KaTeX parse error: Expected '}', got 'EOF' at end of input: …f (!checkEmpty(v)) {
$str .= $k . “=” . KaTeX parse error: Expected 'EOF', got '&' at position 6: v . "&̲"; } …str . “key=” . $key);
}
function checkEmpty(KaTeX parse error: Expected '}', got 'EOF' at end of input: … if (!isset(value)) {
return true;
}
if ( v a l u e = = = n u l l ) r e t u r n t r u e ; i f ( t r i m ( value === null) { return true; } if (trim( value===null)returntrue;if(trim(value) === “”) {
return true;
}
return false;
}
5.返回码
参数名称 参数说明(message) 备注
0000 请求成功 {
“status”: true,
“code”: “0000”,
“message”: “请求成功”,
“data”: “SUCCESS”,
“is_cost”: “0”
}
{
“status”: true,
“code”: “0000”,
“message”: “成功”,
“data”: “认证不一致,身份证号错误”,
“is_cost”: “1”
}
3001 缺少必要的参数 {
“status”: false,
“code”: “3001”,
“message”: “缺少必要的参数”,
“data”: “name unset”
}
3002 请求超时 {
“status”: false,
“code”: “3002”,
“message”: “请求超时”,
“data”: “request_time pass 60 second”
}
3003 商户不存在 {
“status”: false,
“code”: “3003”,
“message”: “商户不存在”,
“data”: “mch_no error”
}
3004 签名失败 {
“status”: false,
“code”: “3004”,
“message”: “签名失败”,
“data”: “auth_type=XXXXXX&cert_no=XXXXXX&mch_no=XXXXXX&name=XXXXXX&request_time=XXXXXX&key=XXXXXX”
}
3005 查询失败 {
“status”: false,
“code”: “3005”,
“message”: “查询失败”,
“data”: “未查到相关银行信息”
}
4001 未设置商户秘钥 {
“status”: false,
“code”: “4001”,
“message”: “未设置商户秘钥”,
“data”: []
}
4002 扣除手续费失败 {
“status”: false,
“code”: “4002”,
“message”: “扣除手续费失败”,
“data”: []
}
5001 渠道异常 {
“status”: false,
“code”: “5001”,
“message”: “渠道异常”,
“data”: []
}
5002 选择渠道异常 {
“status”: false,
“code”: “5001”,
“message”: “选择渠道异常”,
“data”: []
}
9XXX not allowed {
“status”: false,
“code”: “9000”,
“message”: “系统异常”,
“data”: []
}
6.附录
序号 细分应答码 细分应答码描述 应答码 应答码描述
1 0000 验证一致 00 验证一致
2 2314 发卡行无此卡号 01 验证不一致
3 2316 发卡行返回该卡状态不正常,建议持卡人与发卡行联系 01 验证不一致
4 2319 验证不一致 01 验证不一致
5 2320 发卡行返回该卡密码错次数超限,建议持卡人与发卡行联系 01 验证不一致
6 2344 发卡行返回该卡未预留手机号,建议持卡人与发卡行联系 01 验证不一致
7 2321 不支持发现卡验证交易 02 不支持验证
8 2325 发卡行返回该卡不支持验证,建议持卡人与发卡行联系 02 不支持验证
9 2334 发卡行返回该卡验证次数已超限,请明日再试 02 不支持验证
10 2346 建行卡不支持卡号+手机号两要素组合验证 02 不支持验证
11 5000 未知商户,不予通过 02 不支持验证
12 5101 该卡交易过于频繁,请稍后重试 02 不支持验证
13 5102 该证件号交易过于频繁,请稍后重试 02 不支持验证
14 5103 该卡今日验证失败次数过多,请明日重试 02 不支持验证
15 5104 该证件号今日验证失败次数过多,请明日重试 02 不支持验证
16 5105 短期内有同卡重复交易,请稍后重试 02 不支持验证
17 5106 该卡今日验证次数过多,请明日重试 02 不支持验证
18 5107 请取得个人授权 02 不支持验证
19 5108 当日验证次数已达最大值,请明日再试 02 不支持验证
20 5109 请正确上送实名验证业务场景 02 不支持验证
21 4001 无效卡 03 验证要素格式有误
22 4002 无效证件类型 03 验证要素格式有误
23 4003 无效证件号 03 验证要素格式有误
24 4004 无效手机号 03 验证要素格式有误
25 4005 无效姓名 03 验证要素格式有误
26 4006 多种要素格式错误 03 验证要素格式有误
27 1302 发卡行响应超时,请稍后重试 04 系统异常
28 1399 发卡行系统异常,请稍后重试 04 系统异常
29 2208 渠道方系统异常,请稍后重试 04 系统异常
30 2329 系统异常,请稍后重试 04 系统异常