QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

泡泡马甲APP 更多内容请下载泡泡马甲手机客户端APP 立即下载 ×
查看: 4771|回复: 0

[C#] C# 使用阿里云发送短信

[复制链接]

等级头衔

积分成就    金币 : 2810
   泡泡 : 1516
   精华 : 6
   在线时间 : 1245 小时
   最后登录 : 2024-5-17

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老

联系方式
发表于 2021-12-29 14:04:04 | 显示全部楼层 |阅读模式
       短信服务使用的是阿里云的,想要使用阿里云平台的短信服务,首先要注册一个阿里云账号,由于发送短信消息需要用到短信签名、短信模板ID(已添加并通过审核)8 s& X. h3 k9 [$ g' Y" n" l
  • 注册阿里云账号(地址:https://www.aliyun.com/
  • 添加短信签名和短信模板
  • 短信服务相关引用dll, H; V. e" ^8 N' O# M
添加引用
8 C  o( O1 Q  i3 T7 T$ Z. G       引用——>管理NuGet程序包——>搜索Aliyun.Acs.Core——>安装8 ?7 ]+ c6 C5 d2 L0 o0 ]
  1. using Aliyun.Acs.Core;
  2. using Aliyun.Acs.Core.Exceptions;
  3. using Aliyun.Acs.Core.Profile;
  4. using Aliyun.Acs.Dysmsapi.Model.V20170525;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
编写发送短信的源代码2 ^) H: K% P( y
  1.   //产品名称:云通信短信API产品,开发者无需替换
  2.         const String product = "Dysmsapi";
  3.         //产品域名,开发者无需替换
  4.         const String domain = "dysmsapi.aliyuncs.com";
  5.         // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  6.         const String accessKeyId = "xxxxx";
  7.         const String accessKeySecret = "xxxx";
  8.         public static SendSmsResponse sendSms()
  9.         {
  10.             IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  11.             DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  12.             IAcsClient acsClient = new DefaultAcsClient(profile);
  13.             SendSmsRequest request = new SendSmsRequest();
  14.             SendSmsResponse response = null;
  15.             try
  16.             {
  17.                 //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
  18.                 request.PhoneNumbers = "189xxxx";
  19.                 //必填:短信签名-可在短信控制台中找到
  20.                 request.SignName = "小羽zzz";
  21.                 //必填:短信模板-可在短信控制台中找到
  22.                 request.TemplateCode = "SMS_65935167";
  23.                 //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
  24.                
  25.                 request.TemplateParam = "{"code":"123","product":"测试视频"}";
  26.                 //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
  27.                 request.OutId = "1712271051180713";
  28.                 //请求失败这里会抛ClientException异常
  29.                 response = acsClient.GetAcsResponse(request);
  30.             }
  31.             catch (ServerException e)
  32.             {
  33.                 Console.WriteLine(e.ErrorCode);
  34.             }
  35.             catch (ClientException e)
  36.             {
  37.                 Console.WriteLine(e.ErrorCode);
  38.             }
  39.             return response;
  1.     {
  2.             //初始化acsClient,暂不支持region化
  3.             IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  4.             DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  5.             IAcsClient acsClient = new DefaultAcsClient(profile);
  6.             //组装请求对象
  7.             QuerySendDetailsRequest request = new QuerySendDetailsRequest();
  8.             //必填-号码
  9.             request.PhoneNumber = "xxxx";
  10.             //可选-流水号
  11.             request.BizId = bizId;
  12.             //必填-发送日期 支持30天内记录查询,格式yyyyMMdd      
  13.             request.SendDate = DateTime.Now.ToString("yyyyMMdd");
  14.             //必填-页大小
  15.             request.PageSize = 10;
  16.             //必填-当前页码从1开始计数
  17.             request.CurrentPage = 1;
  18.             QuerySendDetailsResponse querySendDetailsResponse = null;
  19.             try
  20.             {
  21.                 querySendDetailsResponse = acsClient.GetAcsResponse(request);
  22.             }
  23.             catch (ServerException e)
  24.             {
  25.                 Console.WriteLine(e.ErrorCode);
  26.             }
  27.             catch (ClientException e)
  28.             {
  29.                 Console.WriteLine(e.ErrorCode);
  30.             }
  31.             return querySendDetailsResponse;
  32.         }
调用! f: `3 [( M  e* Z' R
  1.   SendSmsResponse reponse = sendSms();
  2.             Console.Write("短信发送接口返回的结果----------------");
  3.             Console.WriteLine("Code=" + reponse.Code);
  4.             Console.WriteLine("Message=" + reponse.Message);
  5.             Console.WriteLine("RequestId=" + reponse.RequestId);
  6.             Console.WriteLine("BizId=" + reponse.BizId);
  7.             Console.WriteLine();
  8.             Thread.Sleep(3000);
  9.             if (reponse.Code != null && reponse.Code == "OK")
  10.             {
  11.                 QuerySendDetailsResponse queryReponse = querySendDetails(reponse.BizId);
  12.                 Console.WriteLine("短信明细查询接口返回数据----------------");
  13.                 Console.WriteLine("Code=" + queryReponse.Code);
  14.                 Console.WriteLine("Message=" + queryReponse.Message);
  15.                 foreach (var  smsSendDetailDTO in queryReponse.SmsSendDetailDTOs)
  16.                 {
  17.                     Console.WriteLine("Content=" + smsSendDetailDTO.Content);
  18.                     Console.WriteLine("ErrCode=" + smsSendDetailDTO.ErrCode);
  19.                     Console.WriteLine("OutId=" + smsSendDetailDTO.OutId);
  20.                     Console.WriteLine("PhoneNum=" + smsSendDetailDTO.PhoneNum);
  21.                     Console.WriteLine("ReceiveDate=" + smsSendDetailDTO.ReceiveDate);
  22.                     Console.WriteLine("SendDate=" + smsSendDetailDTO.SendDate);
  23.                     Console.WriteLine("SendStatus=" + smsSendDetailDTO.SendStatus);
  24.                     Console.WriteLine("Template=" + smsSendDetailDTO.TemplateCode);
  25.                 }
  26.             }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号 )

GMT+8, 2024-5-17 23:22

Powered by paopaomj X3.4 © 2016-2024 sitemap

快速回复 返回顶部 返回列表