软件编程
位置:首页>> 软件编程>> java编程>> springboot2.x 接入阿里云市场短信发送的实现

springboot2.x 接入阿里云市场短信发送的实现

作者:9540王楠楠  发布时间:2023-09-20 23:03:57 

标签:springboot,阿里云,短信,发送

1.短信平台购买次数地址

https://market.aliyun.com/products/57000002/cmapi00046920.html

提供测试模板、免审核、测试成本更低

2.测试学习使用的话,3块钱75多次够用了

springboot2.x 接入阿里云市场短信发送的实现

3.购买后在跳转成功页面记录

AppSecret、key、code

springboot2.x 接入阿里云市场短信发送的实现

 4.记录模板ID

springboot2.x 接入阿里云市场短信发送的实现

5.上代码环节


@Configuration
public class RestTemplateConfig {

@Bean
   public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory){
       return new RestTemplate(requestFactory);
   }

@Bean
   public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
       SimpleClientHttpRequestFactory factory  = new SimpleClientHttpRequestFactory();
       factory.setReadTimeout(10000);
       factory.setConnectTimeout(10000);
       return factory;
   }

}

增加配置


@ConfigurationProperties(prefix = "sms")
@Configuration
@Data
public class SmsConfig {

private String templateId;

private String appCode;

}

application.yml

springboot2.x 接入阿里云市场短信发送的实现

发送类


@Component
@Slf4j
public class SmsComponent {

/**
    * 发送地址
    */
   private static final String URL_TEMPLATE = "https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s";

@Autowired
   private RestTemplate restTemplate;

@Autowired
   private SmsConfig smsConfig;

/**
    * 发送短信验证码
    * @param to
    * @param templateId
    * @param value
    */
   public void send(String to,String templateId,String value){

String url = String.format(URL_TEMPLATE,to,templateId,value);
       HttpHeaders headers = new HttpHeaders();

headers.set("Authorization","APPCODE "+smsConfig.getAppCode());
       HttpEntity entity = new HttpEntity<>(headers);
       ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
       log.info("url={},body={}",url,response.getBody());
       if(response.getStatusCode().is2xxSuccessful()){
           log.info("发送短信验证码成功");
       }else {
           log.error("发送短信验证码失败:{}",response.getBody());
       }

}
}

测试类验证


@RunWith(SpringRunner.class)
@SpringBootTest(classes = AccountApplication.class)
@Slf4j
public class SmsTest {
   @Autowired
   private SmsComponent smsComponent;

@Autowired
   private SmsConfig smsConfig;

@Test
   public  void testSendSms(){

smsComponent.send("138XXXXXXX",smsConfig.getTemplateId(),"666888");
   }
}

发送成功咯

springboot2.x 接入阿里云市场短信发送的实现

来源:https://blog.csdn.net/wnn654321/article/details/121578434

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com