ASP.NET MVC阿里大於簡訊介面開發簡訊群發能

高洛峰
發布: 2016-12-24 13:50:46
原創
1684 人瀏覽過

        網路上有許多公司提供簡訊介面服務,諸如網易雲信、阿里大於等等。我在自己專案裡需要使用到簡訊服務起到通知作用,實際開發週期三天,完成配置、開發和使用,總的說,阿里大於提供的接口易於開發,非常的方便,短信費用是計數繳納的,作為個人開發者,我所使用的服務業務所產生的費用為0.045¥/條(10萬條以下)。

  現在要實作一個例會簡訊群發通知的功能,所有被通知物件資訊都存於Mysql中,應用架構採用asp.net MVC 。首先準備好取得的API各項(以下各項服務參數都需要在大於官網上申請),

ASP.NET MVC阿里大于短信接口开发短信群发能

申請好自己的短信簽名與短信模板,根據服務商的要求需要這些參數:

ITopClient client = new DefaultTopClient(url, appkey, secret);
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.Extend = "" ;//可空,返回状态
req.SmsType = "normal" ;//不可更改
req.SmsFreeSignName = "" ;//申请的短信签名,不可填写与申请的不一
req.SmsParam = "" ;//短信模板中的变量如:{name}
req.RecNum = "13000000000" ;//手机号码
req.SmsTemplateCode = "" ;//短信模板的编号,不可出错
AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
Console.WriteLine(rsp.Body);
登入後複製

具體開發中,需要注意到的是這段代碼是官方提供的樣品,在寫短信發送函方法時,將它粘貼再進行開發即可。其中模板變數的配對尤其關鍵:

req.SmsParam = "" ;//簡訊範本中的變數如:{name}

在這種情況下,對字串拼接要有基本功,由於是類json化的,所以

req.SmsParam ="{number:'" + Password + "'}";//去掉雙引號則是{number:'Password'} 

說完細節之後,開始在本機上的專案裡引用編譯好的dll,該dll檔案可在阿里大於官網https://www.alidayu.com/center/application/sdk下載zip壓縮包,解壓縮即可得到生成好的dll.之後寫一個可以發送簡訊的void方法, 

public void SmsSendForFindPassword(string phonenum,string Password)
 {
 string url = "https://eco.taobao.com/router/rest";
 string appkey = "********";
 string secret = "**********************";
 ITopClient client = new DefaultTopClient(url, appkey, secret);
 AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
 req.Extend = "";
 req.SmsType = "normal";//默认normal不可改动
 req.SmsFreeSignName = "院红会网宣";//短信签名必填
 req.SmsParam = "{number:'" + Password + "'}";//模板内参数必填
 req.RecNum = phonenum;//手机号码必填
 req.SmsTemplateCode = "SMS_******";//不可改动
 AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
 }
登入後複製

   

這個方法是我為管理員找回密碼開發的,其中需要注意一下,傳入參數phonenum,Password,在傳入前從資料庫中調出,不得為空。

ITopClient client = new DefaultTopClient(url, appkey, secret);

這其中的url在官方中給了兩個,我傾向於https,這樣資料傳輸更安全。具體選擇請參考阿里大於官網文件。

AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);

//這個物件實例化後,api傳送方法呼叫的最後一步,在這之前,每一項都要正確,出錯可以使用Console.WapiLine (rsp.Body);

//顯示出錯誤訊息

  對於如何實現的群發功能,寫一個SendSmsForMeetingTime(string name, string time, string phonenum, string deList 函數,我使用了string deminister) ,將資料庫中的多條資料讀入List中,使用foreach(var item in list),在每一次遍歷中呼叫一次SendSmsForMeetingTime;當遍歷完成之時,每一個通知對象的信息傳入方法參數中,方法執行完後之後,便實現了呼叫。

  在這裡說明一下介面調用,簡訊經過的流程。使用者客戶端/使用者伺服器->阿里大於伺服器->行動/電信/聯通運營商伺服器->物件可接受簡訊服務終端。實際上,阿里大於也是調用的運營商的接口,只是阿里大於將接口封裝到便宜開發,而我們開發者在這基礎上能完成第三方接口開發,這些開發也僅限制於服務商封裝了哪些接口,開發者無法呼叫服務商未封裝的介面。

  以上便是我在實際專案中呼叫API的實例經驗,專案也經歷了使用者的使用檢驗,目前未出狀況,這也說明了阿里大於在簡訊介面服務這塊,訊息傳達的效率還是業內良心。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持PHP中文網。


更多ASP.NET MVC阿里大於簡訊介面開發簡訊群發能相關文章請關注PHP中文網!


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板