Java --webservice发送验证短信

一、短信平台 --莫名短信

www.duanxin.cm/api.html

该平台可以加后缀和自己定义发送内容,用户接收到的短信示例如下:

123456【圈圈科技】

二、webservice核心代码

这个是springMVC框架下的实现层代码,注释都在里面

@Service
public class SendPhoneMessageServiceImpl implements SendPhoneMessageService{
    
    @Autowired
    private MessageMapper messageMapper;
    
    public ResultObject sendSMS(SMSParams message)
    {
        ResultObject resultObject = new ResultObject();
        resultObject.setResultCode(ResultCode.FAILED);
        
        //手机号码有效性判断
        if(!isMobile(message.getPhoneNumber())){
            resultObject.setResultMsg(ResultMsg.MSG_CHECKPHONE_FAILED);
            return resultObject;
        }
        
        //获取发送短信所需参数
        // 账号
        String smsAccount = "";
        // 密码
        String smsPwd = "";
        // 接口地址
        String smsURL = "";
        // 发送内容
        String smsContent = "";
        
        SMSInfo messageInfo = messageMapper.getSMSInfo();
        
        if(messageInfo != null)
        {
            //赋值
            smsAccount = messageInfo.getSmsAccount();
            smsPwd     = messageInfo.getSmsPwd();
            smsURL     = messageInfo.getSmsUrl();
            smsContent = messageInfo.getSmsContent();
                    
            //发送内容、地址不为空的情况
            if(!smsAccount.isEmpty() && !smsURL.isEmpty() && smsURL.indexOf("{ACCOUNT}") != -1)
            {
                try{
                    smsContent = URLEncoder.encode(smsContent,"UTF-8");
                }catch (UnsupportedEncodingException e)
                {
                    e.printStackTrace();
                }
                //用取到的数据代替设置的
                smsURL = smsURL.replace("{ACCOUNT}", smsAccount)
                        .replace("{PWD}", smsPwd)
                        .replace("{PHONE}", message.getPhoneNumber())
                        .replace("{MESSAGE}",smsContent);
            }
            // 发送短息
            System.out.println(smsURL);
            String retValue = requestURL(smsURL,"UTF-8");
            if(retValue.equals("100")){
                //发送成功
                resultObject.setResultCode(ResultCode.SUCCESS);
                resultObject.setResultMsg(ResultMsg.MSG_SEND_SUCCESS);
            }else{
                resultObject.setResultMsg(ResultMsg.MSG_GETSMSINFO_FAILED);
            }
        }else
        {
            resultObject.setResultMsg(ResultMsg.MSG_GETSMSINFO_FAILED);
        }
        
        return resultObject;
    }
    
    
    /** 
     * 手机号验证 
     *  
     * @param  str 
     * @return 验证通过返回true 
     */  
    public static boolean isMobile(String str) {   
        Pattern p = null;
        Matcher m = null;
        boolean b = false;
     // 验证手机号 
        p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); 
        m = p.matcher(str);
        b = m.matches();
        return b;
    }
    
    /** 
     * 网络请求
     *  
     * @param  String str 请求的网页地址
     * @param  String charSet 编码格式
     * @return String 网页返回值
     */
    private String requestURL(String URLStr, String charSet){
        // 网络的url地址 
        URL url = null;
        // 输入流
        BufferedReader in = null;
        StringBuffer sb = new StringBuffer();
        try{

            url = new URL(URLStr);
            in = new BufferedReader( new InputStreamReader(url.openStream(),charSet) );
            String str = null;
            while((str = in.readLine()) != null) {
                    sb.append(str);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println(ex.getMessage());
        } finally{
            try{
                if(in!=null) {
                    in.close();
                }
            }catch(Exception ex) {
            }
        }
        String result = sb.toString();
        System.out.println(result);

        return result;
    }
时间: 2024-10-28 13:03:18

Java --webservice发送验证短信的相关文章

java实现发送国际短信的功能

由于公司的客户遍布全球,最近会有一些要发送海外的短信的需求,所以今天想说下发送国际短信的功能,接入的手续和一般的短信验证码也差不太多.由于之前已经合作了互亿无线短信平台的短信验证码功能,那么顺理成章看看他们家有没有国际短信,结果对接起来也太方便了,代码也不怎么需要修改,接口改一下好了,很方便,用了个把小时就弄完了,新功能做得飞快,现在送上代码,你们可以参考一下,如果也同样接入互亿无线短信平台的朋友,可以直接用哈哈. ?/*** Created by bingone on 15/12/16.*/ 

第一次发博,发个简单的Java程序发送手机短信验证

最近在准备一个项目,想的登录时候用手机验证,就通过上网查阅了一下手机验证的实现方法,原来超级简单,下面将一步一步介绍. 1.去中国网建注册一个账号密码,首次注册送五条免费短信和3条免费彩信.具体的网址是 http://www.smschinese.cn/api.shtml 2.注册完成之后进去查看给你的短信秘钥 3.有了这个秘钥就超级简单了,导入jar包,下面的代码第一个基本不用该,直接粘贴,第二个改成自己的信息就可以了 1 package duanxinyanzheng; 2 3 4 impo

用JavaScript写一个简单的倒计时,可以应用在发送短信验证码的“59秒后重新发送验证短信”

倒计时——从10倒数到0,点击按钮会还原倒计时 <body> <!-- 将textvalue值设为10,从10倒数 --> <input type="text" value="10" id="txt"> <input type="button" value="重新开始" id="btn"> </body> <script&

JAVA发送手机短信

<p><span>JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵;</span></p> import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient

利用java实现的一个发送手机短信的小例子

今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,呵呵(3)使用中国网建提供的SMS短信平台(申请账号地址:http://sms.webchinese.cn/de

跟阿根一起学Java Web开发四:邮件发送与短信发送的实现

邮件发送与短信发送常见于用户注册认证以及系统消息提示功能模块,但实现代码过于繁琐:使用JSPGen后,深感其对邮件发送.短信发送的封装让复杂活变得简单很多. 一.基础配置 1.jspgen-config.xml 在框架基础配置文件中,找到mail节点及sms节点,按如下配置: <!-- 邮件服务 --> <mail status="true"> <smtp> <!-- 发送类型(SMTP MX) --> <type>SMTP&

简单实现发送手机短信

C#简单实现发送手机短信 偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,这个就不考虑了(3)使用中国网建提供的SMS短信平台,但是,用完几条免费的后,就要收费了. 首先,我用C#实现第一种方法,发现总是错误,这个不解,后来从网上查找原因,有的说,新浪这个功能已

C#_发送手机短信

偶然想起,像编写一个从电脑向手机发送短信的程序,从网上查找到有三种方式:(1)使用webservice接口发送手机短信,这个可以使用sina提供的webservice进行发送,但是需要进行注册;(2)使用短信mao的方式进行短信的发送,这种方式应该是比较的常用,前提是需要购买硬件设备,这个就不考虑了(3)使用中国网建提供的SMS短信平台,但是,用完几条免费的后,就要收费了. 首先,我用C#实现第一种方法,发现总是错误,这个不解,后来从网上查找原因,有的说,新浪这个功能已经不用了,我也不太清楚,就

手机验证短信设计与代码实现

手机验证短信设计与代码实现 总体思路 时效限制: [5-10min] 使用次数限制: 1次 IP次数限制: 防止恶意刷手机验证码短信 手机号限制: 防止短信轰炸 跨域请求限制: 进一步限制恶意刷短信 验证码验证: 进一步限制恶意刷短信 数据库设计 (CheckCode) ID mobile(手机号) checkCode(验证码) ip(IP地址) createAt(创建时间) expireAt(时效时间) isUse(是否使用) usingAt(使用时间) 具体代码实现(mongoose + n