云片网短信通用类

  1. public class YunpianSMS
  2. {
  3. public YunpianSMS()
  4. { }
  5.  
  6. /// <summary>
  7. /// 服务器HTTP地址
  8. /// </summary>
  9. private static string BASE_URI = "http://yunpian.com";
  10.  
  11. /// <summary>
  12. /// 服务版本号
  13. /// </summary>
  14. private static string VERSION = "v1";
  15.  
  16. /// <summary>
  17. /// 查账户信息的http地址
  18. /// </summary>
  19. private static string URI_GET_USER_INFO = BASE_URI + "/" + VERSION + "/user/get.json";
  20.  
  21. /// <summary>
  22. /// 通用接口发短信的http地址
  23. /// </summary>
  24. private static string URI_SEND_SMS = BASE_URI + "/" + VERSION + "/sms/send.json";
  25.  
  26. /// <summary>
  27. /// 模板接口短信接口的http地址
  28. /// </summary>
  29. private static string URI_TPL_SEND_SMS = BASE_URI + "/" + VERSION + "/sms/tpl_send.json";
  30.  
  31. /// <summary>
  32. /// 通用接口查回复的短信的http地址
  33. /// </summary>
  34. private static string URI_GET_REPLY = BASE_URI + "/" + VERSION + "/sms/get_reply.json";
  35.  
  36. /// <summary>
  37. /// APIKEY
  38. /// </summary>
  39. private static string APIKEY = "APIKEY";
  40.  
  41. /// <summary>
  42. /// 获取用户信息
  43. /// </summary>
  44. /// <returns>Json格式</returns>
  45. public static string GetUserInfo()
  46. {
  47. System.Net.WebRequest req = System.Net.WebRequest.Create(URI_GET_USER_INFO + "?apikey=" + APIKEY);
  48. System.Net.WebResponse resp = req.GetResponse();
  49. System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
  50. return sr.ReadToEnd().Trim();
  51. }
  52.  
  53. /// <summary>
  54. /// 发短信通用接口
  55. /// </summary>
  56. /// <param name="text">短信内容</param>
  57. /// <param name="mobile">接收的手机号码,有多个手机号则用逗号分隔,一次最多100个手机号码</param>
  58. /// <returns>Json格式</returns>
  59. public static string SendSms(string text, string mobile)
  60. {
  61. //注意:参数必须进行Uri.EscapeDataString编码。以免&#%=等特殊符号无法正常提交
  62. string parameter = "apikey=" + APIKEY + "&mobile=" + mobile + "&text=" + text;
  63. return HttpPost(URI_SEND_SMS, parameter);
  64. }
  65.  
  66. /// <summary>
  67. /// 模板接口发短信
  68. /// </summary>
  69. /// <param name="tpl_id">模板ID</param>
  70. /// <param name="mobile">接收的手机号码</param>
  71. /// <param name="tpl_value">模板变量值</param>
  72. /// <returns>Json格式</returns>
  73. public static string TplSendSms(long tpl_id, string mobile, string tpl_value)
  74. {
  75. string postDataStr = "apikey=" + APIKEY + "&mobile=" + mobile + "&tpl_id=" + tpl_id.ToString() + "&tpl_value=" + tpl_value;
  76. return HttpPost(URI_TPL_SEND_SMS, postDataStr);
  77. }
  78.  
  79. /// <summary>
  80. /// 查回复的短信
  81. /// </summary>
  82. /// <param name="page_num">页码,从1开始</param>
  83. /// <param name="page_size">每页个数,最大100个</param>
  84. /// <param name="mobile">接收的手机号码</param>
  85. /// <returns>Json格式</returns>
  86. public static string GetReplySms(int page_num, int page_size, string mobile,string datastart,string dataend)
  87. {
  88. DateTime now = DateTime.Now;
  89. //string datastart = now.AddDays(-3).ToString("yyyy-MM-dd 00:00:00");
  90. //string datasend = now.AddDays(1).ToString("yyyy-MM-dd 00:00:00");
  91. string postDataStr = "apikey=" + APIKEY + "&start_time=" + datastart + "&end_time=" + dataend
  92. + "&page_num=" + page_num + "&page_size=" + page_size + "&mobile=" + mobile;
  93.  
  94. return HttpPost(URI_GET_REPLY, postDataStr);
  95. }
  96.  
  97. /// <summary>
  98. /// 通用接口请求
  99. /// </summary>
  100. /// <param name="Url"></param>
  101. /// <param name="postDataStr"></param>
  102. /// <returns></returns>
  103. public static string HttpPost(string Url, string postDataStr)
  104. {
  105. byte[] dataArray = Encoding.UTF8.GetBytes(postDataStr);
  106. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
  107. request.Method = "POST";
  108. request.ContentType = "application/x-www-form-urlencoded";
  109. request.ContentLength = dataArray.Length;
  110. //request.CookieContainer = cookie;
  111. Stream dataStream = request.GetRequestStream();
  112. dataStream.Write(dataArray, , dataArray.Length);
  113. dataStream.Close();
  114. try
  115. {
  116. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  117. StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
  118. String res = reader.ReadToEnd();
  119. reader.Close();
  120. return res;
  121. }
  122. catch (Exception e)
  123. {
  124. return e.Message + e.ToString();
  125. }
  126. }
  127. }

