本教程可以實(shí)現(xiàn)給指定手機(jī)號發(fā)含驗(yàn)證碼的短信,用于驗(yàn)證手機(jī)號真實(shí)性或驗(yàn)證操作安全性。
一、注冊、報(bào)備及設(shè)置
注冊云片,完成資質(zhì)報(bào)備、簽名報(bào)備及模板報(bào)備。tips:
- 報(bào)備可以讓產(chǎn)品經(jīng)理、運(yùn)營等業(yè)務(wù)人員完成。
- 開發(fā)階段,建議先關(guān)閉IP 白名單,或?qū)⒎?wù)器 IP 及本地 IP 均設(shè)置在 IP 白名單內(nèi)。
- 為了避免開發(fā)調(diào)試中,您的手機(jī)號被系統(tǒng)防騷擾機(jī)制攔截,可以在測試白名單填寫您的手機(jī)號。
二、調(diào)通短信接口
方法一:使用單條發(fā)送短信接口 API 直接開發(fā)
特別注意:驗(yàn)證碼建議使用"單條發(fā)送短信接口"
HTTP 頭信息:
Accept:application/json;charset=utf-8; Content-Type:application/x-www-form-urlencoded;charset=utf-8;
請求
- URL:
https://sms.yunpian.com/v2/sms/single_send.json
- 注意:海外服務(wù)器地址 us.yunpian.com
- Http Method:POST
- 支持 https 與 http 兩種訪問,建議使用 https
請求參數(shù)
參數(shù)名 | 類型 | 是否必傳 | 是否默認(rèn)開放 | 描述 | 示例 |
apikey | string | 是 | 是 | 用戶唯一標(biāo)識,在管理控制臺獲取 | 9b11127a9701975c734b8aee81ee3526 |
mobile | string | 是 | 是 | 接收的手機(jī)號,僅支持單號碼發(fā)送; | 15205201314 |
text | string | 是 | 是 | 已審核短信模板 | 【云片網(wǎng)】您的驗(yàn)證碼是 1234 |
extend | string | 否 | 否 | 下發(fā)號碼擴(kuò)展號,純數(shù)字 | 001 |
uid | string | 否 | 否 | 該條短信在您業(yè)務(wù)系統(tǒng)內(nèi)的 ID,如訂單號或者短信發(fā)送記錄流水號。默認(rèn)不開放,如有需要請聯(lián)系客服申請。 | 10001 |
callback_url | string | 否 | 是 | 短信發(fā)送后將向這個(gè)地址推送(運(yùn)營商返回的)發(fā)送報(bào)告。 如推送地址固定,建議在"數(shù)據(jù)推送與獲取”做批量設(shè)置。 如后臺已設(shè)置地址,且請求內(nèi)也包含此參數(shù),將以請求內(nèi)地址為準(zhǔn) |
|
register | boolean | 否 | 否 | 是否為注冊驗(yàn)證碼短信,如果傳入 true,則該條短信作為注冊驗(yàn)證碼短信統(tǒng)計(jì)注冊成功率,需聯(lián)系客服開通。 | true |
附注:如需使用"extend""uid"參數(shù),可免費(fèi)向客服申請。
請求示例
/** * 單條短信發(fā)送,智能匹配短信模板 * @param apikey成功注冊后登錄云片官網(wǎng),進(jìn)入后臺可查看 * @param text需要使用已審核通過的模板或者默認(rèn)模板 * @param mobile接收的手機(jī)號,僅支持單號碼發(fā)送 * @return json格式字符串 */ public static String singleSend(String apikey, String text, String mobile) { Map<String, String> params = new HashMap<String, String>(); params.put("apikey", apikey); params.put("text", text); params.put("mobile", mobile); return post("https://sms.yunpian.com/v2/sms/single_send.json", params); }
響應(yīng)
名稱 | 類型 | 描述 |
code | integer | 0 代表發(fā)送成功,其他 code 代表出錯(cuò),詳細(xì)見"返回值說明"頁面 |
msg | text | 例如""發(fā)送成功"",或者相應(yīng)錯(cuò)誤信息 |
count | integer | 發(fā)送成功短信的計(jì)費(fèi)條數(shù)(計(jì)費(fèi)條數(shù):70 個(gè)字一條,超出 70 個(gè)字時(shí)按每 67 字一條計(jì)費(fèi)) |
fee | double | 扣費(fèi)金額,單位:元,類型:雙精度浮點(diǎn)型/double |
unit | string | 計(jì)費(fèi)單位;例如:“RMB” |
mobile | string | 發(fā)送手機(jī)號 |
sid | long(64 位) | 短信 id,64 位整型, 對應(yīng) Java 和 C#的 long,不可用 int 解析 |
Json 返回示例
{ "code": 0, "msg": "發(fā)送成功", "count": 1, "fee": 0.05, "unit": "RMB", "mobile": "13200000000", "sid": 3310228982 }
方法二:下載、導(dǎo)入 SDK,并配置
目前云片提供 JAVA/PHP/Python/C#/Golang 5 種語言 SDK、如果您的編程語言云片未提供 SDK,您可以根據(jù)文檔自行對接。
SDK 下載地址(JAVA/PHP/Python/C#/GOLANG):去下載
JAVA SDK 示例
/** * 使用SDK發(fā)送單條短信,智能匹配短信模板 * * @param apikey 成功注冊后登錄云片官網(wǎng),進(jìn)入后臺可查看 * @param text 需要使用已審核通過的模板或者默認(rèn)模板 * @param mobile 接收的手機(jī)號,僅支持單號碼發(fā)送 */ public static void testSendSms(String apikey, String mobile, String text) { //初始化client,apikey作為所有請求的默認(rèn)值(可以為空) YunpianClient clnt = new YunpianClient("apikey").init(); Map<String, String> param = clnt.newParam(2); param.put(YunpianClient.MOBILE, mobile); param.put(YunpianClient.TEXT, "【云片網(wǎng)】您的驗(yàn)證碼是1234"); Result<SmsSingleSend> r = clnt.sms().single_send(param); //獲取返回結(jié)果,返回碼:r.getCode(),返回碼描述:r.getMsg(),API結(jié)果:r.getData(),其他說明:r.getDetail(),調(diào)用異常:r.getThrowable() r.getData(); //賬戶:clnt.user().* 簽名:clnt.sign().* 模版:clnt.tpl().* 短信:clnt.sms().* 語音:clnt.voice().* 流量:clnt.flow().* 隱私通話:clnt.call().* //最后釋放client clnt.close() }
三、實(shí)現(xiàn)業(yè)務(wù)邏輯
- 生成短信內(nèi)容,調(diào)用發(fā)送接口,傳入 APIKEY、手機(jī)號、內(nèi)容等參數(shù)發(fā)送短信。
- 短信內(nèi)容需和通過審核的模板匹配上才能發(fā)送,如不匹配接口會返回報(bào)錯(cuò)信息,報(bào)錯(cuò)記錄在后臺失敗請求頁可以看到。
- 如不確定內(nèi)容是否匹配,后臺模板報(bào)備頁有測試匹配功能。
- 如短信驗(yàn)證接口用于 web、移動網(wǎng)頁版,需在注冊頁增加圖形驗(yàn)證碼避免惡意轟炸消耗賬戶余額(什么是驗(yàn)證碼轟炸?)。 iOS 及 Android APP 無需在注冊頁添加圖形驗(yàn)證碼。
四、按需開發(fā)功能
- 開發(fā)注冊成功回調(diào)接口,統(tǒng)計(jì)到短信驗(yàn)證碼發(fā)送效果,用戶注冊成功率。
- 對短信發(fā)送狀態(tài)做實(shí)時(shí)監(jiān)控
如果您需要通過程序?qū)Χ绦诺陌l(fā)送狀態(tài)做實(shí)時(shí)監(jiān)控,可以開發(fā)“推送/獲取狀態(tài)報(bào)告”接口。
如果只是想了解短信發(fā)送狀態(tài),無實(shí)時(shí)監(jiān)控需求,云片管理控制臺-國內(nèi)短信-數(shù)據(jù)統(tǒng)計(jì) 可以看到實(shí)時(shí)及歷史的到達(dá)率、發(fā)送量、接口失敗原因等報(bào)表。
- 獲取上行短信
如果您的業(yè)務(wù)中,需獲取用戶回復(fù)的上行短信,可以開發(fā)“推送回復(fù)短信 API”。通過這個(gè)接口,如果用戶回復(fù)了您的短信,云片會第一時(shí)間推送給您。
- 國外地區(qū)使用海外服務(wù)器
如海外用戶可以調(diào)用海外服務(wù)器地址us.yunpian.com,獲得更快的請求和處理速度。例如使用短信接口時(shí),將sms.yunpian.com替換為us.yunpian.com即可。