[阿里大鱼] 发短信!

简介: [阿里大鱼] 发短信!

1.导包

<!-- 引入阿里大鱼的jar包 -->
        <dependency>
            <groupId>com.aliyuncs</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyuncs.dysmsapi</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.0.0</version>
        </dependency>

2.配置Utils 公共类

package com.czxy.bos.util;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.dysmsapi.transform.v20170525.SendSmsResponseUnmarshaller;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * Created on 17/6/7.
 * 短信API产品的DEMO程序,工程中包含了一个SmsDemo类,直接通过
 * 执行main函数即可体验短信产品API功能(只需要将AK替换成开通了云通信-短信产品功能的AK即可)
 * 工程依赖了2个jar包(存放在工程的libs目录下)
 * 1:aliyun-java-sdk-core.jar
 * 2:aliyun-java-sdk-dysmsapi.jar
 *
 * 备注:Demo工程编码采用UTF-8
 * 国际短信发送请勿参照此DEMO
 */
public class SmsUtil {

    //产品名称:云通信短信API产品,开发者无需替换
    static final String product = "Dysmsapi";
    //产品域名,开发者无需替换
    static final String domain = "dysmsapi.aliyuncs.com";

    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    static final String accessKeyId = "自己的key";
    static final String accessKeySecret = "自己的key";

    public static SendSmsResponse sendSms(String telephone,String code) throws ClientException {

        //可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

        //初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);

        //组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待发送手机号
        request.setPhoneNumbers(telephone);
        //必填:短信签名-可在短信控制台中找到
        request.setSignName("老袁a洗脚6");
        //必填:短信模板-可在短信控制台中找到
        request.setTemplateCode("SMS_85550034");
        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        request.setTemplateParam("{\"code\":\""+code+"\"}");

        //选填-上行短信扩展码(无特殊需求用户请忽略此字段)
        //request.setSmsUpExtendCode("90997");

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

        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

        return sendSmsResponse;
    }

    public static void main(String[] args) throws ClientException, InterruptedException {

        //发短信
        SendSmsResponse response = sendSms("15151772559","6987");
        System.out.println("短信接口返回的数据----------------");
        System.out.println("Code=" + response.getCode());
        System.out.println("Message=" + response.getMessage());
        System.out.println("RequestId=" + response.getRequestId());
        System.out.println("BizId=" + response.getBizId());

    }
}

3.使用方法

public void recive(Message message) {
        try {
            /*
                参数一:手机号
                参数二:短信验证码
             */
            //发送短信,调用SMSutil
            SmsUtil.sendSms(message.telephone,message.code);

        } catch (Exception e) {

        }

    }
目录
相关文章
|
5月前
|
弹性计算 人工智能 程序员
你有一封「1024弹性计算技术开放日」邀请函,请查收!
今年的1024程序员节,阿里云弹性计算准备了一场超级大Party——「弹性计算技术开放日」,邀请你共同度过这个特别的日子。
元旦特辑 | 您有一份“云”祝福,请查收
元旦特辑 | 您有一份“云”祝福,请查收
|
移动开发 小程序 前端开发
年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款
为了实现更全和更简单的功能,支付宝需要对接H5支付,而微信需要对接的却是小程序支付。说到这里你可能就有疑问了,为啥不都是H5支付或都是小程序支付?
315 0
年初五,迎财神 | 一张码如何实现多渠道(微信、支付宝、云闪付...)收款
|
消息中间件 RocketMQ
云起实验室《RocketMQ 钉钉消息推送 应用实战营》活动获奖公示
活动地址:https://developer.aliyun.com/adc/series/activity/rocketmq1
889 0
|
移动开发 编解码 Android开发
秒懂云通信:短信也能玩出新花样?听阿里云产品运营畅聊“智能消息”服务
为了帮助用户更好地了解和使用云通信的产品,秒懂云通信系列直播开课啦!第二期的首节课程中,阿里云产品运营胡超分享了《畅聊阿里云通信智能消息服务》议题,手把手教你玩转阿里云通信短信服务的创新业务:企业公众号和数字短信,希望为用户的企业营销推广工作带来帮助。
5685 0
秒懂云通信:短信也能玩出新花样?听阿里云产品运营畅聊“智能消息”服务
|
开发者
动动手指领钉钉专属勋章
参与钉钉开发者体验满意度调研,领取钉钉专属勋章
动动手指领钉钉专属勋章
|
物联网 云栖大会
你有一份云栖大会的IoT邀请函,请查收
杭州云栖大会,邀您来看!
543 0
你有一份云栖大会的IoT邀请函,请查收
|
开发者
繁星计划*支付宝花芝轻会员主题小程序大赛
本期“花芝轻会员”主题大赛是以花芝轻会员为主题的小程序创新大赛。报名时间:2019年8月10日00:00 ~ 2019年9月15日00:00
2164 12
繁星计划*支付宝花芝轻会员主题小程序大赛
|
开发者
请查收,你的开发者大会邀请函
5.29阿里云开发者大会-钉钉分会场:钉钉应用开发聚合平台,聚能力,汇英才,创生态。
511 0
请查收,你的开发者大会邀请函