二次放號(hào)接口文檔 點(diǎn)擊下載
二次放號(hào)接入指南 點(diǎn)擊訪問(wèn)
本文檔主要提供給互億平臺(tái)的用戶對(duì)接接口的使用說(shuō)明,開發(fā)者可以利用互億無(wú)線提供的 HTTP 接口,調(diào)用互億無(wú)線的實(shí)名認(rèn)證服務(wù)。
GET / POST
1、采用HTTPS協(xié)議提交請(qǐng)求
2、通過(guò)MD5動(dòng)態(tài)簽名方式加密
登錄用戶中心,進(jìn)入【實(shí)名認(rèn)證】模塊,在【產(chǎn)品總覽】頁(yè)面右側(cè),如下圖所示:
![]()
通過(guò)POST、 GET 方式進(jìn)行提交,數(shù)據(jù)編碼采用utf-8格式,24小時(shí)全天提交。
內(nèi)容格式為:Content-Type: application/x-www-form-urlencoded
https://api.ihuyi.com/idcard/operech/Submit.json
| 參數(shù)名稱 | 參數(shù)值描述 | 必填 |
| account | APIID(用戶中心【實(shí)名認(rèn)證】-【產(chǎn)品總覽】查看) | 是 |
| password | 1、APIKEY(用戶中心【實(shí)名認(rèn)證】-【產(chǎn)品總覽】查看) 2、動(dòng)態(tài)密碼(生成動(dòng)態(tài)密碼方式請(qǐng)看該文檔末尾的說(shuō)明) |
是 |
| date | 號(hào)碼注冊(cè)時(shí)間(格式:yyyyMMDDHHmmss) | 是 |
| mobile | 手機(jī)號(hào) | 是 |
| time | Unix時(shí)間戳(10位整型數(shù)字,當(dāng)使用動(dòng)態(tài)密碼方式時(shí)為必填) | 否 |
用戶通過(guò)http 或 https提交請(qǐng)求到服務(wù)器后,服務(wù)器會(huì)返回一串json格式的字符串,SubmitResult結(jié)構(gòu)說(shuō)明如下:
| 參數(shù)名稱 | 類型 | 描述 |
| code | int | 返回值為2時(shí),表示提交成功 |
| idcardid | string | 當(dāng)提交成功后,此字段為流水號(hào),否則為0 |
| msg | string | 提交結(jié)果描述 |
| result | object | 查詢結(jié)果 |
| result.status | int | 查詢狀態(tài)(2:二次放號(hào),1:非二次放號(hào)) |
| result.info | object | 其他參數(shù) |
| result.info.operator_real | int | 號(hào)碼實(shí)際所屬運(yùn)營(yíng)商(1:移動(dòng);2:聯(lián)通;3:電信) |
示例(成功)
{"code":2,"msg":"提交成功","idcardid":"16236437872836","date":"20200101130000","result":{"status":2,"info":{" operator_real ":2}}}
示例(失?。?/strong>
{"code":405,"msg":"用戶名或密碼不正確","idcardid":"0"}
| code | msg |
| 0 | 未知錯(cuò)誤 |
| 1 | 提交失敗 |
| 2 | 提交成功 |
| 400 | 非法ip訪問(wèn) |
| 401 | 帳號(hào)不能為空 |
| 402 | 密碼不能為空 |
| 403 | 應(yīng)用不存在 |
| 407 | 手機(jī)號(hào)不能為空 |
| 4071 | 手機(jī)格式不正確 |
| 408 | 查詢無(wú)結(jié)果 |
| 405 | API ID或API KEY不正確 |
| 4050 | 賬號(hào)被凍結(jié) |
| 40501 | 動(dòng)態(tài)密碼已過(guò)期 |
| 40502 | 動(dòng)態(tài)密碼校驗(yàn)失敗 |
| 40505 | 沒(méi)有簽定合同 |
| 4051 | 剩余條數(shù)不足 |
| 4052 | 訪問(wèn)ip與備案ip不符 |
| 4086 | 通道無(wú)效 |
| 4010 | 通道錯(cuò)誤 |
https://api.ihuyi.com/idcard/operech/Submit.json?account=APIID&password=APIKEY&mobile=手機(jī)號(hào)&date=20200101130000
通過(guò)接口可以方便的查詢你的賬戶剩余條數(shù)。
內(nèi)容格式為:Content-Type: application/x-www-form-urlencoded
https://api.ihuyi.com/idcard/operech/GetNum.json
| 參數(shù)名稱 | 參數(shù)值描述 | 必填 |
| account | APIID(用戶中心【實(shí)名認(rèn)證】-【產(chǎn)品總覽】查看) | 是 |
| password | 1、APIKEY(用戶中心【實(shí)名認(rèn)證】-【產(chǎn)品總覽】查看) 2、動(dòng)態(tài)密碼(生成動(dòng)態(tài)密碼方式請(qǐng)看該文檔末尾的說(shuō)明) |
是 |
| time | Unix時(shí)間戳(10位整型數(shù)字,當(dāng)使用動(dòng)態(tài)密碼方式時(shí)為必填) | 否 |
用戶通過(guò)http 或 https提交請(qǐng)求到服務(wù)器后,服務(wù)器會(huì)返回一串json格式的字符串,GetNumResult結(jié)構(gòu)說(shuō)明如下:
| 參數(shù)名稱 | 類型 | 描述 |
| code | int | 狀態(tài)返回值 |
| msg | string | 查詢結(jié)果描述 |
| num | string | 剩余數(shù)量 |
示例(成功)
{"code":2,"msg":"查詢成功","num":123}
示例(失?。?/strong>
{"code":405,"msg":"用戶名或密碼不正確","num":0}
| code | msg |
| 2 | 查詢成功 |
| 400 | 非法ip訪問(wèn) |
| 401 | 帳號(hào)不能為空 |
| 402 | 密碼不能為空 |
| 403 | 應(yīng)用不存在 |
| 405 | API ID或API KEY不正確 |
| 4050 | 賬號(hào)被凍結(jié) |
| 40501 | 動(dòng)態(tài)密碼已過(guò)期 |
| 40502 | 動(dòng)態(tài)密碼校驗(yàn)失敗 |
| 4052 | 訪問(wèn)ip與備案ip不符 |
https://api.ihuyi.com/idcard/operech/GetNum.json?account=APIID&password=APIKEY
以PHP為例,提交認(rèn)證的生成方式:
$time=time(); $password=md5($account.$apikey.$date.$app.$mobile.$time);
示例:
APIID: test APIKEY:1q784322b****** app: operech //固定值 date: 20200101130000 mobile:13600000000 time:1651544941 結(jié)果:$password=md5("test1q784322b******operech20200101130000136000000001651544941");
注意:所以字符編碼統(tǒng)一為UTF-8
查詢剩余條數(shù)的生成方式:
$time=time(); $password=md5($account.$apikey.$app.$time);
示例:
APIID: test APIKEY:1q784322ba1****** app: operech //固定值 time:1651544941 結(jié)果:$password=md5("test1q784322ba1******operech1651544941");
Unix時(shí)間戳參考地址:http://tool.chinaz.com/Tools/unixtime.aspx
| 語(yǔ)言 | 代碼 |
| JAVA | String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp *1000)) |
| Linux | date -d @Unix timestamp |
| C | strptime(datetime, "%Y-%m-%d %H:%M:%S", &tm_time); unixtime = mktime(&tm_time); |
| C++ | std::time_t t = std::time(0); |
| DELPHI | uses DateUtils; DateTimeToUnix(Now) |
| GO | import "time" cur := time.Now() timestamp := cur.UnixNano() / 1000000 |
| Perl | 先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6] |
| PHP | date("r", Unix timestamp) |
| Node.js | var date = new Date( time * 1000 ); var time = date.getTime()/1000; |
| Python | 先 import time 然后 time.gmtime(Unix timestamp) |
| Ruby | Time.at(Unix timestamp) |
| SHELL | date +%s //UNIX 的時(shí)間戳; |
| VBScript / ASP | DateAdd("s", Unix timestamp, "01/01/1970 00:00:00") |
| VB6 | DateDiff("s", "1970-1-1 0:0:0", ToUnixTime) |
| 易語(yǔ)言 | 時(shí)間_到時(shí)間戳() |
| 語(yǔ)言 | 代碼 |
| JAVA | String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp *1000)) |
| Linux | date -d @Unix timestamp |
| C | strptime(datetime, "%Y-%m-%d %H:%M:%S", &tm_time); unixtime = mktime(&tm_time); |
| C++ | std::time_t t = std::time(0); |
| DELPHI | uses DateUtils; DateTimeToUnix(Now) |
| GO | import "time" cur := time.Now() timestamp := cur.UnixNano() / 1000000 |
| Perl | 先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6] |
| PHP | date("r", Unix timestamp) |
| Node.js | var date = new Date( time * 1000 ); var time = date.getTime()/1000; |
| Python | 先 import time 然后 time.gmtime(Unix timestamp) |
| Ruby | Time.at(Unix timestamp) |
| SHELL | date +%s //UNIX 的時(shí)間戳; |
| VBScript / ASP | DateAdd("s", Unix timestamp, "01/01/1970 00:00:00") |
| VB6 | DateDiff("s", "1970-1-1 0:0:0", ToUnixTime) |
| 易語(yǔ)言 | 時(shí)間_到時(shí)間戳() |