调用短信模版方式:

  1. string tpl_value = HttpUtility.UrlEncode(
  2. HttpUtility.UrlEncode("#username#", Encoding.UTF8) + "=" +
  3. HttpUtility.UrlEncode(phone, Encoding.UTF8) + "&" +
  4. HttpUtility.UrlEncode("#passwd#", Encoding.UTF8) + "=" +
  5. HttpUtility.UrlEncode(passwd, Encoding.UTF8), Encoding.UTF8);
  6. //短信失败时,调用第二短信接口
  7. YunpianSMS.TplSendSms(1508914, phone, tpl_value);

阿里大鱼短信通用类

  1. public class AliDaYuSMS
  2. {
  3. /// <summary>
  4. /// <summary>
  5. /// Url
  6. /// </summary>
  7. private static string Url = "http://gw.api.taobao.com/router/rest";
  8. /// AppKey
  9. /// </summary>
  10. private static string AppKey = "AppKey";
  11. /// <summary>
  12. /// AppSecret
  13. /// </summary>
  14. private static string AppSecret = "AppSecret";
  15.  
  16. /// <summary>
  17. /// 发短信通用接口
  18. /// </summary>
  19. /// <param name="extend">公共回传参数,
  20. /// 在“消息返回”中会透传回该参数;举例:用户可以传入自己下级的会员ID,在消息返回时,
  21. /// 该会员ID会包含在内,用户可以根据该会员ID识别是哪位会员使用了你的应用</param>
  22. /// <param name="smsFreeSignName">短信签名</param>
  23. /// <param name="code">短信模板ID</param>
  24. /// <param name="smsParam">短信模板变量“验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!”,
  25. /// 传参时需传入{"code":"1234","product":"alidayu"}</param>
  26. /// <param name="mobile">接收的手机号码,群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。</param>
  27. /// <returns>Json格式</returns>
  28. public static string SendSms(string extend, string smsFreeSignName, string code, string smsParam, string mobile)
  29. {
  30. ITopClient client = new DefaultTopClient(Url, AppKey, AppSecret);
  31. AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
  32. req.Extend = extend;
  33. req.SmsType = "normal";
  34. req.SmsFreeSignName = smsFreeSignName;
  35. req.SmsParam = smsParam;
  36. req.RecNum = mobile;
  37. req.SmsTemplateCode = code;
  38. AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
  39. return rsp.SubErrMsg;
  40. }
  41. }
  42.  
  43. 调用方式
  44.  
  45. var smsresult = AliDaYuSMS.SendSms(phone, "潮运动", "SMS_13000621", "{\"username\":\"" + phone + "\",\"passwd\":\"" + passwd + "\"}", phone);

