短信验证码接口的实现

来源:互联网 发布:mysql 删除表怎么恢复 编辑:程序博客网 时间:2024/05/19 13:16

  代码:

sendsms.java

//接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。// 账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html// 注意事项://(1)调试期间,请用默认的模板进行测试,默认模板详见接口文档;//(2)请使用APIID(查看APIID请登录用户中心->验证码、通知短信->帐户及签名设置->APIID)及 APIkey来调用接口,APIkey在会员中心可以获取;import java.io.IOException;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.NameValuePair;import org.apache.commons.httpclient.methods.PostMethod;import org.dom4j.Document;   import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;   import org.dom4j.Element;   public class sendsms {private static String Url = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";public static void main(String [] args) {HttpClient client = new HttpClient(); PostMethod method = new PostMethod(Url);client.getParams().setContentCharset("GBK");method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=GBK");int mobile_code = (int)((Math.random()*9+1)*100000);  //随机数生成验证码    String content = new String("您的验证码是:" + mobile_code + "。请不要把验证码泄露给其他人。");NameValuePair[] data = {//提交短信    new NameValuePair("account", "C22613578"), //查看用户名请登录用户中心->验证码、通知短信->帐户及签名设置->APIID    new NameValuePair("password", "6dd1851e2511a426ee60a8b7177d33e"),  //查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY    //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),   //根据需要,可能要对密码进行加密    new NameValuePair("mobile", "18953532734"), //要发送验证码的手机号    new NameValuePair("content", content),};method.setRequestBody(data);try {client.executeMethod(method);String SubmitResult =method.getResponseBodyAsString();//System.out.println(SubmitResult);Document doc = DocumentHelper.parseText(SubmitResult);Element root = doc.getRootElement();String code = root.elementText("code");String msg = root.elementText("msg");String smsid = root.elementText("smsid");System.out.println(code);System.out.println(msg);System.out.println(smsid); if("2".equals(code)){System.out.println("短信提交成功");}} catch (HttpException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

StringUtil.java(工具类,备用)

package util;import java.security.MessageDigest;public class StringUtil {public static String str;public static final String EMPTY_STRING = "";private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5","6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };private static String byteToHexString(byte b) {int n = b;if (n < 0)n = 256 + n;int d1 = n / 16;int d2 = n % 16;return hexDigits[d1] + hexDigits[d2];}/** * 转换字节数组为16进制字串 * @param b 字节数组 * @return 16进制字串 */public static String byteArrayToHexString(byte[] b) {StringBuffer resultSb = new StringBuffer();for (int i = 0; i < b.length; i++) {resultSb.append(byteToHexString(b[i]));}return resultSb.toString();}public static String MD5Encode(String origin) {String resultString = null;try {resultString = new String(origin);MessageDigest md = MessageDigest.getInstance("MD5");resultString = byteArrayToHexString(md.digest(resultString.getBytes()));} catch (Exception ex) {}return resultString;}}

用户收到的短信验证码:


原创粉丝点击