ASP.NET MVC阿里大于短信接口開發(fā)短信群發(fā)能
互聯(lián)網(wǎng)上有許多公司提供短信接口服務(wù),諸如網(wǎng)易云信、阿里大于等等。我在自己項(xiàng)目里需要使用到短信服務(wù)起到通知作用,實(shí)際開發(fā)周期三天,完成配置、開發(fā)和使用,總的說,阿里大于提供的接口易于開發(fā),非常的方便,短信費(fèi)用是計(jì)數(shù)繳納的,作為個(gè)人開發(fā)者,我使用的服務(wù)業(yè)務(wù)產(chǎn)生的費(fèi)用為0.045¥/條(10萬條以下)。
現(xiàn)在要實(shí)現(xiàn)一個(gè)例會(huì)短信群發(fā)通知的功能,所有被通知對(duì)象信息均存于Mysql中,應(yīng)用架構(gòu)采用asp.net MVC 。首先準(zhǔn)備好獲取的API各項(xiàng)(以下各項(xiàng)服務(wù)參數(shù)都需要在大于官網(wǎng)上申請(qǐng)),
申請(qǐng)好自己的短信簽名與短信模板,根據(jù)服務(wù)商的要求需要這些參數(shù):
ITopClient client = new DefaultTopClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.Extend = "" ;//可空,返回狀態(tài) req.SmsType = "normal" ;//不可更改 req.SmsFreeSignName = "" ;//申請(qǐng)的短信簽名,不可填寫與申請(qǐng)的不一 req.SmsParam = "" ;//短信模板中的變量如:{name} req.RecNum = "13000000000" ;//手機(jī)號(hào)碼 req.SmsTemplateCode = "" ;//短信模板的編號(hào),不可出錯(cuò) AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); Console.WriteLine(rsp.Body);
具體開發(fā)中,需要注意到的是這一段代碼是官方提供的樣品,在寫短信發(fā)送函方法時(shí),將它粘貼再進(jìn)行開發(fā)即可。其中模板變量的配對(duì)尤其關(guān)鍵:
req.SmsParam = "" ;//短信模板中的變量如:{name}
在這種情況下,對(duì)字符串拼接要有基本功,由于是類json化的,所以
req.SmsParam ="{number:'" + Password + "'}";//去掉雙引號(hào)則是{number:‘Password'}
說完細(xì)節(jié)之后,開始在本機(jī)上的項(xiàng)目里引用編譯好的dll,該dll文件可在阿里大于官網(wǎng)https://www.alidayu.com/center/application/sdk下載zip壓縮包,解壓即可得到生成好的dll.之后寫一個(gè)可以發(fā)送短信的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";//默認(rèn)normal不可改動(dòng) req.SmsFreeSignName = "院紅會(huì)網(wǎng)宣";//短信簽名必填 req.SmsParam = "{number:'" + Password + "'}";//模板內(nèi)參數(shù)必填 req.RecNum = phonenum;//手機(jī)號(hào)碼必填 req.SmsTemplateCode = "SMS_******";//不可改動(dòng) AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); }
這個(gè)方法是我為管理員找回密碼開發(fā)的,其中需要注意一下,傳入?yún)?shù)phonenum,Password,在傳入前從數(shù)據(jù)庫中調(diào)出,不得為空。
ITopClient client = new DefaultTopClient(url, appkey, secret);
這其中的url在官方中給出了兩個(gè),我傾向于https,這樣數(shù)據(jù)傳輸更安全。具體選擇請(qǐng)參考阿里大于官網(wǎng)文檔。
AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
//這個(gè)對(duì)象實(shí)例化后,才是api發(fā)送方法調(diào)用的最后一步,在這之前,每一項(xiàng)都要正確,出錯(cuò)可以使用Console.WriteLine(rsp.Body);
//顯示出錯(cuò)誤信息
對(duì)于如何實(shí)現(xiàn)的群發(fā)功能,寫一個(gè)SendSmsForMeetingTime(string name, string time, string phonenum, string department, string minister)方法函數(shù),我使用了List<Model>,將數(shù)據(jù)庫中的多條數(shù)據(jù)讀入List中,使用foreach(var item in list),在每一次遍歷中調(diào)用一次SendSmsForMeetingTime;當(dāng)遍歷完成之時(shí),每一個(gè)通知對(duì)象的信息傳入方法參數(shù)中,方法執(zhí)行完后之后,便實(shí)現(xiàn)了調(diào)用。
在這里說明一下接口調(diào)用,短信經(jīng)過的流程。用戶客戶端/用戶服務(wù)器——>阿里大于服務(wù)器——>移動(dòng)/電信/聯(lián)通運(yùn)營商服務(wù)器——>對(duì)象可接受短信服務(wù)終端。實(shí)際上,阿里大于也是調(diào)用的運(yùn)營商的接口,只是阿里大于將接口封裝到便宜開發(fā),而我們開發(fā)者在這基礎(chǔ)上能完成第三方接口開發(fā),這些開發(fā)也僅限制于服務(wù)商封裝了哪些接口,開發(fā)者無法調(diào)用服務(wù)商未封裝的接口。
以上便是我在實(shí)際項(xiàng)目中調(diào)用API的實(shí)例經(jīng)驗(yàn),項(xiàng)目也經(jīng)歷了用戶的使用檢驗(yàn),目前未出狀況,這也說明了阿里大于在短信接口服務(wù)這塊,信息傳達(dá)的效率還是業(yè)內(nèi)良心。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET MVC后臺(tái)參數(shù)驗(yàn)證的幾種方式
- 詳解ASP.NET MVC的篩選器
- [Asp.Net MVC4]驗(yàn)證用戶登錄實(shí)現(xiàn)實(shí)例
- ASP.NET MVC下的四種驗(yàn)證編程方式[續(xù)篇]
- 靈活掌握Asp.net MVC中GridView的使用方法
- ASP.NET MVC 微信JS-SDK認(rèn)證
- Asp.net MVC中獲取控制器的名稱的方法
- ASP.NET MVC自定義錯(cuò)誤頁面真的簡單嗎?
- Asp.NET MVC中使用SignalR實(shí)現(xiàn)推送功能
- ASP.NET Core MVC 配置全局路由前綴
- ASP.NET MVC使用EPPlus,導(dǎo)出數(shù)據(jù)到Excel中
相關(guān)文章
asp.net下linkbutton的前后臺(tái)使用方法
asp.net LinkButton傳遞參數(shù)2008-08-08Hangfire在ASP.NET CORE中的簡單實(shí)現(xiàn)方法
下面小編就為大家分享一篇Hangfire在ASP.NET CORE中的簡單實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11ASP.NET中實(shí)現(xiàn)定制自己的委托和事件參數(shù)類
這篇文章主要介紹了ASP.NET中實(shí)現(xiàn)定制自己的委托和事件參數(shù)類,需要的朋友可以參考下2014-08-08使用 .NET MAUI 開發(fā) ChatGPT 客戶端的流程
最近?chatgpt?很火,由于網(wǎng)頁版本限制了 ip,還得必須開代理,用起來比較麻煩,所以我嘗試用 maui 開發(fā)一個(gè)聊天小應(yīng)用,結(jié)合 chatgpt 的開放 api 來實(shí)現(xiàn),這篇文章主要介紹了使用 .NET MAUI 開發(fā) ChatGPT 客戶端,需要的朋友可以參考下2022-12-12ASP.NET實(shí)現(xiàn)單點(diǎn)登陸(SSO)適用于多種情況
這篇文章主要介紹了ASP.NET在不同情況下實(shí)現(xiàn)單點(diǎn)登陸(SSO)的方法,在同主域但不同子域之間實(shí)現(xiàn)單點(diǎn)登陸等等2014-09-09ASP.NET編程獲取網(wǎng)站根目錄方法小結(jié)
這篇文章主要介紹了ASP.NET編程獲取網(wǎng)站根目錄方法,較為詳細(xì)的分析了ASP.NET針對(duì)網(wǎng)站目錄及物理路徑的操作技巧,并給出了實(shí)例予以總結(jié),需要的朋友可以參考下2015-11-11IE下document.referrer 拒絕訪問的解決方法
原理就是給IE瀏覽器的頁面偷偷加了個(gè)鏈接,然后自動(dòng)點(diǎn)這個(gè)鏈接,于是referrer就能保留了,感興趣的朋友可以參考下2013-09-09