首页 > 其他分享 >调用阿里云的短信服务,实现发送验证码

调用阿里云的短信服务,实现发送验证码

时间:2023-07-27 20:44:06浏览次数:29  
标签:调用 短信 Models 验证码 new AlibabaCloud 模板 SDK

 

1、阿里云短信服务地址

https://help.aliyun.com/product/44282.html?spm=a2c4g.204183.0.0.5d946806NuuBFD

通过api调用短信服务说明:

https://help.aliyun.com/document_detail/71160.html?spm=a2c4g.204183.4.3.5d946806NuuBFD&scm=20140722.H_71160._.ID_71160-OR_rec-V_1

 

2、开通短信服务

点击开通,扫码进入钉钉群后即可点击开通。

2.1、添加签名

 

个人学习可以选择

 界面是这样的:

 

 

 

 

 审核后:

 

 

 2.2、添加模板

 初始模板:

 填写参考:

 

 

3、获取AccessKey

 

 选择使用子用户。

然后创建一个用户

 

 将accesskey保存下来。

后续如果出现这个,说明权限不足。

 

或者直接创建:

 

 

 

4、导入Nuget包:

 

 也可以用命令:

Install-Package AlibabaCloud.SDK.Dysmsapi20170525 -Version 2.0.24

 

 

5、短信发送帮助类AliyunSMSHelper

namespace Study.Net.Utility
{
    public  class AliyunSMSHelper
    {
        public static void UseSMS(string phone, string token)
        {
            string accessKeyId = "xxxxxxx";
            string accessKeySecret = "vvvvvvvvvvv";
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                // 必填,您的 AccessKey ID
                AccessKeyId = accessKeyId,
                // 必填,您的 AccessKey Secret
                AccessKeySecret = accessKeySecret,
                // 使用默认凭证初始化Credentials Client
                //Credential = new Aliyun.Credentials.Client(null),
            };
            // 配置云产品 ECS 的服务接入地址(endpoint)
            // config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
            //AlibabaCloud.SDK.Ecs20140526.Client client = new AlibabaCloud.SDK.Ecs20140526.Client(config);
            //AlibabaCloud.SDK.Ecs20170525.Models.DescribeInstancesRequest request = new AlibabaCloud.SDK.Ecs20140526.Models.DescribeInstancesRequest()
            //{
            //    RegionId = "cn-hangzhou"
            //};

            // 配置云产品短信服务的服务接入地址(endpoint)
            config.Endpoint = "dysmsapi.aliyuncs.com";
            AlibabaCloud.SDK.Dysmsapi20170525.Client dysmsapiClient = new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
            AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest request
                =new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
                {
                    PhoneNumbers = phone,
                    SignName = "Krystal的博客",//签名
                    TemplateCode = "SMS_462210223", //模板Code
                    TemplateParam = $"{{\"code\":\"{token}\"}}", //替换模板参数
                };   



            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtimeOptions = new AlibabaCloud.TeaUtil.Models.RuntimeOptions()
            {
                // 读取超时
                ReadTimeout = 10000,
                // 连接超时
                ConnectTimeout = 5000,
                // 是否自动重试
                Autoretry = false
            };
            // 通过 SDK Core 执行实际的 Http 请求将返回的结果序列化为 SDK 的 Response 结构
            var response = dysmsapiClient.SendSmsWithOptionsAsync(request, runtimeOptions);
            System.Console.WriteLine(response.Status);
            System.Console.WriteLine(response.Result.Body.Message);//Message不为空即为有异常:常见异常:权限不足、签名和模板不匹配、余额不足
        }
    }
}
AliyunSMSHelper

 

 

6、调用帮助类发送短信

AliyunSMSHelper.UseSMS(phoneNumber, token);

 

 

其他问题:

1、问题1:测试专用签名和模板必须结合起来

 原因:使用的模板和签名不一致,比如初学者容易创建了签名后,直接使用 赠送的短信验证码模板。

比如这个

 

工单号关联签名, 因此,需要检查工单号和模板。

 2、调用失败,余额不足

 就是充钱,买套餐。

 

 

