使用阿里云提供的短信服务发送短信(个人版)

本人最近需要实现一个注册发短信验证码的功能,找了几家短信服务平台,如腾讯云,云片网等,发现他们都没有提供给用户个人的短信服务权限,申请短信签名等都需要有企业等相关证明,最后找到了阿里云的短信服务平台,下面就介绍下个人如何开通使用阿里云提供的短信服务。

首先是注册并登录阿里云,然后开通短信服务等。要发送短信之前需要先申请短信签名,每个个人用户可以申请一个验证码签名,如下图:

填写相关信息后点击确定,会进入签名审核状态,审核成功就可以使用该签名,一般是半小时左右审核完。

然后是申请短信模板,如下图:

一般也是半小时左右审核完,通常模板会比签名更容易通过审核。

签名和模板都审核通过后,就可以进行开发了。如果调用API出错,可以通过以下链接查看API错误码https://help.aliyun.com/document_detail/101346.html

示例代码如下:

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.0.3</version>
</dependency>
*/

//发送短信只需要阿里云SDK核心库,需要导入:aliyun-java-sdk-core-4.1.0.jar,同时依赖google的gson,需要导入:gson-2.8.5.jar,否则报错
public class CommonRpc {
    public static void main(String[] args) {
        // 创建DefaultAcsClient实例并初始化
       /* DefaultProfile profile = DefaultProfile.getProfile(
            "<your-region-id>",          // 您的地域ID
            "<your-access-key-id>",      // 您的AccessKey ID
            "<your-access-key-secret>"); // 您的AccessKey Secret
*/     
        
        //自己创建了子账号 AccessKey并授权可访问一切短信服务,
//        输入对应的AccessKey ID和AccessKey Secret,相当于账号密码调用短信API,须保密

        DefaultProfile profile = DefaultProfile.getProfile("default", "<your-access-key-id>", "<your-access-key-secret>");
       
        IAcsClient client = new DefaultAcsClient(profile);
        /*阿里云产品的API有RPC和RESTful两种风格,不同风格的API的CommonRequest的调用方法也不同,每种API都只有一种调用风格。
                    通常API参数中包含Action参数的是RPC风格,调用的某个产品的API没有提供SDK时,可以采用泛用型的API调用方式(CommonRequest)。
                    使用CommonRequest调用方式可实现任意Open API接口的调用。*/
        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
//      设置发送请求方法
        request.setMethod(MethodType.POST);
//      设置发送短信服务器,默认为dysmsapi.aliyuncs.com
        request.setDomain("dysmsapi.aliyuncs.com");
//      设置版本,默认为2017-05-25
        request.setVersion("2017-05-25");
//      设置调用的API方法名
        request.setAction("SendSms");
//      接收短信的电话号码
        request.putQueryParameter("PhoneNumbers", "电话号码");
//      短信签名,如【阿里云】,须申请,使用申请成功的签名
        request.putQueryParameter("SignName", "阿里云");
//      短信模板,须申请,使用申请成功的短信模板的模版CODE
        request.putQueryParameter("TemplateCode", "SMS_10086***");
//      申请的短信模板中的变量code的值,如验证码,字符串格式必须为"{code:123051}",否则报错,123051由代码生成
        request.putQueryParameter("TemplateParam", "{code:123051}");
        try {
            CommonResponse response = client.getCommonResponse(request);
//          获取执行之后的信息,显示成功提示或者失败信息
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

 

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值