阿里云短信服务

发布时间 2023-07-10 11:00:59作者: ashet

pom.xml引入依赖

	<dependency>
		<groupId>com.aliyun</groupId>
		<artifactId>alibabacloud-dysmsapi20170525</artifactId>
		<version>2.0.23</version>
	</dependency>
点击查看代码
public class AliSms {

    private AliSms() {
    }

    /**
     * 配置凭证,需开通阿里短信服务
     * accessKeyId
     * accessKeySecret
     * 已置空
     */
    private static final StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
            .accessKeyId("")
            .accessKeySecret("")
            .build());

    /**
     * 配置客户端
     */
    private static final AsyncClient client = AsyncClient.builder()
            .region("cn-shanghai") // Region ID
            //.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
            .credentialsProvider(provider)
            //.serviceConfiguration(Configuration.create()) // Service-level configuration
            // Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
            .overrideConfiguration(
                    ClientOverrideConfiguration.create()
                            .setEndpointOverride("dysmsapi.aliyuncs.com")
                    //.setConnectTimeout(Duration.ofSeconds(30))
            )
            .build();

    public static void sendVerifyCode(String tel, String code) throws ExecutionException, InterruptedException {
        SendSmsRequest request = SendSmsRequest.builder()
                .signName("xx个人博客")
                .templateParam(String.format("{\"code\":\"%s\"}", code))
                .phoneNumbers(tel)
                .templateCode("SMS_274780173")
                // Request-level configuration rewrite, can set Http request parameters, etc.
                // .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
                .build();
        CompletableFuture<SendSmsResponse> resp = client.sendSms(request);
        if (!"OK".equals(resp.get().getBody().getCode())) {
            client.close();
            throw new BusinessException(String.format("【阿里云】%s",resp.get().getBody().getMessage()));
        }
        client.close();
    }


}

https://www.aliyun.com/product/sms