腾讯 : https://github.com/qcloudsms/qcloudsms_csharp

安装nuget包:

  1. using qcloudsms_csharp;
  2. using System.Collections.Generic;
  3.  
  4. namespace Own.Common
  5. {
  6. public class Utils
  7. {
  8. /// <summary>
  9. /// 腾讯云发短信
  10. /// </summary>
  11. public static void TencentSmsMethod()
  12. {
  13. //地址:https://console.cloud.tencent.com/sms/smsContent
  14. // 短信应用SDK AppID
  15. ;
  16. // 短信应用SDK AppKey
  17. ";
  18. //模板Id
  19. ;
  20. // 签名 NOTE: 这里的签名只是示例,请使用真实的已申请的签名, 签名参数使用的是`签名内容`,而不是`签名ID`
  21. string smsSign = "程序源于生活";
  22. // 需要发送短信的手机号码
  23. " };
  24.  
  25. #region 指定模板单发短信
  26. //var ssender = new SmsSingleSender(appid, appkey);
  27. //var result = ssender.sendWithParam("86", phoneNumbers[0],
  28. // templateId, new[] { "5678","2" }, smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
  29.  
  30. #endregion
  31.  
  32. #region 指定模板群发
  33. var ssender = new SmsMultiSender(appid, appkey);
  34. ", phoneNumbers, templateId,
  35. " }, null, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
  36.  
  37. #endregion
  38. }
  39. }
  40. }

阿里官方说明文档

1.在github下载sdk

https://github.com/aliyun/aliyun-openapi-net-sdk

在线调试:https://api.aliyun.com/new?spm=a2c4g.11186623.2.13.5c1619d9AB95cl#/?product=Dysmsapi&api=SendSms

