首页 > 其他分享 >阿里云短信接口使用

阿里云短信接口使用

时间:2023-02-16 19:34:52浏览次数:34  
标签:短信 apiResult 接口 return 阿里 error using new AlibabaCloud

阿里云短信接口使用

接入

一.nuget下载

二.复制接口

1.这里要注意的是AccessKey ID和AccessKey Secret是需要在阿里云生成的,路径:头像=>AccessKey 管理=>创建

     *          *          * ```
              * @pa                  * @re                  */using CSRedis;
                      using Microsoft.AspNetCore.Mvc;
                      using SmartHotel.Domain.Dto;
                     using System;
                     using System.Collections;
                using System.Collections.Generic;
                using System.IO;
                using System.Threading.Tasks;
                
                    using Tea;
                    using Tea.Utils;
                        namespace SmartHotel.WebApi.Common
                        {
                            public class PhoneCode
                            {
                                /**
                        
                       * 使用AK&SK初始化账号Client
                         ram accessKeyId
                    
                            * @param accessKeySecret
                              turn Client
                    
                                 * @throws Exception
                    
                                   ​        public static AlibabaCloud.SDK.Dysmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret)
                                   ​        {
                                   AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
                                   {
                                   ​    // 必填,您的 AccessKey ID
                                   ​    AccessKeyId = "LTAI5tFjGDns1sCGBQPasc6V",
                                   ​    // 必填,您的 AccessKey Secret
                                   ​    AccessKeySecret = "TQ1fQlTK6Q2lzjR4ES5UqgzgnJd5l7",
                                   };
                                   // 访问的域名
                                   config.Endpoint = "dysmsapi.aliyuncs.com";
                                   return new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
                                   ​        }
                    ```
                    
                    

    public static Object Code(string args)
    {

        string codeStr = "";
        for (int i = 0; i < 6; i++)
        {
            Random codes = new Random();
            codeStr += codes.Next(0, 9);
        }
        AlibabaCloud.SDK.Dysmsapi20170525.Client client = CreateClient("LTAI5tFjGDns1sCGBQPasc6V", "TQ1fQlTK6Q2lzjR4ES5UqgzgnJd5l7");
        AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest
        {
            SignName = "胡卓个人博客",
            TemplateCode = "SMS_267655261",
            TemplateParam = "{\"code\":\"" + codeStr + "\"}",
            PhoneNumbers = args,
        };
        AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
        try
        {
            //将数据保存进redis
            var result = client.SendSmsWithOptions(sendSmsRequest, runtime);
            if (result.StatusCode == 200 && result.Body.Message == "OK") 
            {
                // 复制代码运行请自行打印 API 的返回值
                return codeStr;
            }
            return result;
        }
        catch (TeaException error)
        {
            // 如有需要,请打印 error
            AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            return error.Message;
        }
        catch (Exception _error)
        {
            TeaException error = new TeaException(new Dictionary<string, object>
            {
                { "message", _error.Message }
            });
            // 如有需要,请打印 error
            AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
            return error.Message;
        }
    }

}}

三.控制器调用(因为是静态方法,所以直接点出来)

/// <summary>
        /// 短信测试
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        [HttpGet]
    public IActionResult SendInfor(string phone,int userId)
    {           
        var code = _cSRedis.Get("code"+userId);
        var apiResult = new ApiResult();
        if (code!=null)
        {
            apiResult.Code = 500;
            apiResult.Msg = "验证码已发送,请勿频繁操作";
            return Ok(apiResult);
        }
        else
        {
            var result = PhoneCode.Code(phone);
            _cSRedis.Set("code" + userId, result, 300);
            apiResult.Code = 200;
            apiResult.Msg = "验证码已发送";
            return Ok(apiResult);
        }  

二:详细说明

在进行登录场景的时候,可以将生成的验证码存放在redis中,设置好生存时间,根据前端传进来的数据来进行对比,通过的话就可以进行下面的操作

标签:短信,apiResult,接口,return,阿里,error,using,new,AlibabaCloud
From: https://www.cnblogs.com/Zhuo-Hu/p/17128013.html

相关文章

  • spring-ImportSelector接口原理
    ImportSelector接口源码packageorg.springframework.context.annotation;importorg.springframework.core.type.AnnotationMetadata;/***Interfacetobeimple......
  • android短信数据库监听回调多次问题
    在监听android短信数据库变化时。由于只能注册content://sms/的observer。所以,在数据库每次状态变化的时候,都会多次回调 onChange方式。目前还未找到很好的方式,解决回......
  • Android短信监听实现,及Android4.4之后短信机制变更
    Android短信监听实现,及Android4.4之后短信机制变更 前阵子公司有一个项目,简单的监听短信应用,功能只有如下两个:1.监听短信并获取短信内容上传服务器;2.从服务器获取短......
  • 阿里云 cloud linux 2 搭建LNMP环境
    2023年2月16日15:38:38官方说明: https://www.alibabacloud.com/help/zh/elastic-compute-service/latest/manually-deploy-an-lnmp-environment-on-an-ecs-instance-tha......
  • 如何利用iphone自带的弱网络进行弱网或接口timeout测试
    前提条件:1.设置中调出:开发者选项。(方法一:找开发帮忙真机链接编译器xcode,重启手机后开发者选项消失.开发者选项在设置的一级子目录下;方法二:在设置隐私与安全性中,打开开发......
  • 独立第三方部署客服APP或H5在线客服系统解决更换接口域名问题
    需求目前,我们已经开发了自营的客服系统,当有客户需要自己服务器独立部署客服系统时,我们客服APP或客服H5的接口域名就得更改成客户自己的域名不可能每次一个客户来,我们就在......
  • 阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例
    前言在尼恩读者50+交流群中,尼恩经常指导小伙伴改简历。改简历所涉及的一个要点是:在XXX项目中,完成了XXX模块的代码优化另外,在面试的过程中,面试官也常常喜欢针对提......
  • (二)接口测试基础认知
    测试用例设计思路:从输入参数进行考虑设计:1)优先级-针对所有接口1、暴露给其他系统、第三方调用接口2、系统内部调用的核心功能接口3、系统内部调用的非核心功能接口2......
  • 实现Runnable接口
         ......
  • 接口测试经验
    问题:1)为什么要做接口测试2)接口测试需要用到的流程和工具3)接口测试点编写的思路4)接口出现问题如何定位5)接口疑问  答案:一、为什么要做接口测试 a)提升测试工作......