当前位置:   article > 正文

短信发送(java版)_java发短信

java发短信

如果通过阿里云短信服务产品发送短信。需要做以下操作

  • 1、登录阿里云,开启短信服务。
  • 2、创建短信api模板及短信内容类型,定义短信内容的时候如果有变量,则使用如${code}的形式,如果使用其他内容则查看产品文档。
  • 3、获取阿里云ACCESS_ID和密钥
  • 4、代码如下
  1. 添加短信依赖
  2. <dependency>
  3. <groupId>com.aliyun</groupId>
  4. <artifactId>alibabacloud-dysmsapi20170525</artifactId>
  5. <version>2.0.22</version>
  6. </dependency>
  7. import cn.hutool.core.date.DateUtil;
  8. import cn.hutool.extra.spring.SpringUtil;
  9. import com.alibaba.fastjson.JSONObject;
  10. import com.aliyun.auth.credentials.Credential;
  11. import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
  12. import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
  13. import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
  14. import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;
  15. import com.google.gson.Gson;
  16. import darabonba.core.client.ClientOverrideConfiguration;
  17. import lombok.extern.slf4j.Slf4j;
  18. import java.util.Date;
  19. import java.util.TimerTask;
  20. import java.util.concurrent.CompletableFuture;
  21. import java.util.concurrent.ExecutionException;
  22. /**
  23. * 短信发送服务
  24. * @author zmd
  25. */
  26. @Slf4j
  27. public class SendSmsService extends TimerTask {
  28. private AppletUser appletUser;
  29. private RepairOrder repairOrder;
  30. public SendSmsService(AppletUser appletUser, RepairOrder repairOrder){
  31. this.appletUser = appletUser;
  32. this.repairOrder = repairOrder;
  33. }
  34. @Override
  35. public void run() {
  36. SmsProperties smsProperties = SpringUtil.getBean(SmsProperties.class);
  37. StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
  38. .accessKeyId(OCRConstant.ACCESS_ID)
  39. .accessKeySecret(OCRConstant.ACCESS_SECRET)
  40. .build());
  41. AsyncClient client = AsyncClient.builder()
  42. .region("cn-hangzhou")
  43. .credentialsProvider(provider)
  44. .overrideConfiguration(ClientOverrideConfiguration.create()
  45. .setEndpointOverride("dysmsapi.aliyuncs.com")).build();
  46. // String timeStr = DateUtil.format(this.repairOrder.getDateOfArrival(),"yyyy-MM-dd HH:mm:ss");
  47. String timeStr = DateUtil.format(new Date(),"yyyy-MM-dd");
  48. JSONObject jsonObject = new JSONObject();
  49. jsonObject.put(smsProperties.getTemplateParam(),timeStr);
  50. //{"time":"2022-12-12"}
  51. SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
  52. //接收短信的手机号码
  53. .phoneNumbers(this.appletUser.getPhonenumber())
  54. //短信签名名称
  55. .signName(smsProperties.getSignName())
  56. //短信模板code
  57. .templateCode(smsProperties.getTemplateCode())
  58. //短信模板变量对应的实际值
  59. .templateParam(String.valueOf(jsonObject))
  60. .build();
  61. CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
  62. SendSmsResponse resp = null;
  63. try {
  64. resp = response.get();
  65. } catch (InterruptedException | ExecutionException e) {
  66. e.printStackTrace();
  67. }
  68. log.info(new Gson().toJson(resp));
  69. client.close();
  70. }
  71. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/908874?site=
推荐阅读
相关标签
  

闽ICP备14008679号