java實現傳送手機驗證碼功能
阿新 • • 發佈:2019-02-11
2. 註冊好之後,點選 使用者中心 -> 賬戶管理,就會進入如下介面 (順便提一下,新註冊的使用者,平臺會免費贈送你10元,足夠大家學習和使用了,所以不用擔心需要充錢) 你需要做的就是獲取你自己的 ACCOUNT SID 和 AUTH TOKEN
3. 需要在秒嘀上新建一個傳送手機驗證碼的模板,點選 配置管理 -> 驗證碼簡訊模板,就會進入如下介面
4. 點選“新建模板”按鈕, 填寫好模板名稱、簡訊簽名 和 簡訊內容(簡訊內容可以選擇 驗證碼通知簡訊模板 或者 自己編寫簡訊內容),點選“提交稽核”按鈕即可,介面如下
5. 然後等待 簡訊驗證碼模板 稽核通過即可,點選 配置管理 -> 驗證碼簡訊模板,檢視 簡訊驗證碼 是否稽核通過
6. 接下來就是程式碼了,把我圈住的地方改成自己的就行,其他的不用動,tamp值 一定要與自己建立簡訊模板的簡訊內容保持一致
7. java簡訊傳送驗證碼
匯入阿里巴巴fastjson.jar包:
方式二:maven工程直接把 下面這段程式碼複製到 pom.xml 中就行
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
原始碼如下 :
package com.group.util; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.Date; import com.alibaba.fastjson.JSONObject; /** * * @Title:GetMessageCode * @Description:傳送驗證碼 * @author:ヅ零碎de記憶ぷ * @Date 2018年7月4日 下午9:27:04 */ public class GetMessageCode { private static final String QUERY_PATH = "https://api.miaodiyun.com/20150822/industrySMS/sendSMS"; private static final String ACCOUNT_SID = ""; private static final String AUTH_TOKEN = ""; // 根據相應的手機號傳送驗證碼 public static String getCode(String phone) { String rod = smsCode(); String timestamp = getTimestamp(); String sig = getMD5(ACCOUNT_SID, AUTH_TOKEN, timestamp); String tamp = "【聯途旅遊】尊敬的使用者,您好,您的驗證碼為:" + rod + ",若非本人操作,請忽略此簡訊。"; OutputStreamWriter out = null; BufferedReader br = null; StringBuilder result = new StringBuilder(); try { URL url = new URL(QUERY_PATH); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setDoInput(true);// 設定是否允許資料寫入 connection.setDoOutput(true);// 設定是否允許引數資料輸出 connection.setConnectTimeout(5000);// 設定連結響應時間 connection.setReadTimeout(10000);// 設定引數讀取時間 connection.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); // 提交請求 out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); String args = getQueryArgs(ACCOUNT_SID, tamp, phone, timestamp, sig, "JSON"); out.write(args); out.flush(); // 讀取返回引數 br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String temp = ""; while ((temp = br.readLine()) != null) { result.append(temp); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } JSONObject json = JSONObject.parseObject(result.toString()); String respCode = json.getString("respCode"); String defaultRespCode = "00000"; if (defaultRespCode.equals(respCode)) { return rod; } else { return defaultRespCode; } } // 定義一個請求引數拼接方法 public static String getQueryArgs(String accountSid, String smsContent, String to, String timestamp, String sig, String respDataType) { return "accountSid=" + accountSid + "&smsContent=" + smsContent + "&to=" + to + "×tamp=" + timestamp + "&sig=" + sig + "&respDataType=" + respDataType; } // 獲取時間戳 public static String getTimestamp() { return new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); } // sing簽名 public static String getMD5(String sid, String token, String timestamp) { StringBuilder result = new StringBuilder(); String source = sid + token + timestamp; // 獲取某個類的例項 try { MessageDigest digest = MessageDigest.getInstance("MD5"); // 要進行加密的東西 byte[] bytes = digest.digest(source.getBytes()); for (byte b : bytes) { String hex = Integer.toHexString(b & 0xff); if (hex.length() == 1) { result.append("0" + hex); } else { result.append(hex); } } } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result.toString(); } // 建立驗證碼 public static String smsCode() { String random = (int) ((Math.random() * 9 + 1) * 100000) + ""; return random; } }
8. 測試傳送手機簡訊驗證碼 原始碼如下 (手機號碼換成你想要傳送到指定手機的手機號碼即可)
package com.message.test;
public class Test {
public static void main(String[] args) {
String phone = "12345678910";
GetMessageCode.getCode(phone);
}
}
如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進群交流與分享,希望能夠跟大家交流學習!