java对接腾讯云短信平台详细代码

在项目中集成一下短信功能。对比了几个服务商,最终选择了腾讯云,因为他每个月免费送100条。

一、申请API

 1. 注册腾讯云实名认证后,开通短信服务。

    2. 获取AppID和AppK待用。

    

    3. 创建短信签名模板和短信正文模板。系统说半日内审核,我的不到五分钟就审核通过,点赞。

        审核过程中可能需要上传一些证明,我用的是网站备案后台的截图。

   二、调用API

1. 引入依赖包 

  <dependency>
     <groupId>com.github.qcloudsms</groupId>
     <artifactId>qcloudsms</artifactId>
     <version>1.0.5</version>
  </dependency>


2、发送短信工具类
import java.io.IOException;
import com.alibaba.fastjson.JSONException;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;

public class SMSUtil {
    public static String sendSMS(String phoneNumber,String code) {
        String reStr = ""; //定义返回值
        // 短信应用SDK AppID   // 1400开头       
        int appid = ;       
        // 短信应用SDK AppKey        
        String appkey = "";        
        // 短信模板ID,需要在短信应用中申请       
        int templateId =  ;        
        // 签名,使用的是`签名内容`,而不是`签名ID`        
        String smsSign = "";        
        try {
            //参数,一定要对应短信模板中的参数顺序和个数, 
            String[] params = {code};
            //创建ssender对象
            SmsSingleSender ssender = new SmsSingleSender(appid, appkey);     
            //发送
            SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber,templateId, params, smsSign, "", "");  
            // 签名参数未提供或者为空时,会使用默认签名发送短信            
            System.out.println(result.toString());
            if(result.result==0){
                reStr = "success";
            }else{
                reStr = "error";
            }
        } catch (HTTPException e) {          
            // HTTP响应码错误           
            e.printStackTrace();         
        } catch (JSONException e) {            
            // json解析错误            
            e.printStackTrace();        
        } catch (IOException e) {
            // 网络IO错误            
            e.printStackTrace();        
        }catch (Exception e) {            
            // 网络IO错误            
            e.printStackTrace();        
        }
        return reStr;    
    }

}

 

3、Controller调用SMSUtils

  @RequestMapping("/send")
    @ResponseBody
    public String send(String phone,String code){
        String result = SMSUtil.sendSMS("17620937694", "123456");
        if(result.equals("success")){
            return "发送成功!";
        }else{
            return "发送失败!";
        }
    }

完成。。。。