Spring boot +maven project uses Ali big fish to send text messages

SMS registration
Insert picture description here
is needed in the project, sort it out for reference, search for Ali Big Fish, it should be the first one to
Insert picture description here
click on the SMS service,
Insert picture description here
click on the management console,
Insert picture description here
click on the fee - just recharge and recharge one dollar to try, a short message only costs 5 cents
Insert picture description here
domestic here is the message and the signature of the application templates
Insert picture description here
to add a signature account can only add a signature verification code easily take their own tests if the item you want to use the best take-related project name
and then add the template
Insert picture description here
here cODE signature and templates to be used will be
introduced Related dependencies

       <!--阿里大鱼-->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.7.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>

In order to call a tool class

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

/**
 * 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";

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

    public static SendSmsResponse sendSms(String telephone,String code,String signName,String templateCode) 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(signName);
        //【必填】短信模板-可在短信控制台中找到
        request.setTemplateCode(templateCode);
        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        request.setTemplateParam("{\"code\":\""+code+"\"}");
        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");
        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        return sendSmsResponse;
    }


}

Two sets of templates are used in the project in China and Australia. I didn’t write down the parameters, which is convenient to call. It is also possible to write down directly according to the needs.

Go to Ali Dayu's page and click on the avatar in
Insert picture description here
Insert picture description here
the upper right corner and copy the data in the red box to the corresponding location.
Insert picture description here
For the convenience of testing, I added a main method directly below the code.

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

        //发短信
        SendSmsResponse response = sendSms("","","","");
        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());

    }

Results are as follows
Insert picture description here
Insert picture description here
better on here

Guess you like

Origin blog.csdn.net/weixin_45352783/article/details/107316492