阿里云sms短信服务工具类

阿里云sms短信服务工具类

package com.pwd.sms;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.parse.json.mapper.JsonMapper;
import com.sms.response.ResultInfo;
import com.spring.utils.Global;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Map;

public class SmsUtil {
    private static final DefaultProfile profile = DefaultProfile.getProfile( Global.getConfig("aliyun.sms.regionId"), Global.getConfig("aliyun.sms.accessKeyId"), Global.getConfig("aliyun.sms.secret"));
    private static final IAcsClient client = new DefaultAcsClient(profile);
    private static final String ALIYUN_DOMAIN	= "dysmsapi.aliyuncs.com";
    private static final String ALIYUN_Version	= "2017-05-25";
    private static final String ALIYUN_SENDSMS	= "SendSms";
    private static final String ALIYUN_SENDBATCHSMS	= "SendBatchSms";
    /**
     *
     * @param mobile 手机号
     * @param templateCode 模板code 
     * @param templateParam 参数 {"code":"786523"}
     * @param signName   签名  
     * @return
     */
    public static ResultInfo sendSms(String mobile, String templateCode, String templateParam, String signName) {
       /* if (logger.isDebugEnabled()) {
            logger.debug("sendSms(String=" + mobile + ", String=" + templateCode + ",String= "+templateParam+",String="+signName+") - 开始");
        }*/
        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.setResult("0");
        request.setMethod(MethodType.POST);
        request.setDomain(ALIYUN_DOMAIN);
        request.setVersion(ALIYUN_Version);
        request.setAction(ALIYUN_SENDSMS);
        request.putQueryParameter("RegionId", Global.getConfig("aliyun.sms.regionId"));
        request.putQueryParameter("PhoneNumbers", mobile);
        request.putQueryParameter("TemplateCode", templateCode);
        request.putQueryParameter("TemplateParam", templateParam);
        request.putQueryParameter("SignName", signName);
        try {
            CommonResponse response = client.getCommonResponse(request);
            Map<String,Object> map = JsonMapper.getInstance().fromJson(response.getData(), Map.class);
            if (map==null) {
                resultInfo.setResult("调用接口返回接口异常:结果为空");
               /* if (logger.isDebugEnabled()) {
                    logger.debug("sendSms(String=" + mobile + ", String=" + templateCode + ",String= "+templateParam+",String="+signName+") - 结束 - 返回值:"+resultInfo);
                }*/
                return  resultInfo;
            }
            resultInfo.setResult(map.get("Message")!=null&& StringUtils.equals("OK",map.get("Message").toString())?"0":"1");
            resultInfo.setMessage(map.get("Message")!=null?map.get("Message").toString():"");
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
         /* if (logger.isDebugEnabled()) {
            logger.debug("sendSms(String=" + mobile + ", String=" + templateCode + ",String= "+templateParam+",String="+signName+") - 结束 - 返回值:"+resultInfo);
        }*/
        return resultInfo;
    }
    /**
     *
     * @param phoneNumberJson 手机号 ["手机号1","手机号2"]
     * @param templateCode 模板code 
     * @param templateParamJson 参数 [{"name":"TemplateParamJson",{"name":"TemplateParamJson"}]
     * @param signNameJson   签名  ["签名1","签名2"]
     * @return
     */
    public static ResultInfo sendBatchSms(String phoneNumberJson, String templateCode, String templateParamJson, String signNameJson) {
       /* if (logger.isDebugEnabled()) {
            logger.debug("sendBatchSms(String=" + phoneNumberJson + ", String=" + templateCode + ",String= "+templateParamJson+",String="+signNameJson+") - 开始");
        }*/
        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
        ResultInfo resultInfo = new ResultInfo();
        resultInfo.setResult("0");
        request.setMethod(MethodType.POST);
        request.setDomain(ALIYUN_DOMAIN);
        request.setVersion(ALIYUN_Version);
        request.setAction(ALIYUN_SENDBATCHSMS);
        request.putQueryParameter("RegionId", Global.getConfig("aliyun.sms.regionId"));
        request.putQueryParameter("PhoneNumberJson", phoneNumberJson);
        request.putQueryParameter("TemplateCode", templateCode);
        request.putQueryParameter("TemplateParamJson", templateParamJson);
        request.putQueryParameter("SignNameJson", signNameJson);
        try {
            CommonResponse response = client.getCommonResponse(request);
            Map<String,Object> map = JsonMapper.getInstance().fromJson(response.getData(), Map.class);
            if (map==null) {
                resultInfo.setResult("调用接口返回接口异常:结果为空");
              /*  if (logger.isDebugEnabled()) {
                    logger.debug("sendBatchSms(String=" + phoneNumberJson + ", String=" + templateCode + ",String= "+templateParamJson+",String="+signNameJson+") - 结束 - 返回值:"+resultInfo);
                }*/
                return  resultInfo;
            }
            resultInfo.setResult(map.get("Message")!=null&& StringUtils.equals("OK",map.get("Message").toString())?"0":"1");
            resultInfo.setMessage(map.get("Message")!=null?map.get("Message").toString():"");
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
       /* if (logger.isDebugEnabled()) {
            logger.debug("sendBatchSms(String=" + phoneNumberJson + ", String=" + templateCode + ",String= "+templateParamJson+",String="+signNameJson+") - 结束 - 返回值:"+resultInfo);
        }*/
        return resultInfo;
    }
    public static void main(String[] args) {
        String mobile = "";
        String templateCode = "";
        String templateParam = "{\"code\":\"786523\"}";
        String signName = "四川";
        sendSms(mobile, templateCode, templateParam, signName);
    }

}

获取配置的方法

	/**
	 * 获取配置
	 */
	public static String getConfig(String key) {
		 String value=SpringContextHolder.getApplicationContext().getEnvironment().getProperty(key);
		if(StringUtils.isBlank(value)){
			value=SpringContextHolder.getBean(Property.class).getValueByKey(key);
		}
		return value;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值