金润数科手机在网时长接口描述
接口名称 | 运营商特征_在网时长 |
接口编号 | JR-HYT-011 |
接口描述 | 获取指定号码的在网时长,支持携转验证。 |
接口地址 | /dmp/api |
请求方式 | POST |
加密方式 | RSA2 |
加密方式加签,验签机制说明
客户在应用中使用自己的“私钥”对消息加签之后,消息和签名会传递给金枢系统,金枢系统则使用应用的 公钥 验证消息的真实性(来自于合法应用的真实消息)。
对于金枢系统返回消息给商户应用的情形,应用则使用金枢系统的 公钥 来验证返回消息的真实性。
签名算法
签名算法:RSA2
标准签名算法:SHA256WithRSA
描述:强制要求 RSA 密钥的长度至少为 2048。
加密方式
请求体加密
将请求参数(biz_content)字段通过 私钥进行加密
生成签名筛选并排序
获取所有请求参数(包括公共请求参数),不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数,并按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。
拼接
将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为待签名字符串。
示例:
app_id=2014072300XXXXXX&biz_content=fV9IJsNcmZcPEQbvr8S3kkJ3uT0GRfHlAM25LT8w9xCAJqywxotrVlH1ZJsIXwHBvz97uFyNbBoSKbxfRgwKLl7P88hKBmPDwyDzB4t8MT&charset=UTF-8&method=alipay.trade.pay&sig |
调用签名函数
使用各自语言对应的 SHA256WithRSA(对应 sign_type 为 RSA2)签名函数利用商户私钥对签名字符串进行签名,并进行 Base64 编码。把生成的签名 encode 后赋值给 sign 参数,拼接到请求参数中。
拼接完整请求
调用签名函数 后需将生成的签名作为 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== |
解密方式
返回数据data内容是加密的,要用商户的公钥解密
请求参数公共请求参数
参数 | 类型 | 必填 | 最大长度 | 说明 |
String | Y | 32 | 金润商务提供 | |
method | String | Y | 100 | 固定值: "jinrun.carrier.verify.mobile.online.timev2" |
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 |
接口请求参数
参数 | 类型 | 必填 | 最大长度 | 说明 | |
biz_content | mobile | String | Y | 11 | 手机号 |
响应参数公共响应参数
参数 | 类型 | 说明 |
code | String | 响应码参见附录6 |
request_id | String | 请求Id |
message | String | 响应信息 |
timestamp | Long | 时间戳 |
data | String | 返回数据 |
接口响应参数
参数 | 类型 | 说明 |
seqNum | String | 接口调用流水号 |
status | String | 参考接口返回码(暂未使用) |
message | String | 接口返回描述 |
Object | 识别内容 | |
data.result | String | 响应码参见附录6 |
data.resultMsg | String | 认证结果描述 |
代码示例请求示例
biz_content的json格式样例
{"mobile":"19910000001"} |
响应示例
{ "code":"12", "data":{ "data":{ "city":"北京", "isFee":"1", "isp":"电信", "province":"北京", "result":"12", "resultMsg":"[12,24)" }, "message":"成功", "seqNum":"0422051800122236", "status":0 }, "message":"[12,24)", "timestamp":1652839062220 } |
异常示例
编码 | 描述 | 是否收费 |
0 | [0,3) 在网时长结果,单位:月 | 收费 |
3 | [3,6) 在网时长结果,单位:月 | 收费 |
6 | [6,12) 在网时长结果,单位:月 | 收费 |
12 | [12,24) 在网时长结果,单位:月 | 收费 |
24 | [24,+) 在网时长结果,单位:月 | 收费 |
99 | 手机号已离网/新入网/手机状态异常 | 收费 |
-1 | 查无记录 | 免费 |
400 | 错误信息 | 免费 |
系统错误 | 免费 | |
参数错误 | 免费 | |
数据异常,未能获取结 | 免费 | |
⽤户不存在或配置错误 | 免费 | |
TokenKey验证失败 | 免费 | |
接口未定义或停止使用 | 免费 | |
用户没有接口使用权限 | 免费 | |
用户接口暂停使用 | 免费 | |
用户余额不足 | 免费 | |
系统繁忙,请稍候再试 | 免费 |