Java 阿里大于短信功能

最近做了阿里大于短信的功能,记录一下

创建应用,并记录下应用的KeyId 及 KeySecret

下载sdk

准备完毕,直接上代码

随便弄个  controller 

	@ApiOperation("阿里大于短信发送")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType = "query", name = "mobile", value = "mobile", required = true, dataType = "String")
	})
	@PostMapping("/GetAliDySms")
	public JsonResult GetAliDySms(String mobile) {
		try {
			String smsParamString = "{\"code\":\"\",\"product\":\"xxxx\"}";
			aliDySms.sendSms(mobile, "SMS_63355238", smsParamString);
			return JsonResult.success("发送失败");
		} catch (Exception e) {
			// TODO: handle exception
			LOG.error(e.getMessage());
			return JsonResult.failMsg(e.getMessage());
		}
	}

AliDySms:

import com.modou.park.util.StringUtil;
import com.taobao.api.ApiException;
import com.taobao.api.DefaultTaobaoClient;
import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaAliqinFcSmsNumSendRequest;
import com.taobao.api.response.AlibabaAliqinFcSmsNumSendResponse;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
/**
 * 阿里大于短信
 * @author cdj
 * @date 2018年8月3日 下午5:20:22
 */
@Component
public class AliDySms {
    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    static final String accessKeyId = "xxxx";
    static final String accessKeySecret = "xxxxxxxxxxxxxxxx";
    static final String smsFreeSignName = "xxx";
	private static String url = "https://eco.taobao.com/router/rest";
	private static String smsType = "normal";
	private static String extend = "";
	
	@Autowired
	JedisPool jedisPool;
	@Autowired
	StringRedisTemplate redisTemplate;

	/**
	 * @param recNum 手机号
	 * @param smsTemplateCode  模板编号
	 * @param smsParamString  模板替换内容
	 */
	public void sendSms(String recNum, String smsTemplateCode, String smsParamString) {
		TaobaoClient client = new DefaultTaobaoClient(url, accessKeyId, accessKeySecret);
		AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
		req.setExtend(extend);
		req.setSmsType(smsType);
		req.setSmsFreeSignName(smsFreeSignName);
		req.setSmsParamString(smsParamString);
		req.setRecNum(recNum);
		req.setSmsTemplateCode(smsTemplateCode);
		AlibabaAliqinFcSmsNumSendResponse rsp = null;
		try {
			rsp = client.execute(req);
			System.out.println(rsp.getBody());
		} catch (ApiException e) {
			e.printStackTrace();
		}
	}
}

请求成功后打印出来的内容是:

{"alibaba_aliqin_fc_sms_num_send_response":{"result":{"err_code":"0","model":"387405734917910351^0","msg":"OK","success":true},"request_id":"6nua66akmrut"}}

收到短信内容为 :

【xxx】验证码7940,您正在注册成为xxxx用户,感谢您的支持!

可能会遇到一点点的小问题,不过总的来说是蛮简单的,具体的业务要特殊处理,这里只做发送功能。

猜你喜欢

转载自blog.csdn.net/atmknight/article/details/81944470
今日推荐