本文档主要提供给互亿平台的用户对接接口的使用说明,开发者可以利用 ihuyi 提供的 HTTP 接口,调用 ihuyi 的语音验证码服务。
本文档包含语音发送、余额查询、发送回执推送等。
GET / POST
1、采用HTTPS协议提交请求
2、通过MD5动态签名方式加密
登录用户中心,进入【语音验证码】模块,在【产品总揽】页面右上角,如下图所示:

通过POST、 GET 方式进行语音发送提交,内容格式为:Content-Type: application/x-www-form-urlencoded,数据编码采用utf-8格式。
http://api.voice.ihuyi.com/webservice/voice.php?method=Submit
| 参数名称 | 参数值描述 | 必填 |
| account | APIID(请登录用户中心【语音验证码】-【产品纵览】查看) | 是 |
| password | 1、APIKEY(请登录用户中心【语音验证码】-【产品纵览】查看) 2、动态密码(生成动态密码方式请看该文档末尾的说明) |
是 |
| mobile | 接收手机号码,只能提交1个号码 | 是 |
| content | 验证码(4-6位数字) | 是 |
| time | Unix时间戳(10位整型数字,当使用动态密码方式时为必填) | 否 |
| format | 返回格式(可选值为:xml或json,系统默认为xml) | 否 |
用户通过http 或 https提交发送短信请求到服务器后,服务器会返回一串xml格式的字符串,SubmitResult结构说明如下:
| 参数名称 | 类型 | 描述 |
| code | int | 返回值为2时,表示提交成功 |
| voiceid | string | 当提交成功后,此字段为流水号,否则为0 |
| msg | string | 提交结果描述 |
示例(成功)
2 提交成功 60495654
示例(失败)
405 account或password不正确 0
| code | msg |
| 0 | 提交失败 |
| 2 | 提交成功 |
| 400 | 非法ip访问 |
| 401 | 帐号不能为空 |
| 402 | 密码不能为空 |
| 403 | 手机号码不能为空 |
| 4030 | 手机号码已被列入黑名单 |
| 404 | 语音内容不能为空 |
| 405 | 用户名或密码不正确 |
| 4050 | 账号被冻结 |
| 40505 | 没有签定合同 |
| 4051 | 剩余条数不足 |
| 4052 | 访问ip与备案ip不符 |
| 406 | 手机格式不正确 |
| 407 | 短信内容含有敏感字符 |
| 4070 | 语音验证码内容必须为4-6位数字 |
| 408 | 您的帐户疑被恶意利用,已被自动冻结,如有疑问请与客服联系。 |
http://api.voice.ihuyi.com/webservice/voice.php?method=Submit&account=APIID&password=APIKEY&mobile=手机号码&content=1125
通过POST、 GET 方式查询你的账户语音验证码剩余条数,内容格式为:Content-Type: application/x-www-form-urlencoded,数据编码采用utf-8格式。
http://api.voice.ihuyi.com/webservice/voice.php?method=GetNum
| 参数名称 | 参数值描述 | 是否必填 |
| account | APIID(请登录用户中心【语音验证码】-【产品纵览】查看) | 是 |
| password | 1、APIKEY(请登录用户中心【语音验证码】-【产品纵览】查看) 2、动态密码(生成动态密码方式请看该文档末尾的说明) |
是 |
| time | Unix时间戳(10位整型数字,当使用动态密码方式时为必填) | 否 |
| format | 返回格式(可选值为:xml或json,系统默认为xml) | 否 |
用户通过http 或 https提交帐户余额查询请求到服务器后,服务器会返回一串xml格式的字符串,GetNumResult结构说明如下:
| 参数名称 | 类型 | 描述 |
| code | int | 状态返回值 |
| msg | string | 查询结果描述 |
| num | string | 剩余数量 |
示例(成功)
2 查询成功 856
示例(失败)
405 account或password不正确 0
| code | msg |
| 2 | 查询成功 |
| 400 | 非法ip访问 |
| 401 | 帐号不能为空 |
| 402 | 密码不能为空 |
| 405 | 用户名或密码不正确 |
| 4050 | 账号被冻结 |
http://api.voice.ihuyi.com/webservice/voice.php?method=GetNum&account=APIID&password=APIKEY
用户先提供数据接收地址,然后绑定到互亿无线系统后台,平台会以POST方式实时的将回执信息推送到此地址,内容格式为:Content-Type: application/x-www-form-urlencoded。
| 参数名称 | 参数值描述 |
| code | 状态值(2成功 0失败) |
| msg | 回执状态说明 |
| mobilephone | 手机号码 |
| talktime | 接听时间(秒) |
| voiceid | 流水号(对应提交时返回的voiceid) |
| report_time | 回执时间 |
注意: 成功接收请输出字符 "success" (不包含引号)结束推送,否则以接收失败处理。每个回执最多推送3次。每次间隔叠加60秒。
code 参数说明
| code | msg |
| 2 | 成功 |
| 0 | 未知错误 |
| -1 | 关机 |
| -2 | 停机 |
| -3 | 暂时无法接通 |
| -4 | 正在通话 |
| -5 | 空号 |
| -6 | 无人接听 |
| -8 | 呼入限制 |
| -9 | 网络忙 |
| -10 | 呼出限制 |
| -11 | 线路忙 |
| -12 | 用户拒接 |
以PHP为例,提交语音验证码的生成方式:
$time = time(); $password = md5($account.$apikey.$mobile.$content.$time);
例如:
APIID: test
APIKEY:1q784322ba1d9bb88d50cf5cdfd89k7d
手机号:138xxxxxxxx
内容:1125
time:1451544941
结果:$password=md5("test1q784322ba1d9bb88d50cf5cdfd89k7d138xxxxxxxx11251451544941");
查询剩余条数的生成方式:
$time = time(); $password = md5($account.$apikey.$time);
例如:
APIID: test
APIKEY:1q784322ba1d9bb88d50cf5cdfd89k7d
手机号:138xxxxxxxx
time:1451544941
结果:$password=md5("test1q784322ba1d9bb88d50cf5cdfd89k7d1451544941");
Unix时间戳参考地址:http://tool.chinaz.com/Tools/unixtime.aspx