摘要:[廣告] 簡訊王發送
這是一篇廣告文,非喜勿入。
應好友之邀 , 恰好公司未來有可能需要發送簡訊的功能,因此有了這篇文章的誕生。
目前有越來越多的網站會使用兩步驟驗證。
所謂的兩步驟驗證,就是當使用者躍登入系統(或操作重要功能時)在輸入帳密後,
會將系統隨機產生的驗證碼傳送到使用者註冊時所填入的Email 或是行動電話。
首先,我們至少需要兩個功能:
1. 產生認證碼 (GenerateAuthCode);
2. 寄送認證碼 (SendAuthCode)
然後,根據簡訊王API的說明文件:
我們必須要將資料以GET的方式傳送到指定的網址
因此,我們需要第三個功能:
3. 產生網址 (CreateUri)
在此,僅針對產生網址 跟 寄送認證碼兩個函數做說明。
根據簡訊王API的說明文件,寄送單一簡訊建議使用 kotsmsapi-1.php
使用參數包括需要
- 登入簡訊王所使用的會員名稱 (username)
- 登入簡訊王所使用的密碼 (password)
- 對方的手機門號 (dstaddr)
- 簡訊內容(smbody)
而簡訊內容應該使用Big5編碼並進行 Url編碼
因此 產生Uri的程式碼如下:
private string CreateUri(string phoneNumber, string content)
{
var srcEncoding = Encoding.UTF8;
var dstEncoding = Encoding.GetEncoding(950);
var source = srcEncoding.GetBytes(plainContent);
var converted = Encoding.Convert(srcEncoding, dstEncoding, source);
var encryptedContent = HttpUtility.UrlEncode(converted);
var UriFormattedString = "{0}?username={1}&password={2}&dstaddr={3}&smbody={4}";
return string.Format(UriFormattedString, ApiServer, UserName, Password, phoneNumber, encryptedContent );
}
產生完 Uri 之後,就可以發送簡訊了。
發送簡訊的程式碼參考如下:
private string SendAuthCode(string uri)
{
var responseString = string.Empty;
HttpWebRequest request = WebRequest.CreateHttp(uri);
request.Method = "Get";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
responseString = new StreamReader(stream).ReadToEnd();
}
}
return responseString;
}
發送簡訊之後如果成功會得到大於0的整數 代表簡訊編號,可做後續處理用;若是小於0代表有錯誤發生。
PS 1: 加入簡訊王會員之後,即可取得API說明文件
PS 2: 目前加入簡訊王會員可獲得20點供測試使用。