如何發(fā)送語音驗(yàn)證碼
本功能可以實(shí)現(xiàn)電話呼叫用戶手機(jī)并播放驗(yàn)證碼,默認(rèn)播放 2 次。如:您的驗(yàn)證碼是 1234
一、注冊、報備及設(shè)置
- 注冊云片,在控制臺首頁獲取 APIKEY。
- 開發(fā)階段,建議先關(guān)閉IP 白名單, 或?qū)⒎?wù)器 IP 及本地 IP 均設(shè)置在 IP 白名單內(nèi)。
二、調(diào)通語音接口
方法一:直接使用 API
HTTP 頭信息:
Accept:application/json;charset=utf-8; Content-Type:application/x-www-form-urlencoded;charset=utf-8;
請求
URL: https://voice.yunpian.com/v2/voice/send.json 注意:海外服務(wù)器地址 us.yunpian.com Http Method:POST 支持 https 與 http 兩種訪問,建議使用 https
請求參數(shù):
參數(shù)名 | 類型 | 是否必須 | 描述 | 示例 |
---|---|---|---|---|
apikey | String | 是 | 用戶唯一標(biāo)識 | 9b11127a9701975c734b8aee81ee3526 |
mobile | String | 是 | 接收的手機(jī)號、固話(需加區(qū)號) | 15205201314 01088880000 |
code | String | 是 | 驗(yàn)證碼,支持 4~6 位阿拉伯?dāng)?shù)字 | 1234 |
callback_url | String | 否 | 本條語音驗(yàn)證碼狀態(tài)報告推送地址。 如推送地址固定,建議在"數(shù)據(jù)推送與獲取”做批量設(shè)置。 | http://your_receive_url_address |
display_num | String | 否 | 透傳號碼,為保證全國范圍的呼通率,云片會自動選擇最佳的線路,透傳的主叫號碼也會相應(yīng)變化。此功能可能因運(yùn)營商政策隨時調(diào)整 | 400-089-2617 |
請求示例
/** * 發(fā)送語音驗(yàn)證碼 * @param apikey 成功注冊后登錄云片官網(wǎng),進(jìn)入后臺可查看 * @param code 驗(yàn)證碼,支持4~6位阿拉伯?dāng)?shù)字 * @param mobile 接收的手機(jī)號、固話(需加區(qū)號) * @return json格式字符串 */ public static String sendVoice(String apikey, String code, String mobile) { Map<String, String> params = new HashMap<String, String>();//請求參數(shù)集合 params.put("apikey", apikey); params.put("code", code); params.put("mobile", mobile); return post("https://voice.yunpian.com/v2/voice/send.json", params);//請自行使用post方式請求,可使用Apache HttpClient }
響應(yīng)
名稱 | 類型 | 描述 |
---|---|---|
count | integer | 成功發(fā)送的語音呼叫次數(shù) |
fee | double | 扣費(fèi)金額,單位:元,類型:雙精度浮點(diǎn)型/double |
sid | string | 記錄 id,32 位的唯一字符串 |
Json 返回示例
{ "count": 1, //成功發(fā)送的語音呼叫次數(shù) "fee": 0.05, //扣費(fèi)金額,一次語音驗(yàn)證碼呼叫扣一條 "sid": "931ee0bac7494aab8a422fff5c6be3ea" //記錄id,32位的唯一字符串 }
方法二:下載、導(dǎo)入 SDK,并配置。
目前云片提供 JAVA/PHP/Python/C#/Golang 5 種語言 SDK、如果您的編程語言云片未提供 SDK,您可以根據(jù)文檔自行對接。
SDK 下載地址(JAVA/PHP/Python/C#/GOLANG):去下載
SDK 示例
//初始化clnt,使用單例方式 YunpianClient clnt = new YunpianClient("apikey").init(); //發(fā)送語音驗(yàn)證碼API Map<String, String> param = clnt.newParam(2); param.put(YunpianClient.MOBILE, "1390********"); param.put(YunpianClient.CODE, "1234"); Result<VoiceSend> r = clnt.voice().send(param); //獲取返回結(jié)果,返回碼:r.getCode(),返回碼描述:r.getMsg(),API結(jié)果:r.getData(),其他說明:r.getDetail(),調(diào)用異常:r.getThrowable() //賬戶:clnt.user().* 簽名:clnt.sign().* 模版:clnt.tpl().* 短信:clnt.sms().* 語音:clnt.voice().* 流量:clnt.flow().* 隱私通話:clnt.call().* //釋放clnt clnt.close()
三、實(shí)現(xiàn)業(yè)務(wù)邏輯
- 建議和短信驗(yàn)證碼配合使用,默認(rèn)發(fā)送短信驗(yàn)證碼,如果用戶長時間未收到短信驗(yàn)證碼,可以建議用戶通過語言驗(yàn)證碼完成驗(yàn)證。
- web/手機(jī)版注冊頁需要使用添加圖形驗(yàn)證碼,避免接口被惡意攻擊。
四、按需開發(fā)功能
- 對語音發(fā)送狀態(tài)做實(shí)時監(jiān)控
如果您需要通過程序?qū)φZ音的發(fā)送狀態(tài)做實(shí)時監(jiān)控,可以開發(fā)“推送/獲取狀態(tài)報告”接口。
- 國外地區(qū)使用海外服務(wù)器
如海外用戶可以調(diào)用海外服務(wù)器地址us.yunpian.com,獲得更快的請求和處理速度。例如使用短信接口時,將sms.yunpian.com替換為us.yunpian.com即可。