互億無線 · 文檔中心

語音通知 - API文檔


語音通知API接口文檔下載:  點擊下載

1、概要

1.1 文檔說明

本文檔主要提供給互億平臺的用戶對接接口的使用說明,開發者可以利用 ihuyi 提供的 HTTP 接口,調用 ihuyi 的語音通知服務。

1.2 接口內容

本文檔包含語音發送、余額查詢、發送回執推送等。

1.3 提交方式

GET / POST

1.4 加密方式

1、采用HTTPS協議提交請求
2、通過MD5動態簽名方式加密

1.5 API ID / API KEY

登錄用戶中心,進入【語音通知】模塊,在【產品總攬】頁面右上角,如下圖所示:

1.6 語音模版

語音通知模板是對您將要發送的語音進行相似性提取后的內容。舉個例子,

A 用戶是您的老會員,即將過生日,需要發送一條語音短信,內容如下:
您的客戶張茜將于 2 天后過生日,別忘記注意祝福哦~
同時,B 用戶是您的老會員,即將過生日,發送了如下語音短信:
您的客戶趙鑫將于 3 天后過生日,別忘記注意祝福哦~
我們提取相似度以后,可以制作以下語音模板:
您的客戶【變量】將于 【變量】天后過生日,別忘記注意祝福哦~
其中,變量是可變的,可以是 數字、字母、漢字。

2、語音短信發送

2.1 接口描述

通過POST、 GET 方式進行短信提交,數據編碼采用utf-8格式,24小時全天發送。

2.2 請求地址

        http://api.vm.ihuyi.com/webservice/voice.php?method=Submit

2.3 請求參數

參數名稱 參數值描述 必填
account APIID(用戶中心【語音通知】-【產品縱覽】查看)
password 1、APIKEY(用戶中心【語音通知】-【產品縱覽】查看)
2、動態密碼(生成動態密碼方式請看該文檔末尾的說明)
mobile 接收手機號碼,只能提交一個號碼
content 語音通知內容(編碼格式為 UTF-8,支持 180 個字)
例如:您的訂單號是:9633。已由順風快遞發出,請注意查收。
time Unix時間戳(10位整型數字,當使用動態密碼方式時為必填)
format 返回格式(可選值為:xml或json,系統默認為xml)

用戶通過http 或 https提交發送短信請求到服務器后,服務器會返回一串xml格式的字符串,SubmitResult結構說明如下:

參數名稱 類型 描述
code int 返回值為2時,表示提交成功
voiceid string 當提交成功后,此字段為流水號,否則為0
msg string 提交結果描述

2.4 響應示例

示例(成功)

  2         提交成功 60495654 

示例(失敗)

  405 用戶名或密碼不正確 0     

2.5 響應參數

code msg
0 提交失敗
2 提交成功
400 非法ip訪問
401 帳號不能為空
402 密碼不能為空
403 手機號碼不能為空
4030 手機號碼已被列入黑名單
404 語音內容不能為空
405 用戶名或密碼不正確
4050 賬號被凍結
4051 剩余條數不足
4052 訪問 ip 與備案 ip 不符
406 手機格式不正確
407 短信內容含有敏感字符
4071 沒有提交備案模板
4072 提交的語音內容必須與報備過的模板格式相匹配
40722 變量內容超過指定的長度
408 您的帳戶疑被惡意利用,已被自動凍結,如有疑問請與客服聯系

2.6 GET 請求示例

        http://api.vm.ihuyi.com/webservice/voice.php?method=Submit&account=APIID& password=APIKEY&mobile=手機號碼&content=您的訂單號是:0648。已由順風快遞 發出,請注意查收。

3、余額查詢

3.1 接口描述

通過接口可以方便的查詢你的賬戶驗證碼通知短信剩余條數。

3.2 請求地址

http://api.vm.ihuyi.com/webservice/voice.php?method=GetNum
    

3.3 請求參數

參數名稱 參數值描述 是否必填
account APIID(請登錄用戶中心【語音通知】-【產品縱覽】查看)
password 1、APIKEY(請登錄用戶中心【語音通知】-【產品縱覽】查看)
2、動態密碼(生成動態密碼方式請看該文檔末尾的說明)
time Unix時間戳(10位整型數字,當使用動態密碼方式時為必填)
format 返回格式(可選值為:xml或json,系統默認為xml)

