网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法
生活随笔
收集整理的這篇文章主要介紹了
网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天我想了一天如何實(shí)現(xiàn)網(wǎng)站用戶在忘記了密碼后,如何通過向手機(jī)發(fā)送驗(yàn)證碼來重新設(shè)置密碼。驗(yàn)證碼的驗(yàn)證以及生成都已經(jīng)做好了,現(xiàn)在主要是解決如何向用戶手機(jī)發(fā)送短信。顯然這需要一個(gè)第三方提供的短信接口,來幫助我們實(shí)現(xiàn)向用戶手機(jī)發(fā)送驗(yàn)證碼短信。這里有一個(gè)非常好的第三方借口。連接地址:http://www.xhsms.com/jiekou.aspx。他提供了一個(gè)很好的短信接口,簡(jiǎn)單易用。下面是我自己參考寫的一段測(cè)試代碼:
package com.im;
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;
public class SmsBase {
private Integer x_eid = 0;//會(huì)員企業(yè)ID號(hào),個(gè)人用戶為0
private String x_uid = "yourname";//會(huì)員賬號(hào)
private String x_pwd_md5 = "e10adc3949ba59abbe56e057f20f883e";//登陸密碼的MD5值32位
private Integer x_gate_id = 300;//發(fā)送短信時(shí)通道ID,通道發(fā)送失敗可以切換其它通道,無該值系統(tǒng)使用默認(rèn)通道
public String SendSms(String mobile, String content) throws UnsupportedEncodingException{
Integer x_ac = 10;//發(fā)送信息
HttpURLConnection httpconn = null;
String x_memo = content.trim();//發(fā)送短信內(nèi)容
StringBuilder sb = new StringBuilder();
sb.append("http://gateway.woxp.cn:6630/utf8/web_api/?x_eid=");
sb.append(x_eid);
sb.append("&x_uid=").append(x_uid);
sb.append("&x_pwd_md5=").append(x_pwd_md5);
sb.append("&x_ac=").append(x_ac);
sb.append("&x_gate_id=").append(x_gate_id);
sb.append("&x_target_no=").append(mobile);
sb.append("&x_memo=").append(URLEncoder.encode(x_memo, "utf-8"));
String result = "-20";
System.out.println(sb.toString());
try {
URL url = new URL(sb.toString());
httpconn = (HttpURLConnection) url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(httpconn.getInputStream()));
result = rd.readLine();
rd.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="18782962370";
String content="Hello";
try {
String result = new SmsBase().SendSms(mobile, content);
System.out.println(result);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
| 網(wǎng)頁中參數(shù)詳細(xì)列表 | |||
| 編號(hào) | 參數(shù)名稱 | 參數(shù)說明 | 是否必須 |
| 1 | x_eid | 會(huì)員企業(yè)ID號(hào),個(gè)人用戶為0 | 是 |
| 2 | x_uid | 會(huì)員賬號(hào) | 是 |
| 3 | x_pwd_md5 | 登陸密碼的MD5值 | 是 |
| 4 | x_new_pwd | 修改密碼時(shí)需要此參數(shù)。代表要變更的新密碼 | 否 |
| 5 | x_sub_id | 擴(kuò)展子號(hào)碼,發(fā)送短信時(shí)需要,根據(jù)通道是否支持子號(hào)碼擴(kuò)展而提供 | 否 |
| 6 | x_target_no | 接受者號(hào)碼,多個(gè)號(hào)碼用“,”分開 | 否 |
| 7 | x_memo | 短信發(fā)送內(nèi)容.長(zhǎng)度請(qǐng)參考通道說明(必須使用URL編碼) | 否 |
| 8 | x_send_time | 定時(shí)短信,格式Y(jié)YYY-MM-DD HH:MM:SS,24小時(shí)制.值為空或無該參數(shù)代表立即發(fā)送 | 否 |
| 9 | x_gate_id | 發(fā)送短信時(shí)通道ID,通道發(fā)送失敗可以切換其它通道,無該值系統(tǒng)使用默認(rèn)通道 | 否 |
| 10 | x_ac | 本此提交的行為。比如是發(fā)送短信。查詢余額,參數(shù)值如下 | 是 |
| 參數(shù)x_ac(提交動(dòng)作)值 | ||||
| 編號(hào) | 值 | 說明 | ||
| 1 | 10 | 發(fā)送短信。返回失敗或成功 | ||
| 2 | 12 | 長(zhǎng)短信發(fā)送,最多支持450字符發(fā)送.64字每條計(jì)費(fèi).(請(qǐng)使用POST方式提交參數(shù)) | ||
| 3 | 20 | 查詢上行短信,分主動(dòng)(客戶自已獲取)和被動(dòng)(我們推送到指定地址)兩種方式 1.被動(dòng)接收客戶.需要提交接收上行短信的URL地址(POST+XML)方式內(nèi)容utf-8編碼 2.主動(dòng)接收短信,直接調(diào)用AC=20即可. 被動(dòng)接收提示: .NET文件調(diào)用.需要在頭設(shè)置ValidateRequest="false"參數(shù).否則返回HTTP 500服務(wù)器內(nèi)部錯(cuò)誤 |
||
| 4 | 30 | 查詢當(dāng)前戶剩余條數(shù) | ||
| 5 | 40 | 獲取指定通道的關(guān)鍵字屏蔽字符串,發(fā)送前先過濾關(guān)鍵字再提交 | ||
| 參數(shù)x_ac=10發(fā)送短信時(shí)。返回值 | ||||
| 編號(hào) | 值 | 說明 | ||
| 1 | 大于0 | 發(fā)送成功,此次發(fā)送成功條數(shù) | ||
| 2 | -1 | 參數(shù)無效 | ||
| 3 | -2 | 通道不存在或者當(dāng)前業(yè)務(wù)不支持此通道 | ||
| 4 | -3 | 定時(shí)格式錯(cuò)誤 | ||
| 5 | -4 | 接收號(hào)碼無效 | ||
| 6 | -5 | 提交號(hào)碼個(gè)數(shù)超過上限,每個(gè)通道都有批量提交的上限.詳細(xì)值請(qǐng)參考通道說明 | ||
| 7 | -6 | 發(fā)送短信內(nèi)容長(zhǎng)度不符合要求,參考通道要求長(zhǎng)度 | ||
| 8 | -7 | 當(dāng)前賬戶余額不足 | ||
| 9 | -8 | 網(wǎng)關(guān)發(fā)送短信時(shí)出現(xiàn)異常 | ||
| 10 | -9 | 用戶或者密碼沒輸入 | ||
| 11 | -10 | 企業(yè)ID或者會(huì)員賬號(hào)不存在 | ||
| 12 | -11 | 密碼錯(cuò)誤 | ||
| 13 | -12 | 賬戶鎖定 | ||
| 14 | -13 | 網(wǎng)關(guān)狀態(tài)關(guān)閉 | ||
| 15 | -14 | 驗(yàn)證用戶時(shí)執(zhí)行異常 | ||
| 16 | -15 | 網(wǎng)關(guān)初始化失敗 | ||
| 17 | -16 | 當(dāng)前IP已被系統(tǒng)屏蔽,可能是與您設(shè)置的接入IP不同或者是失敗次數(shù)太多 | ||
| 18 | -17 | 發(fā)送異常 | ||
| 19 | -18 | 賬號(hào)未審核 | ||
| 20 | -19 | 當(dāng)前時(shí)間不允許此通道工作,主要對(duì)群發(fā)通道限制 | ||
| 21 | -20 | 傳輸密鑰未設(shè)置,請(qǐng)登陸平臺(tái)設(shè)置 | ||
| 22 | -21 | 提取密鑰異常 | ||
| 23 | -22 | 簽名驗(yàn)證失敗 | ||
| 24 | -23 | 發(fā)現(xiàn)屏蔽關(guān)鍵字 | ||
| 25 | -100到-199 | 運(yùn)營商返回失敗代碼 | ||
總結(jié)
以上是生活随笔為你收集整理的网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有道单词本导出xml转换.
- 下一篇: coredump