你们想要的短信对接,要舍得点钱哦。。。。

/// <summary>
    /// http://sms.webchinese.cn/api.shtml
    /// </summary>
    public class SMSWebChineseApi
    {
        private string SMS_UID = string.Empty; //用户名
        private string SMS_KEY = string.Empty; //接口秘钥

private Dictionary<string, string> dcReurnKeyValue = new Dictionary<string, string>()
        {
        {"-1","没有该用户账户"},
        {"-2","接口密钥不正确,不是账户登陆密码"},
        {"-21","MD5接口密钥加密不正确"},
        {"-3","短信数量不足"},
        {"-11","该用户被禁用"},
        {"-14","短信内容出现非法字符"},
        {"-4","手机号格式不正确"},
        {"-41","手机号码为空"},
        {"-42","短信内容为空"},
        {"-51","短信签名格式不正确,接口签名格式为:【签名内容】"},
        {"-6","IP限制"},
        {"大于0","短信发送数量:"}
        };

/// <summary>
        /// 返回UTF-8编码发送接口地址
        /// </summary>
        /// <param name="receivePhoneNumber">目的手机号码(多个手机号请用半角逗号隔开)</param>
        /// <param name="receiveSms">短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费</param>
        /// <returns>返回UTF-8编码发送接口地址</returns>
        public string GetPostUrl(string receivePhoneNumber, string receiveSms)
        {
            return "http://utf8.sms.webchinese.cn/?Uid=" + SMS_UID + "&key=" + SMS_KEY + "&smsMob=" + receivePhoneNumber + "&smsText=" + receiveSms;
        }

/// <summary>
        /// 调用时只需要把拼成的URL传给该函数即可。判断返回值即可
        /// </summary>
        /// <param name="receivePhoneNumber">目的手机号码(多个手机号请用半角逗号隔开)</param>
        /// <param name="receiveSms">短信内容,最多支持400个字,普通短信70个字/条,长短信64个字/条计费</param>
        /// <returns></returns>
        public string SendWebChineseSmsInfo(string receivePhoneNumber, string receiveSms)
        {
            string postUrl = GetPostUrl(receivePhoneNumber, receiveSms);
            string strReturnMsg = string.Empty;
            if (string.IsNullOrEmpty(postUrl))
            {
                return strReturnMsg;
            }
            string targeturl = postUrl.Trim().ToString();
            try
            {
                HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);
                hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
                hr.Method = "GET";
                hr.Timeout = 30 * 60 * 1000;
                WebResponse hs = hr.GetResponse();
                Stream sr = hs.GetResponseStream();
                StreamReader ser = new StreamReader(sr, Encoding.Default);
                strReturnMsg = ser.ReadToEnd();
            }
            catch
            {
                strReturnMsg = null;
            }
            if (string.IsNullOrEmpty(strReturnMsg))
            {
                return string.Empty;
            }
            if (dcReurnKeyValue.Keys.Contains(strReturnMsg))
            {
                return dcReurnKeyValue[strReturnMsg];
            }
            else
            {
                return dcReurnKeyValue["大于0"] + strReturnMsg;
            }
        }
    }

C#&.Net干货分享- 构造SMSWebChineseApi对接第三方短信平台的更多相关文章

  1. JAVA 调用第三方短信平台接口发送短信

    做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...

  2. C#&.Net干货分享- 构造BaiduLanguageHelper对接百度的语言翻译

    全部是封装的API源码... namespace Frame.Api{    /// <summary>    /// 百度多语言支持器    /// </summary>   ...

  3. java对接短信平台

    短信验证码目前是比较主流验证身份的一种方式,下面分享下我对接的几种短信平台 阿里云短信:https://api.alidayu.com/docs/api.htm?spm=a3142.7395905.4 ...

  4. Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自己主动填入功能结合实例)

    用户注冊或者找回password时通常会用到短信验证功能.这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注冊用户.获取SD ...

  5. 分享使用tcb-router路由开发的云函数短信平台SDK

    上篇文章我们分享了如何使用纯的云函数开发的榛子短信短信(http://smsow.zhenzikj.com)SDK,由于微信对于未付费云函数个数的限制,这种方法存在缺陷,经过改进,使用tcb-rout ...

  6. php 对接java短信接口带有英文逗号就无法通过

    在对接短息接口时,对方是java接口,要求content两次编码 短信内容(Content)发起请求前必须进行URL转码.例如对于短信内容为“中文短信abc”,转码过程如下(java语言): Stri ...

  7. C#&.Net干货分享-构造QRCoderHelper生成二维码图片

    不想说废话,直接源码拿去用... /// <summary>    /// 二维码管理    /// </summary>    public class QRCoderHel ...

  8. Zabbix使用第三方API短信报警

    之前试过邮件告警,微信告警.但是,对于一些企业的重要业务服务器,可能是存放在隔离的内网中的,无法正常连接外网.这个时候,就有必要考虑一下使用短信告警.以下这个其实还是需要服务器能够连接到外网的,但是我 ...

  9. [android]ShareSDK——内容分享和短信验证

    前言 新版本号ShareSDK的分享和短信验证,按官网的文档,都须要加入一个<Activity></Activity>标签,而分享和短息验证的这个标签内容都一样.会冲突. 解决 ...

随机推荐

  1. react-native Android release打包失败

    npm run build报错(android) react-native 0.5x在安卓环境 gradle 3.x版本下编译release版本的时候提示编译失败,但是debug模式下是没有问题的. ...

  2. 大数据之Linux基本指令

    1:文件操作类指令 ls 是英文单词list 的简写, 其功能为列出目录的内容,是最常用的命令之一 -a all 显示指定目录下所有子目录与文件, 包含隐藏文件 -l 以列表方式显示文件的详细信息 - ...

  3. SPOJ- Distinct Substrings(后缀数组&后缀自动机)

    Given a string, we need to find the total number of its distinct substrings. Input T- number of test ...

  4. Linux sudo用户提权与日志审计

    一.格式说明及常用配置选项 格式: 用户或组 主机=授权可以使用哪个用户的权限 可以执行的命令 User_Alias 用户定义别名(别名可以是用户,用户组(用户组前面要加%))例:User_Alias ...

  5. Winform修改配置文件节点保存到配置文件

    主要使用: Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ...

  6. GTC 2019参会整理

    NVIDIA GTC 2019在苏州金湖国际会议中心举行,由于同事有其他会议冲突,所以我代替他来参加了此次会议.作为刚接触GPU和机器学习不久的新人来说,感觉进入了一个新世界,深刻体验到技术的革新迭代 ...

  7. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux

    如果想体验Linux环境下开发.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像RHEL ...

  8. 拖动条(SeekBar)的功能与用法

    拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常用于对系统的某种数值进行调节,比如调节音量等 ...

  9. ceph工作原理

    一.概述 Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之 ...

  10. 【红宝书】第20章.JSON

      JSON是一种轻量级的数据格式.JSON使用JS语法的子集表示对象.数组.字符串.数值.布尔值和null,不支持undefined JSON.stringify() // JSON.stringi ...