用戶通過http 或 https提交帳戶余額查詢請求到服務器后,服務器會返回一串xml格式的字符串,GetNumResult結構說明如下:

參數名稱 類型 描述
code int 狀態返回值
msg string 查詢結果描述
num string 剩余數量

3.4 響應示例

示例(成功)

  2 查詢成功 856         

示例(失敗)

  405 用戶名或密碼不正確 0 

3.5 響應參數

code msg
2 查詢成功
400 非法ip訪問
401 帳號不能為空
402 密碼不能為空
405 用戶名或密碼不正確
4050 賬號被凍結

3.6 GET請求示例

    http://api.vm.ihuyi.com/webservice/voice.php?method=GetNum&account=APIID&password=APIKEY

4、發送回執推送

4.1 接口描述

用戶先提供數據接收地址,然后綁定到互億無線系統后臺,平臺會以POST方式實時的將回執信息推送到此地址。

4.2 推送參數

參數名稱 參數值描述
code 狀態值(2 成功 0 失敗)
msg 回執狀態說明
mobilephone 手機號碼
talktime 接聽時間(秒)
voiceid 流水號(對應提交時返回的voiceid)
report_time 回執時間 例:2018-05-24 17:46:50

注意: 成功接收請輸出字符 “success” (不包含引號)結束推送,否則以接收失敗處理。 每個回執最多推送 3 次。每次間隔疊加 60 秒。

code 參數說明

code msg
2 成功
0 未知錯誤
-1 關機
-2 停機
-3 暫時無法接通
-4 正在通話
-5 空號
-6 無人接聽
-7 開通來電提醒
-8 呼入限制
-9 網絡忙
-10 呼出限制
-11 線路忙
-12 用戶拒接
-13 呼叫轉移
-14 傳真機摘機識別
-15 自動應答機摘機識別
-16 自然人摘機識別
-17 接通無人回話
-18 呼叫超時
-19 無應答
-20 呼叫超時
-21 空白
-22 呼叫失敗

5、生成動態密碼方式

以PHP為例,提交語音驗證碼的生成方式:

$time = time();
$password = md5($account.$apikey.$mobile.$content.$time);

例如:

    APIID: test
    APIKEY:1q784322ba1d9bb88d50cf5cdfd89k7d
    手機號:138xxxxxxxx
    內容:1125
    time:1451544941
    結果: $password=md5('test1q784322ba1d9bb88d50cf5cdfd89k7d138xxxxxxxx11251451 544941');

查詢剩余條數的生成方式:

$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

6、常見問題

6.1 如何實現 UNIX 時間戳

語言 代碼
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 的時間戳;
VBScript / ASP DateAdd("s", Unix timestamp, "01/01/1970 00:00:00")
VB6 DateDiff("s", "1970-1-1 0:0:0", ToUnixTime)
易語言 時間_到時間戳()

7、語音驗證碼 DEMO

語言 DEMO 地址
PHP http://www.jkullu.live/demo/voice_notice/asp.html
JAVA http://www.jkullu.live/demo/voice_notice/php.html
ASP http://www.jkullu.live/demo/voice_notice/jsp.html
ASP.NET(C#) http://www.jkullu.live/demo/voice_notice/aspx.html
JSP http://www.jkullu.live/demo/voice_notice/c.html
C http://www.jkullu.live/demo/voice_notice/cpp.html
C++ http://www.jkullu.live/demo/voice_notice/go.html
GO http://www.jkullu.live/demo/voice_notice/java.html
PYTHON http://www.jkullu.live/demo/voice_notice/python.html
SHELL http://www.jkullu.live/demo/voice_notice/shell.html
VB6 http://www.jkullu.live/demo/voice_notice/vb6.html
其他時段:
159 0212 0971



逍遥骑士电子游戏 天津时时彩最新开奖视频 永兴国际棋牌下载 呼和浩特一条龙桑拿服务 广东好彩1什么时候买 天天彩选4开奖走势图 上海快3开奖结果走势图图表 支付宝天天红包赛攻略 辽宁11选5 中国足球彩票比分直中国足彩网 四川金7乐开奖三不同单式票 安徽快3遗漏数据大全 秒速牛牛怎么老输 p3开机号 北京pk拾是骗局吗 填大坑棋牌规则 山东11选5最大遗