阿里大魚短信介入demo分享

下面是關于大魚短信平臺對接的例子,發短信的話,可以用這個,很好用

/*** 通過阿里短信接口發送短信驗證碼* ***/
public class SendSmsUtil {private static Logger logger = Logger.getLogger(SendSmsUtil.class);/*** 生成驗證碼* @return*/public static String getCaptcha() {String str = "0,1,2,3,4,5,6,7,8,9";String str2[] = str.split(",");// 將字符串以,分割Random rand = new Random();// 創建Random類的對象randint index = 0;String randStr = "";// 創建內容為空字符串對象randStrrandStr = "";// 清空字符串對象randStr中的值for (int i = 0; i < 4; ++i) {index = rand.nextInt(str2.length - 1);// 在0到str2.length-1生成一個偽隨機數賦值給indexrandStr += str2[index];// 將對應索引的數組與randStr的變量值相連接}return randStr;}/*** 阿里短信的通用配置* @throws ClientException*/public static IAcsClient aliSmsConfig() {//設置超時時間-可自行調整System.setProperty("sun.net.client.defaultConnectTimeout", "10000");System.setProperty("sun.net.client.defaultReadTimeout", "10000");//初始化ascClient需要的幾個參數final String product = "Dysmsapi";//短信API產品名稱(短信產品名固定,無需修改)final String domain = "dysmsapi.aliyuncs.com";//短信API產品域名(接口地址固定,無需修改)//替換成你的AKfinal String accessKeyId = ConstantUtils.ACCESS_KEY_ID;//你的accessKeyId,參考本文檔步驟2final String accessKeySecret = ConstantUtils.ACCESS_KEY_SECRET;//你的accessKeySecret,參考本文檔步驟2//初始化ascClient,暫時不支持多region(請勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);} catch (ClientException e) {e.printStackTrace();}IAcsClient acsClient = new DefaultAcsClient(profile);return acsClient;}/**** @param templateCode      短信模板編號* @param telephone         手機號,可多個,以','隔開,最多1000* @param templateParam     變量內容* @return* @throws ServerException* @throws ClientException*/public static String sendSms(String templateCode, String telephone, String templateParam){IAcsClient acsClient = aliSmsConfig();//組裝請求對象SendSmsRequest request = new SendSmsRequest();//使用post提交request.setMethod(MethodType.POST);//必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式request.setPhoneNumbers(telephone);//必填:短信簽名-可在短信控制臺中找到request.setSignName(ConstantUtils.SIGN_NAME);//必填:短信模板-可在短信控制臺中找到request.setTemplateCode(templateCode);//可選:模板中的變量替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為//友情提示:如果JSON中需要帶換行符,請參照標準的JSON協議對換行符的要求,比如短信內容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導致JSON在服務端解析失敗if(!StringUtil.isEmpty(templateParam)){request.setTemplateParam(templateParam);}//可選-上行短信擴展碼(擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段)//request.setSmsUpExtendCode("90997");//可選:outId為提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者
//       request.setOutId("yourOutId");//請求失敗這里會拋ClientException異常SendSmsResponse sendSmsResponse = null;try {sendSmsResponse = acsClient.getAcsResponse(request);} catch (ServerException e) {e.printStackTrace();return "fail";} catch (ClientException e) {e.printStackTrace();return "fail";}if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {//請求成功logger.info("短息發送成功!手機號:" + telephone);return "success";} else {logger.error("短信發送失敗!手機號:" + telephone + "|返回錯誤碼:" + sendSmsResponse.getCode());return "fail";}}public static void main(String[] args) throws ServerException, ClientException {String code = getCaptcha();System.out.println("驗證碼為:" + code);String templateCode = ConstantUtils.CAPTCHA_TEL_CODE;String recNum = "18612349630";
//      String templateParam = "{\"code\":\"" + code +"\"}";
//      System.out.println("templateParam:" + templateParam);
//      sendSms(templateCode, recNum, templateParam);String templateParam = "{\"" + ConstantUtils.CODE_CAPTCHA_VAR_NAME + "\":\"" + code + "\"}";
//      String templateParam = "{\"" + ConstantUtils.NAME_FRANCHISEE_VAR_NAME + "\":\"" + name + "\"}";System.out.println("templateParam:" + templateParam);sendSms(templateCode, recNum, templateParam);}
}

轉載于:https://blog.51cto.com/13587708/2119430

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277962.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GraphAPI 1.0中新增加的Teams API

這篇繼續介紹BUILD大會里的內容&#xff1a;兩個新加入GraphAPI 1.0的關于Teams的API。 這兩個新增api是關于在頻道Channel里發送消息和回復消息的。實際上這兩個api在beta版本中早就已經加入&#xff0c;上個月build大會中公布的只是把這兩個api正式發布到1.0版本&#xff0c…

【數據結構】線性表(一):順序列表

線性表(linear_list)是最常用且最簡單的一種數據結構&#xff0c;簡言之&#xff0c;一個線性表是n個數據元素的有序序列。 例如&#xff1a;&#xff08;a1 , ... , ai-1 , ai , ai1 , ... , an)&#xff1a;ai-1 是 ai 的直接前驅&#xff0c;ai1 是 ai 的直接后驅。 并且&am…

Python_XlrdXlwt

1 import xlrd 2 # \U 開始的字符被編譯器認為是八進制 解決方法 r 3 objWB xlrd.open_workbook(rC:\Users\IBM\Desktop\S1\7月下旬入庫表.xlsx) 4 # 索引號 objTable objWB.sheet_by_index(0) 5 objTable objWB.sheet_by_name(7月下旬入庫表) 6 # 單元格3種讀取方式 7 print…

校招需要看的書 鞏固的知識

前言 感謝教練&#xff0c;學長們&#xff0c;隊友&#xff0c;lollipop&#xff0c;貓哥&#xff0c;李哥&#xff0c;表哥&#xff0c;雞哥&#xff0c;樣樣&#xff0c;咸糖&#xff0c;茗記&#xff0c;明沙&#xff0c;嘻&#xff0c;樹佬(排名不分先后)等等太多太多的人的…

新的Teams API權限控制

這篇繼續介紹BUILD大會里的內容&#xff1a;新的Teams API權限。這些新的權限讓開發者可以更加細粒度的設置權限。 之前有些開發人員有問過我&#xff0c;為什么Graph API的權限這么多&#xff0c;為什么不針對Teams弄一個總的權限&#xff0c;這樣不是更加簡單嗎&#xff1f;…

物料主數據(MM03)跳轉函數

CP_08_MATERIAL_SHOW 使用感覺能使自己的代碼顯得更改高端些。 其中參數MTSTA_IMP的選值參照表T132。轉載于:https://www.cnblogs.com/tangcy1110/p/9081380.html

二叉樹的蛇形遍歷 leetcode 103

給定一個二叉樹&#xff0c;返回其節點值的鋸齒形層次遍歷。&#xff08;即先從左往右&#xff0c;再從右往左進行下一層遍歷&#xff0c;以此類推&#xff0c;層與層之間交替進行&#xff09;。 例如&#xff1a;給定二叉樹 [3,9,20,null,null,15,7], 3/ \9 20/ \15 7返回…

Teams Tab的Single Sign-On

在我寫這篇文章的時候&#xff0c;這個SSO機制還是在 Developer Preview 階段&#xff0c;可能在發布前還會有一些改進。不過我覺得這個功能很好&#xff0c;所以先和大家分享一下。 如果大家之前已經開發過Teams的tab應用&#xff0c;可能會發現如果你需要一個當前用戶的toke…

vim編輯器的使用--轉自MJ學長

一、引言 1. vim是一款功能強大的文本編輯器&#xff0c;如果使用熟練&#xff0c;將會有效幫助我們提高編輯文本、程序的效率。vim編輯器的上手使用門檻比較高&#xff0c;很多人怯于要記很多命令&#xff0c;往往在學習的初期階段就望而卻步。 2. vim的學習需要不斷的練習、使…

算法引入

算法的概念&#xff1a; 解決問題的思路。 時間復雜度&#xff1a; 定義&#xff1a; 基本運算的執行數量。是算法效率的衡量的量。 計算準則&#xff1a; 基本操作&#xff1a;即只有常數項。復雜度認為1順序&#xff0c;按照加法計算循環&#xff0c;按照乘法計算條件。按照最…

如何開發Teams Bot

很多朋友問我如何開發一個成功的Teams Bot&#xff0c;他們說Bot Framework SDK看起來簡單&#xff0c;但是真要的去開發一款成熟的bot&#xff0c;很多地方還是不知道如何使用。我從最早的bot framework還在beta的時候開始用&#xff0c;后來framework經歷了多次大的改動&…

[CF903G]Yet Another Maxflow Problem

[CF903G]Yet Another Maxflow Problem 題目大意&#xff1a; 有\(A\)類點和\(B\)類點各\(n(n\le2\times10^5)\)個&#xff0c;所有\(A_i\)到\(A_{i1}\)有一條權值為\(a_i\)的有向邊&#xff0c;所有\(B_i\)到\(B_{i1}\)有一條權值為\(b_i\)的有向邊&#xff0c;另有\(m(m\le2\t…

P1579哥德巴赫猜想

寫來自己學習用~ 題目內容&#xff1a; 1742年6月7日哥德巴赫寫信給當時的大數學家歐拉&#xff0c;正式提出了以下的猜想&#xff1a;任何一個大于9的奇數都可以表示成3個質數之和。質數是指除了1和本身之外沒有其他約數的數&#xff0c;如2和11都是質數&#xff0c;而6不是質…

在VSCode Remote環境下開發Teams Bot

我使用VS Code開發已經有蠻長一段時間了&#xff0c;時間長了&#xff0c;越來越喜歡VS Code&#xff0c;雖然有些時候會沒有傳統的VS方便&#xff0c;比如開發Azure Function時你需要編寫一下launch.json&#xff0c;而且你需要手動啟動StorageEmulator&#xff0c;但是也正是…

查看安卓APK源碼破解

原文:查看安卓APK源碼破解工具準備&#xff1a; <1>.android4me的AXMLPrinter2工具 <2>dex2jar <3>jd-gui 工具下載&#xff1a;http://download.csdn.net/detail/catshitone/8491347 開始&#xff1a; 第一步&#xff1a; 首先用解壓軟件&#xff08;如好…

實驗六:類的封裝

一、實驗代碼如下&#xff1a; 1 package 實驗6;2 3 import java.util.Scanner;4 5 6 public class Account {7 8 public int id;9 public String name;10 public long number;11 public long time;12 public int money;13 14 //方法Account()…

Teams Bot開發系列:初識Bot

上次我們講了Teams Bot開發的概述&#xff0c;講了Azure Bot Service&#xff0c;Bot Framework SDK和我們自己的bot服務的概念&#xff0c;這篇文章就帶大家看看Azure Bot Service和我們的bot是如何發生關系的。 我們自己開發的bot服務實際上就是一個api service&#xff0c;…

[環境搭建]SDN網絡感知服務與最短路徑應用

1.安裝python模塊networkxpip install networkx2.給Network_Awareness.py加修改權限chmod 777 Network_Awareness.py3.下載安裝ryugit clone git://github.com/osrg/ryu.gitcd ryu sudo python ./setup.py install#若已安裝ryu,刪了再裝&#xff0c; pip uninstall ryu4.修改“…

我需要別人承認才快樂嗎?

關于生命的感悟兩個故事第一個故事&#xff0c;一個尖子生考上了麻省理工學院&#xff0c;在那里所有同學都很優秀&#xff0c;競爭非常強烈&#xff0c;她發現再也不能出類拔萃&#xff0c;在各方面贏過別人&#xff0c;于是覺得生活看不到希望&#xff0c;郁郁寡歡&#xff0…

Teams Bot開發系列:Activity和Turn

這篇文章我們來說一下Activity和Turn這兩個bot framework中最重要的兩個概念&#xff0c;同時也介紹一下TurnContext和BotAdapter Activity 一個activity是聊天雙方的一個信息載體&#xff0c;它可以是一條消息&#xff0c;也可以是一個動作。比如用戶給bot發送一條文字消息&…