java 集成腾讯云发送短信

时间:2019-02-20
本文章向大家介绍java 集成腾讯云发送短信,主要包括java 集成腾讯云发送短信使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

首先申请一个腾讯云的账户,登陆后访问以下网址

https://console.cloud.tencent.com/sms

新建一个应用

查看SDK AppID和App Key 

 

设置常量 SMSContentUtil中常量皆由腾讯云中申请

服务类代码

package com.util;

import com.github.qcloudsms.*;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;

import java.io.IOException;

/**
 * 短信服务类
 * 2018-05-16
 */
public  class SMSService {

    /**
     * 自定义短信内容发送
     * @param msg 短信内容
     * @param number 用户手机号
     * @return OK 成功  null 失败
     */
    public static String sendMess(String msg , String number){
        try {
            SmsSingleSender ssender = new SmsSingleSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
            SmsSingleSenderResult result = ssender.send(0, "86", number,
                    msg, "", "");
            System.out.print(result);
            return result.errMsg;
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 指定模板ID发送短信
     * @param number 用户手机号
     * @return OK 成功  null 失败
     */
    public static String sendMesModel(String number){
        try {
            String[] params = {"hello" , "1" };//{参数}
            SmsSingleSender ssender = new SmsSingleSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
            SmsSingleSenderResult result = ssender.sendWithParam("86", number,
                    SMSContentUtil.TTEMPLATEID, params, SMSContentUtil.SMSSIGN, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            System.out.print(result);
            return result.errMsg;//OK
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 群发自定义短信
     * @param msg 短信内容
     * @param numbers 用户手机号数组
     * @return OK 成功 null 失败
     */
    public static String sendMesModel(String msg , String[] numbers){
        try {
            SmsMultiSender msender = new SmsMultiSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
            SmsMultiSenderResult result =  msender.send(0, "86", numbers,
                    msg, "", "");
            System.out.print(result);
            return result.errMsg;
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 指定模板ID群发
     * @param numbers 用户手机号数组
     * @return OK 成功 null 失败
     */
    public static String sendMesModel(String[] numbers){
        try {
            String[] params = {"hello" , "1" };
            SmsMultiSender msender = new SmsMultiSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
            SmsMultiSenderResult result =  msender.sendWithParam("86", numbers,
                    SMSContentUtil.TTEMPLATEID, params, SMSContentUtil.SMSSIGN, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            System.out.print(result);
            return result.errMsg;
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 发送语音消息
     * @param number 用户手机号
     * @param msg 语音消息内容
     * @return OK 成功 null 失败
     */
    public static String sendMesVoice(String msg , String number){
        try {
            SmsVoiceVerifyCodeSender vvcsender = new SmsVoiceVerifyCodeSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
            SmsVoiceVerifyCodeSenderResult result = vvcsender.send("86",number,
                    msg, 2, "");
            System.out.print(result);
            return result.errMsg;
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        }
        return null;
    }

}