标签:调用,短信,Models,验证码,new,AlibabaCloud,模板,SDK
From: https://www.cnblogs.com/lanrenka/p/17585246.html

相关文章

  • android studio 如何调用python
    如何在AndroidStudio中调用Python概述:在AndroidStudio中调用Python可以帮助我们解决一些实际问题,比如使用Python的强大数据处理和分析库,或者直接调用已有的Python脚本。本文将介绍如何在AndroidStudio中调用Python,并提供一个示例来解决一个实际问题。步骤:以下是在AndroidSt......
  • react useEffect a页面跳转b页面,b页面跳转a页面,接口调用多次
    reactuseEffecta页面跳转b页面,b页面跳转a页面,接口调用多次useEffect(()=>{xxx();return()=>{history?.go(0);};},[]);我的解决方式是在,在离开页面之前触发return()=> {history?.go(0);};当前页面刷新,清空了当前缓存的数据,也相当于第一次......
  • .net core 调用打印机打印pdf文件 FreeSpire.PDF
    首先,参考了https://stackoverflow.com/questions/63941980/is-it-possible-to-print-documents-from-a-net-core-3-1-windows-service中的说明,声明:我用的是core3.1测试的先下载了FreeSpire.PDF的NuGet包,可以看出来简介上是支持print的: 然后我的测试直接在controller中:1[......
  • python使用ctypes调用gcc编译的dll之ctypes的使用
    简介ctypes是Python的外部函数库。它提供了与C兼容的数据类型,并允许调用C或C++编译后的DLL或共享库中的函数。可使用该模块以纯Python形式对这些库进行封装。本例中代码基于window系统,python为64位3.9.12,如需在liunx上使用请参考上篇博客1、代码的基础结构如下1.1新......
  • java 调用方法返回集合
    Java调用方法返回集合的实现步骤对于刚入行的小白来说,Java调用方法返回集合可能会有一些困惑。在本文中,我将向你介绍如何实现Java调用方法返回集合的步骤,并提供相应的代码示例。让我们开始吧!步骤概览下面是实现Java调用方法返回集合的步骤概览。我们将在后续的部分中详细解释每......
  • java 调用class 的 变量
    Java调用class的变量作为一名经验丰富的开发者,我将教给你如何使用Java调用class的变量。以下是整个过程的步骤,我使用表格形式展示。步骤代码说明步骤1ClassNameobjectName=newClassName();创建一个类的实例对象。步骤2objectName.variableName=value;通过......
  • java 打印调用栈
    Java打印调用栈介绍在Java开发中,了解如何打印调用栈是非常重要的。调用栈(CallStack)是用于追踪程序执行期间方法的调用顺序的一种机制。通过打印调用栈,我们可以获得有关程序执行路径和调用层次的有用信息,这对于调试和问题排查非常有帮助。在本文中,我将指导你如何实现Java打印调......
  • WEB自动化-验证码处理
    WEB自动化的过程中遇到验证码的时候,有以下方法:1、Debug模式启动浏览器(浏览器复用)(技术)--推荐2、识别法(技术)--OCR3、接口法(技术):开发人员提供接口,通过这个接口可以获取到图片验证码,只用于测试环境4、移除法(非技术):让开发人员在测似乎环境直接去掉验证码5、暗号法(非技术):万能验证码......
  • 【Spring Cloud】服务注册、发现与调用的核心原理
    参考:https://www.bilibili.com/video/BV1i14y1D7DY/?spm_id_from=333.337.search-card.all.click 给出核心的几个类,与之间交互说明、 服务注册: NacosAutoServiceRegistration实现了spring的事件监听,当web初始化完成后进行服务的注册  服务发现  服务调用......
  • java 调用shell脚本如何传数据进去
    Java调用Shell脚本传递数据的方案在Java程序中调用Shell脚本可以很方便地实现与底层系统交互的功能。但是,如果我们需要将数据传递给Shell脚本进行处理,就需要找到一种合适的方法来实现。本文将介绍一种实用的方法来解决这个问题。方案概述Java程序通过Runtime类的exec方法可以调......