asp.net C# 实现阿里大鱼和云片网短信接口类的更多相关文章

  1. 阿里大鱼.net core 发送短信

    阿里大鱼还未提供 .net core 版SDK,但提供了相关API,下面是.net core版实现,只是简单发送短信功能: using System; using System.Collections ...

  2. TP3.2.3 接入阿里sms 短信接口

    阿里云短信接口 配置文件 config.php //阿里大鱼 'Ali_SMS' =>array( 'sms_temp' =>'短信模板', 'sms_sign' =>'签名', ' ...

  3. asp.net mvc短信接口调用——阿里大于API开发心得

    互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...

  4. 阿里大鱼短信接口整合Tp3.2.3开发整理

    阿里大鱼 http://www.alidayu.com/ 的短信接口总体是不错的,别安驹个人认为不管是从性价比还是稳定性上都是跟同类的短信接口好些,毕竟是大公司的东西不会差到哪去.下面把之前开发的短信 ...

  5. 阿里大鱼短信接口(Python3版)

    近期由于须要用到短信接口,选型的的结果是用阿里大鱼的短信服务,然而淘宝开放平台(TOP)的SDK已经非常多年没有更新了.不支持python3.自己动手改了半天,还是不太正常,索性不用它,自己写一个算了 ...

  6. 模板短信接口调用java,pythoy版(二) 阿里大于

    说明 功能:短信通知发送 + 短信发送记录查询,所有参数我没有改动,实测有效! 请自行参考 + 官方API! 短信模板示例:尊敬的${name},您的快递已在飞奔的路上,将在今天${time}送达您的 ...

  7. asp调用短信接口实现用户注册

    前几天做一个asp语言开发的网站需要实现用户注册短信验证功能,就研究了一下如何实现,简单给大家分享下调用过程. 首先需要找到一个第三方短信接口,当时用的是动力思维乐信的短信接口. 首先需要先注册个动力 ...

  8. laravel+阿里大于实现发送验证码短信

    一.短信服务使用阿里大于提供的短信接口 阿里大于官方网站上的接入流程: 在阿里大于申请接口后,需要做以下操作: 申请签名 申请短信模板 创建Accesskey,可以通过权限最大的Accesskey创建 ...

  9. THINKPHP3.2.3增加阿里云短信接口思路整理

    https://help.aliyun.com/document_detail/55359.html?spm=5176.product44282.4.7.O4lc1n 阿里云短信服务地址,感冒的下载看 ...

随机推荐

  1. 201521123008<java程序设计>第三周实验总结

    1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

  2. 201521123023《java程序设计》第三周学习总结

    1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...

  3. 201521123118《java程序与设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出 ...

  4. Python内置函数详解

    置顶   内置函数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii https://docs.pyth ...

  5. 三级菜单的实现(python程序)

    这是刚开始写程序,三级菜单的程序基本是用字典实现,很low,以后学习了其他更好的东西,我会继续上传,然后争取在我水平高深之后,把这个简单的东西实现的狠高大上. _author_ = "zha ...

  6. 本地不安装oracle,plsql照样用起来

    对于配置有限的电脑,不安装oracle需要使用plsql怎么设置才可以使用呢 一.首先下载一个instantclient (Oracle提供的一个较为轻量级的客户包) 据说plsql不支持64位的in ...

  7. Spring第九篇【Spring与Hibernate整合】

    前言 前面已经学习了如何使用Spring与Struts2进行整合,本博文主要讲解如何使用Spring对Hibernate进行整合 Spring和Hibernate整合的关键点: SessionFact ...

  8. 从JS和jQuery浅谈DOM操作,当我们在获取时,究竟获取了什么

    0.写在前面的话 自己对前端的东西一直不是很熟,现在开始要想办法从前端各个地方去获取想要的属性值的时候,也基本是在网上现炒现卖,几周下来,发现自己还是迷迷糊糊,可以算是一无所获. 所以就抽时间,把这一 ...

  9. Java-大集合拆分为指定大小的小集合

    因为Oracle数据的in 最大允许1000 ,超过就会报错, 所以需要将集合拆分为多个集合进行处理. /** * 拆分集合 * @param <T> * @param resList 要 ...

  10. vue+element搭建的后台管理系统

    最近工作不是很忙,自己在学习vue,在网上找了一个简单的项目练练手..... 这是本人的gitHub 上的项目地址:https://github.com/shixiaoyanyan/vue-admin ...