java发送短信功能工具类及思路详解

//发送短信功能的思路 下面则是工具类
异常返回0 发送短信失败可以result==0进行判断 则 返回失败信息
如果成功 则返回验证码信息 可以存session
并设置session时间 session.setMaxInactiveInterval(60*5);
设置session时间 后期验证可以获取session 如果session为空
则验证码已经过期 否则等于session则设置session为空 并返回成功

package com.kero99.ygc.sms;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
 *   接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。
 *   账户注册:请通过该地址开通账户http://sms.ihuyi.com/register.html
 *   注意事项:
 *  (1)调试期间,请用默认的模板进行测试,默认模板详见接口文档;
 *  (2)请使用APIID(查看APIID请登录用户中心->验证码、通知短信->帐户及签名设置->APIID)及 APIkey来调用接口,APIkey在会员中心可以获取;
 *  (3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;
 */
public class SendUtils {
    private static String Url = "http://106.ihuyi.cn/webservice/sms.php?method=Submit";
    public static int sendSms(String phone){

        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", "C72562***"), //查看用户名请登录用户中心->验证码、通知短信->帐户及签名设置->APIID
                new NameValuePair("password", "ad95c26915ec51bd68d87a72***"),  //查看密码请登录用户中心->验证码、通知短信->帐户及签名设置->APIKEY
                //new NameValuePair("password", util.StringUtil.MD5Encode("密码")),
                new NameValuePair("mobile", phone), //手机号码
                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("短信提交成功");
                return mobile_code;    
            }else return 0;

        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }
    //测试
    public static void main(String[] args) {
        sendSms("13521******");
    }
}



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南归北隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值