首页 > 编程知识 正文

阿里通短信,阿里云短信

时间:2023-05-03 05:41:41 阅读:228303 作者:970

1.需求场景

我们公司的售后系统需要在接收到客户的售后产品时需要给用户推送一条短信消息,告知用户他的快递我们已经收到会尽快处理客户的售后问题。

2.解决方案 2.1 使用阿里的短信平台服务

参考阿里云短信平台:https://help.aliyun.com/product/44282.html?spm=5176.12226203.0.0.f17a1cbeXRbQ9i

2.2 申请短信模板

参考阿里云短信凭条的短信模板说明和申请流程:https://dysms.console.aliyun.com/dysms.htm?spm=5176.2020520169.nav-right.2.2ae375bd55tlb0#/domestic/text/sign

2.2.1 无参数模板

简单的理解就是用户收的短信内容不能定制。在阿里云申请模板是什么样子的那么用户收到的信息也就是什么样子的。

2.2.2 有参数模板

简单的理解就是用户收到的信息是我们可以一定程度上定制。我们在阿里云平台上申请短信模板时会设置一些我们预先设置好占位符,在真正的使用模板发送短信时我们用我肯需要的字符来替换我们预先设置的占位符达到短信定制效果。
举个例就是我们经常受到一些短信验证码的信息,那么发短息的平台就是使用的有参数的短信模板来给用户发信息的。

2.3 申请短信签名

短信签名是调用api时必填的参数。短信签名会出现在用户收到的短信的最前面,简单的理解可以认为是让用户知道是那个公司给他发送的短信。

2.4 accessKeyId和accessSecret

accessKeyId和accessSecret是我们在调用api时必填的参数。另外accessKeyId和accessSecret拥有该账号的所有权限,一定要做好保密措施。

2.5 调试 2.5.1 阿里在先调试平台

阿里提供了一个在线调试工具,参考地址:https://api.aliyun.com/new?spm=a2c4g.11186623.2.13.5b0119d9PGJKeD#/?product=Dysmsapi&version=2017-05-25&api=SendSms&tab=DEMO&lang=JAVA

2.5.1 调用阿里的sdk本地调试 2.5.1.1 maven的pom文件引入阿里的sdk: <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.0.3</version> </dependency> 2.5.1.2 代码实现

这里有点小问题:阿里提供的的Demo里面的对应的方法没有点进实现类里面才发现方法写错了。CommonRequest类里面的setSysXXX的时候应该是setXXX。已经提工单给到阿里。

DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "Gvi5XXXXXXXbMeos", "EBsOb3m98pXXXXXXXx0DajvwSsTIJVF"); IAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.setMethod(MethodType.POST); request.setDomain("dysmsapi.aliyuncs.com"); request.setVersion("2017-05-25"); request.setAction("SendSms"); request.putQueryParameter("RegionId", "cn-hangzhou"); request.putQueryParameter("PhoneNumbers", PhoneNumbers); request.putQueryParameter("SignName", "火火兔售后"); request.putQueryParameter("TemplateCode", "SMS_18794XXXXX"); request.putQueryParameter("TemplateParam", "{"maintenanceCosts":" + maintenanceCosts + "}"); try { CommonResponse response = client.getCommonResponse(request); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } 2.6 最终效果

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。