阿里云短信发送API(SendSms)的集成

好记性不如烂笔头,记录一下集成阿里云短信平台的过程。

平台申请的过程略过,只讲代码有关的内容,首先是配置需要的依赖包:

<!-- begin of aliyun sms -->    
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>4.0.6</version>
    </dependency>

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
      <version>1.1.0</version>
    </dependency>
    <!-- end of aliyun sms -->  

发送短信的方法:

   /**
	 * 
	 * @date 2018年8月7日下午3:20:30
	 * @author key_artist 
	 * @todo TODO  提醒短信
	 */
	public void sendMsg(String mobilephone) {
		String accessKeyId = null;
		String accessKeySecret = null;
		String signName = null;
		String templateCode = null;
		
		PropertiesUtils.load("/parameter.properties");
		accessKeyId = PropertiesUtils.get("alisms.accessKeyId");
		accessKeySecret = PropertiesUtils.get("alisms.accessKeySecret");
		signName = PropertiesUtils.get("alisms.signName");
        //自定义的短信模板编码,在阿里云短信平台中心配置
		templateCode = "";
		
		System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

        //初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-beijing", accessKeyId, accessKeySecret);
        try {
			DefaultProfile.addEndpoint("cn-beijing", "cn-beijing", Constant.SMS_PRODUCT, Constant.SMS_DOMAIN);
		} catch (ClientException e) {
			logger.error("sendNoticeSMS-->error");
		}
        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待发送手机号
        request.setPhoneNumbers(mobilephone);
        //必填:短信签名-可在短信控制台中找到
        request.setSignName(signName);
        //必填:短信模板-可在短信控制台中找到
        request.setTemplateCode(templateCode);
        //可选:模板中的变量替换JSON串
        //request.setTemplateParam(templateParam);
        //选填-上行短信扩展码(无特殊需求用户请忽略此字段)
        //request.setSmsUpExtendCode("");

        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");

        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = null;
		try {
			sendSmsResponse = acsClient.getAcsResponse(request);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

配置文件(parameter.properties),接入的key,申请接入的时候有,请将*替换成自己的内容

alisms.accessKeyId = ****
alisms.accessKeySecret = ****
alisms.endpoint = ****
alisms.topic = ****
alisms.signName = ****

完成上述步骤你就成功的接入了阿里云的短信接口,快去试试吧,如果你和我一样遇到了找不到JSONObject(Gson)的错误,可以参考一下我的另一篇文章:接入发送短信报ClassNotFoundException: com.google.gson.JsonParser

猜你喜欢

转载自blog.csdn.net/key_artist/article/details/81629903