zoukankan      html  css  js  c++  java
  • 网站登录密码忘记后,通过向手机发送验证码实现找回密码的实现方法

    今天我想了一天如何实现网站用户在忘记了密码后,如何通过向手机发送验证码来重新设置密码。验证码的验证以及生成都已经做好了,现在主要是解决如何向用户手机发送短信。显然这需要一个第三方提供的短信接口,来帮助我们实现向用户手机发送验证码短信。这里有一个非常好的第三方借口。连接地址:http://www.xhsms.com/jiekou.aspx。他提供了一个很好的短信接口,简单易用。下面是我自己参考写的一段测试代码:

    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;//会员企业ID号,个人用户为0
    	private String x_uid = "yourname";//会员账号
    	private String x_pwd_md5 = "e10adc3949ba59abbe56e057f20f883e";//登陆密码的MD5值32位
    	private Integer x_gate_id = 300;//发送短信时通道ID,通道发送失败可以切换其它通道,无该值系统使用默认通道
    	
    	public String SendSms(String mobile, String content) throws UnsupportedEncodingException{
    		
    		Integer x_ac = 10;//发送信息
    		HttpURLConnection httpconn = null;
    		String x_memo = content.trim();//发送短信内容
    		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();
    		}
    	}
    }



    网页中参数详细列表
    编号 参数名称 参数说明 是否必须
    1 x_eid 会员企业ID号,个人用户为0
    2 x_uid 会员账号
    3 x_pwd_md5 登陆密码的MD5值
    4 x_new_pwd 修改密码时需要此参数。代表要变更的新密码
    5 x_sub_id 扩展子号码,发送短信时需要,根据通道是否支持子号码扩展而提供
    6 x_target_no 接受者号码,多个号码用“,”分开
    7 x_memo 短信发送内容.长度请参考通道说明(必须使用URL编码)
    8 x_send_time 定时短信,格式YYYY-MM-DD HH:MM:SS,24小时制.值为空或无该参数代表立即发送
    9 x_gate_id 发送短信时通道ID,通道发送失败可以切换其它通道,无该值系统使用默认通道
    10 x_ac 本此提交的行为。比如是发送短信。查询余额,参数值如下


    参数x_ac(提交动作)值
    编号 说明
    1 10 发送短信。返回失败或成功
    2 12 长短信发送,最多支持450字符发送.64字每条计费.(请使用POST方式提交参数)
    3 20 查询上行短信,分主动(客户自已获取)和被动(我们推送到指定地址)两种方式
    1.被动接收客户.需要提交接收上行短信的URL地址(POST+XML)方式内容utf-8编码
    2.主动接收短信,直接调用AC=20即可.
    被动接收提示: .NET文件调用.需要在头设置ValidateRequest="false"参数.否则返回HTTP 500服务器内部错误
    4 30 查询当前户剩余条数
    5 40 获取指定通道的关键字屏蔽字符串,发送前先过滤关键字再提交



    参数x_ac=10发送短信时。返回值
    编号 说明
    1 大于0 发送成功,此次发送成功条数
    2 -1 参数无效
    3 -2 通道不存在或者当前业务不支持此通道
    4 -3 定时格式错误
    5 -4 接收号码无效
    6 -5 提交号码个数超过上限,每个通道都有批量提交的上限.详细值请参考通道说明
    7 -6 发送短信内容长度不符合要求,参考通道要求长度
    8 -7 当前账户余额不足
    9  -8 网关发送短信时出现异常
    10  -9 用户或者密码没输入
    11  -10 企业ID或者会员账号不存在
    12  -11 密码错误
    13  -12 账户锁定
    14  -13 网关状态关闭
    15  -14 验证用户时执行异常
    16  -15 网关初始化失败
    17 -16 当前IP已被系统屏蔽,可能是与您设置的接入IP不同或者是失败次数太多
    18 -17 发送异常
    19 -18 账号未审核
    20 -19 当前时间不允许此通道工作,主要对群发通道限制
    21 -20 传输密钥未设置,请登陆平台设置
    22 -21 提取密钥异常
    23 -22 签名验证失败
    24 -23 发现屏蔽关键字
    25 -100到-199 运营商返回失败代码

  • 相关阅读:
    【待整理】转义字符
    关系运算符 与 逻辑运算符
    浏览器相关
    正则表达式
    样式定义——多重浏览器
    事件
    属性定义
    数组
    日期
    构造函数
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3184748.html
Copyright © 2011-2022 走看看