爲 Asp.net 網站新增發送手機短信功能

 本文旨在幫助那些爲網站發送手機短信正在尋求解決方案還未最終找到解決方案的朋友提供參考。web

    適合人羣 須知足一下條件之一,若是如下3個條件您都不知足,爲節約您寶貴的時間,請終止閱讀本篇文章。windows

    條件以下:api

         1.一條短信內容進行短信羣發的目標手機數量不能太大,不然出現嚴重的短信延時。網絡

         2.不想買短信貓之類的設備,同時又以爲部分國有電信單位提供的短信接口很差用,或者認爲其服務不夠好。app

         3.擔憂網絡上短信sp供應商信息不真實,畢竟大部分短信供應商不能經過當面交易。post

   看到這裏說明您對個人解決方案是感興趣的,我這樣解決的:網站

        找過幾家國有企業短信sp供應商,效果比我想象的要差不少,因而直接在網絡上找提供相似服務的短信供應商。發現有不少這樣的民營sp短信供應商的服務都是經過網銀或者支付寶進行購買。這又讓我擔憂是騙錢的。說實在的挺苦惱的,甚至有朋友建議直接買個幾百元的低端多普達,在windows mobile 內寫一個自動發送短信的功能充當短信貓。後來苦苦尋覓中我發現了 悠逸企業短信平臺(申明:無任何廣告嫌疑!)能夠購買一百元1000條手機短信並且註冊後能夠先試用10條短信。將10條試用完後,我用信用卡經過其網站購買了100元短信。心想若是被騙了,這樣損失也不會很大。詳細步驟以下:ui

       1.在其平臺上註冊一個屬於本身的用戶名。this

       2.在咱們的網站或者類庫中加入這段方法 (注:此方法不是官方提供的,是我看完官方的API後用C#編寫)編碼

複製代碼
1 public static bool SendMobileMsg( string msgContent, List < string > destListPhones) 2 { 3 try 4 { 5 bool result = false ; 6 string strPhones = string .Join( " ; " , destListPhones.ToArray()); 7 strPhones += " ; " ; 8 var encoding = System.Text.Encoding.GetEncoding( " GB2312 " ); 9 10 string postData = string .Format( " uid=用戶名&pwd=密碼&mobile={0};&msg={1}&dtime= " , strPhones, msgContent); 11 12 byte [] data = encoding.GetBytes(postData); 13 14 // 定義 WebRequest 15   HttpWebRequest myRequest = 16 (HttpWebRequest)WebRequest.Create( " http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/ " ); 17 18 myRequest.Method = " POST " ; 19 myRequest.ContentType = " application/x-www-form-urlencoded " ; 20 myRequest.ContentLength = data.Length; 21 22 Stream newStream = myRequest.GetRequestStream(); 23 24 // 發送數據 25   newStream.Write(data, 0 , data.Length); 26 newStream.Close(); 27 28 // 獲得 Response 29 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 30 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default); 31 string content = reader.ReadToEnd(); 32 33 if (content.Substring( 0 , 1 ) == " 0 " ) 34 result = true ; 35 else 36 { 37 if (content.Substring( 0 , 1 ) == " 2 " ) // 餘額不足 38 { 39 // "手機短信餘額不足"; 40 // TODO 41 } 42 else 43 { 44 //短信發送失敗的 其餘緣由,請參看官方API 45 } 46 result = false ; 47 } 48 49 return result; 50 } 51 catch 52 { 53 return false ; 54 } 55 56 }
複製代碼

很「乾淨」的調用,沒有WebService也沒有COM。

惟一要注意的就是編碼用 GB2312 不然您收到短信的中文部分都是亂碼,另外第10行的用戶名和密碼被硬編碼了,應寫在配置文件內。

最後,但願本篇可以幫助到您!

相關文章
相關標籤/搜索