2.下载sdk和demo

  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.  
  7. namespace Own.Common
  8. {
  9. public class Utils
  10. {
  11. /// <summary>
  12. /// 阿里云发短信
  13. /// </summary>
  14. public static SendSmsResponse SendSms()
  15. {
  16. //产品名称:云通信短信API产品,开发者无需替换
  17. const String product = "Dysmsapi";
  18. //产品域名,开发者无需替换
  19. const String domain = "dysmsapi.aliyuncs.com";
  20.  
  21. // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  22. const String accessKeyId = "yourAccessKeyId";
  23. const String accessKeySecret = "yourAccessKeySecret";
  24.  
  25. IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  26. DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  27. IAcsClient acsClient = new DefaultAcsClient(profile);
  28. SendSmsRequest request = new SendSmsRequest();
  29. SendSmsResponse response = null;
  30. try
  31. {
  32. //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
  33. request.PhoneNumbers = ";
  34. //必填:短信签名-可在短信控制台中找到
  35. request.SignName = "云通信";
  36. //必填:短信模板-可在短信控制台中找到
  37. request.TemplateCode = "SMS_1000000";
  38. //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
  39. request.TemplateParam = "{\"customer\":\"123\"}";
  40. //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
  41. request.OutId = "yourOutId";
  42. //请求失败这里会抛ClientException异常
  43. response = acsClient.GetAcsResponse(request);
  44. }
  45. catch (ServerException e)
  46. {
  47. Console.WriteLine(e.ErrorCode);
  48. }
  49. catch (ClientException e)
  50. {
  51. Console.WriteLine(e.ErrorCode);
  52. }
  53.  
  54. return response;
  55. }
  56.  
  57. /// <summary>
  58. /// 批量
  59. /// </summary>
  60. /// <returns></returns>
  61. public static SendBatchSmsResponse BatchSendSms()
  62. {
  63. //产品名称:云通信短信API产品,开发者无需替换
  64. const String product = "Dysmsapi";
  65. //产品域名,开发者无需替换
  66. const String domain = "dysmsapi.aliyuncs.com";
  67.  
  68. // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  69. const String accessKeyId = "yourAccessKeyId";
  70. const String accessKeySecret = "yourAccessKeySecret";
  71.  
  72. IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  73. DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  74.  
  75. IAcsClient acsClient = new DefaultAcsClient(profile);
  76. SendBatchSmsRequest request = new SendBatchSmsRequest();
  77. //request.Protocol = ProtocolType.HTTPS;
  78. //request.TimeoutInMilliSeconds = 1;
  79.  
  80. SendBatchSmsResponse response = null;
  81. try
  82. {
  83.  
  84. //必填:待发送手机号。支持JSON格式的批量调用,批量上限为100个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
  85. request.PhoneNumberJson = "[\"1500000000\",\"1500000001\"]";
  86. //必填:短信签名-支持不同的号码发送不同的短信签名
  87. request.SignNameJson = "[\"云通信\",\"云通信\"]";
  88. //必填:短信模板-可在短信控制台中找到
  89. request.TemplateCode = "SMS_1000000";
  90. //必填:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
  91. //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
  92. request.TemplateParamJson = "[{\"name\":\"Tom\", \"code\":\"123\"},{\"name\":\"Jack\", \"code\":\"456\"}]";
  93. //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
  94. //request.SmsUpExtendCodeJson = "[\"90997\",\"90998\"]";
  95.  
  96. //请求失败这里会抛ClientException异常
  97. response = acsClient.GetAcsResponse(request);
  98.  
  99. }
  100. catch (ServerException e)
  101. {
  102. Console.Write(e.ErrorCode);
  103. }
  104. catch (ClientException e)
  105. {
  106. Console.Write(e.ErrorCode);
  107. Console.Write(e.Message);
  108. }
  109.  
  110. return response;
  111. }
  112.  
  113. /// <summary>
  114. /// 查询发送详情
  115. /// </summary>
  116. public static QuerySendDetailsResponse QuerySendDetails(String bizId)
  117. {
  118. //产品名称:云通信短信API产品,开发者无需替换
  119. const String product = "Dysmsapi";
  120. //产品域名,开发者无需替换
  121. const String domain = "dysmsapi.aliyuncs.com";
  122.  
  123. // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
  124. const String accessKeyId = "yourAccessKeyId";
  125. const String accessKeySecret = "yourAccessKeySecret";
  126.  
  127. //初始化acsClient,暂不支持region化
  128. IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  129. DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  130. IAcsClient acsClient = new DefaultAcsClient(profile);
  131. //组装请求对象
  132. QuerySendDetailsRequest request = new QuerySendDetailsRequest();
  133. //必填-号码
  134. request.PhoneNumber = ";
  135. //可选-流水号
  136. request.BizId = bizId;
  137. //必填-发送日期 支持30天内记录查询,格式yyyyMMdd
  138. request.SendDate = DateTime.Now.ToString("yyyyMMdd");
  139. //必填-页大小
  140. request.PageSize = ;
  141. //必填-当前页码从1开始计数
  142. request.CurrentPage = ;
  143.  
  144. QuerySendDetailsResponse querySendDetailsResponse = null;
  145. try
  146. {
  147. querySendDetailsResponse = acsClient.GetAcsResponse(request);
  148. }
  149. catch (ServerException e)
  150. {
  151. Console.WriteLine(e.ErrorCode);
  152. }
  153. catch (ClientException e)
  154. {
  155. Console.WriteLine(e.ErrorCode);
  156. }
  157. return querySendDetailsResponse;
  158. }
  159. }
  160. }

