今天我想了一天如何實現網站用戶在忘記了密碼后,如何通過向手機發送驗證碼來重新設置密碼。驗證碼的驗證以及生成都已經做好了,現在主要是解決如何向用戶手機發送短信。顯然這需要一個第三 方提供的短信接口,來幫助我們實現向用戶手機發送驗證碼短信。這里我通過朋友介紹使用的是動力思維樂信這家的短信接口,(接入文檔和代碼示例地址:http://www.lx598.com/document.html)接 入起來比較簡單,主要朋友告訴我,這家的短信響應速度快、到達率高、穩定,在這里也向大家推薦下,下面就拿我自己的網站,貼下實現代碼:
這個是后端的實現代碼:
package com.dlsw; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import java.util.Random; public class ShortMessage { private accName = 電話號或者郵箱號;//用戶賬號 private accPwd = "e10adc3949ba59abbe56e057f20f883e";//登陸密碼的MD5值32位 public String Send(String aimcodes, String content) throws UnsupportedEncodingException{ HttpURLConnection httpconn = null; String content = content.trim();//發送短信內容 StringBuilder sb = new StringBuilder(); sb.append("http://www.lx198.com/sdk/send?accName="); //第三方接口地址及參數 sb.append(accName); sb.append("&accPwd=").append(accPwd); sb.append("&aimcodes=").append(aimcodes); sb.append("&content=").append(URLEncoder.encode(content,"utf-8")); String result = false; System.out.println(sb.toString()); try { URL url = new URL(sb.toString()); httpconn = (HttpURLConnection) url.openConnection(); BufferedReader read = new BufferedReader(new InputStreamReader(httpconn.getInputStream())); result = read.readLine(); read.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally{ if(httpconn != null){ httpconn.disconnect(); httpconn = null; } } return result; } public static void main(String[] args) { String mobile="187xxxxxxxx"; String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);//隨機生成驗證碼 String content="您正在使用密碼找回功能,驗證碼為 " + verifyCode +"【動力思維】"; try { String result = new ShortMessage().Send(aimcodes, content); System.out.println(result); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }