Net Core+阿里云实现短信验证码
开通阿里云短信服务
首先要开通阿里云短信服务,这个不多赘述,看图
开通之后,来到管理控制台
点击国内消息——>签名管理——>添加签名
同样的步骤,模板管理——>添加模板,申请通过的时间很快,不用急
验证通过后,我们通过在线调试试一下能不能发送成功,前提是先保证你账号的余额充足,不然会抛异常
可以看到我这边已经接收过来了,那现在我们尝试用代码发送一个验证码,先简单使用控制台程序做一个案例,后续有时间再完善
创建控制台应用程序
先安装阿里云sdk包
因为要对数据进行json序列化,所以我这里还添加了一个Newtonsoft.Json
Main函数:
static void Main(string[] args)
{
// accesskeyId、secret对应你的阿里云产品id
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<secret>");
DefaultAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.Method = MethodType.POST;
request.Domain = "dysmsapi.aliyuncs.com";
request.Version = "2017-05-25";
request.Action = "SendSms";
// request.Protocol = ProtocolType.HTTP
// 随机生成6位验证码
var rd = new Random();
var code = new
{
code=rd.Next(100000,999999)
};
request.AddQueryParameters("PhoneNumbers", "18173608896");
request.AddQueryParameters("SignName", "jonty博客");
request.AddQueryParameters("TemplateCode", "SMS_197465032");
// 验证码参数,code 转json格式
request.AddBodyParameters("TemplateParam",code.ToJson());
try
{
CommonResponse response = client.GetCommonResponse(request);
Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
}
catch (ServerException e)
{
Console.WriteLine(e);
}
catch (ClientException e)
{
Console.WriteLine(e);
}
}
扩展方法:
/// <summary>
/// 实体对象转JSON字符串
/// </summary>
/// <param name="obj"></param>
/// <param name="ignoreNull"></param>
/// <returns></returns>
public static string ToJson(this object obj, bool ignoreNull = false)
{
return JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None, new JsonSerializerSettings
{
DateFormatString = "yyyy-MM-dd HH:mm:ss",
NullValueHandling = ignoreNull ? NullValueHandling.Ignore : NullValueHandling.Include
});
}
运行无误,发送成功,按照自己的需求扩展,我这里只是尝试一下发送验证码😁
如有错误或更好的建议,欢迎指出
点击获取源码,此仓库会一直更新相关的操作示例,大家可以给个⭐⭐鼓励一下