【云短信】腾讯&阿里的更多相关文章

  1. php 阿里云短信服务及阿里大鱼实现短信验证码的发送

    一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用户的Access ...

  2. ThinkPHP5.0手把手实现手机阿里云短信验证

    阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了.首先,你需要注册一个阿里云账号,这个自行解决. 仅用于测试使用官方送的代金券够用了.相关配置1.开通阿里云Access ...

  3. 阿里云短信验证解决方案(java版)(redis存储)

    最近搞了一个互联网项目的注册,需要写一个手机号验证(由于之前没有轮子,只能自己摸索了); 1:基本思路: 1>购买了阿里云短信服务->下载阿里云短信发送demo(java版); 2> ...

  4. CRMEB小程序商城v4.0二次开发对接集成阿里云短信

    作者:廖飞 - CRMEB小程序商城研发项目组长 前言 cremb小程序商城v4.0版本支持短信平台为云信,但有部分用户有需求对接阿里云短信,这篇文章将对阿里云短信平台如何对接方以及对接流程详细说明. ...

  5. ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成

    在一般的系统中,往往也有短信模块的需求,如动态密码的登录,系统密码的找回,以及为了获取用户手机号码的短信确认等等,在ABP框架中,本身提供了对邮件.短信的基础支持,那么只需要根据自己的情况实现对应的接 ...

  6. 移动端获取短信验证码java实现——阿里云短信服务

    需求:移动端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短信 ...

  7. 浏览器端获取短信验证码java实现——阿里云短信服务

    需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...

  8. 轻松集成腾讯云短信服务实现短信发送(Java实现)

    不论是阿里云还是腾讯云,要想在网站上实现短信发送功能,首先得保证你的网站域名是通过备案的,因为短信签名是需要用到备案过的域名截图,所以域名通过了,申请很快就会审批成功了. (说点题外话,备案的话,需要 ...

  9. 使用Node.js调用阿里云短信的发送以及接收

    为了使用Node.js调用阿里云短信服务,我自己写了个npm包, 目前实现了: 使用Node.js调用阿里云短信服务,发送短信: 使用Node.js调用阿里云短信服务以及MNS服务,接收用户上行短信 ...

  10. 阿里云短信服务bug

    接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...

随机推荐

  1. 基于Spark自动扩展scikit-learn (spark-sklearn)(转载)

    转载自:https://blog.csdn.net/sunbow0/article/details/50848719 1.基于Spark自动扩展scikit-learn(spark-sklearn)1 ...

  2. linux----------yum一些安装命令汇总

    1.yum install -y psmisc        安装killall命令 2.yum install -y lrzsz        安装sz(下载)和rz(上传)命令 3.yum ins ...

  3. 统计Oracle一个表空间中各个segment占用的空间大小

    SQL语句参考以下: select owner,segment_name,segment_type,tablespace_name,sum(bytes)/1024/1024/1024 from dba ...

  4. 【SS & KCP centos7配置】

    1 依赖和环境配置 1.1 升级 yum $ yum update 1.2 安装 screen $ yum install screen 关于 screen 的详情:http://www.vpser. ...

  5. EL有11个隐含对象

    EL有11个隐含对象: 隐含对象                    类型                                             说明                ...

  6. Fiddler使用教程(转)

    Fiddler是最强大最好用的Web调试工具之一,你对HTTP协议越了解, 你就能越掌握Fiddler的使用方法.你越使用Fiddler,就越能帮助你了解HTTP协议.Fiddler无论对开发人员或者 ...

  7. PyTorch进行深度学习入门

    一.PyTorch是什么? 这是一个基于Python的科学计算软件包,针对两组受众: ①.NumPy的替代品,可以使用GPU的强大功能 ②.深入学习研究平台,提供最大的灵活性和速度 二.入门 ①.张量 ...

  8. Linux基础命令---iostat显示设备状态

    iostat iostat指令用来显示cpu状态,系统IO设备的状态,以及相关磁盘和NFS使用状态.iostat命令通过观察设备相对于其平均传输速率的活动时间来监视系统输入/输出设备负载.iostat ...

  9. CCF CSP 201703-1 分蛋糕

    题目链接:http://118.190.20.162/view.page?gpid=T57   问题描述 试题编号: 201703-1 试题名称: 分蛋糕 时间限制: 1.0s 内存限制: 256.0 ...

  10. dlo,学习清单

    肥文自动机 模拟纵火 替罪羊 法法塔 ntt