移动MAS短信平台发送短信

MAS短信平台发送短信分为两种方式

参考文档下载

一、sdk调用

using mas.ecloud.sdkclient;
using System;

namespace 短信发送
{
    class Program
    {
        private static Client client = Client.instance;
        static void Main(string[] args)
        {
            string url = "";//身份认证地址,向客户经理获取。
            string apId = "";//账号
            string secretKey = "";//密码
            string ecName = "";    //集团名称
            string sign = "";    //网关签名编码
            string mobiles = "";//电话号码
            string content = "测试短信发送";//短信内容
            bool loginResult = client.login(url, apId, secretKey, ecName);
            Console.WriteLine("登录结果:" + loginResult);
                if (loginResult)
                {
                    // 发送短信
                    int sendResult = client.sendDSMS(new string[] { mobiles }, content, "", 5, sign, Guid.NewGuid().ToString());
                     Console.WriteLine("发送结果:" + sendResult);               

            }
}
    }
}

所需sdk

二、http调用

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace 短信发送
{
    public class SMSUtils
    {
        private static String apId = "";//用户名
        private static String secretKey = "";//密码
        private static String ecName = "";    //集团名称
        private static String sign = "";    //网关签名编码
        private static String addSerial = "";   //拓展码 填空
        public static String url = "http://112.35.1.155:1992/sms/norsubmit";//请求urlhttp://112.35.1.155:1992/sms/norsubmit
        private static String mobiles = "";//电话号码
        private static String content = "测试短信发送";//短信内容
        public SMSUtils()
        {

        }
        public void  SendMessage()
        {
            SendReq sendReq = new SendReq();
            sendReq.apId = apId;
            sendReq.ecName = ecName;
            sendReq.secretKey = secretKey;
            sendReq.content = content;
            sendReq.mobiles = mobiles;
            sendReq.addSerial = addSerial;
            sendReq.sign = sign;
            sendReq.mac = UserMd5(sendReq.ecName + sendReq.apId + sendReq.secretKey + sendReq.mobiles + sendReq.content + sendReq.sign);
            var reqText = JsonConvert.SerializeObject(sendReq);
            string encode = Convert.ToBase64String(Encoding.UTF8.GetBytes(reqText));
            sendPost(url, encode);

        }
        #region MyRegion
        private static void sendPost(string url, string param)
        {

            //创建HttpClient(注意传入HttpClientHandler)
            var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
            using (var http = new HttpClient(handler))
            {
                var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(param), Encoding.UTF8, "application/json");
                var response = http.PostAsync(url, content).Result;//传参使用
                response.EnsureSuccessStatusCode(); //确保HTTP成功状态值R
                //await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
                var result = response.Content.ReadAsStringAsync().Result;
                var json = JsonConvert.DeserializeObject<SendRes>(result);
                bool success = json.success;
            }
        }

        #endregion
        //MD5加密
        public string UserMd5(string str)
        {
            string cl = str;
            string pwd = "";
            MD5 md5 = MD5.Create();//实例化一个md5对像
            // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择 
            byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
            // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
            for (int i = 0; i < s.Length; i++)
            {
                // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
                pwd = pwd + s[i].ToString("x2");
            }
            return pwd;
        }

    }

    /**
     * 发送短信请求实体
     */
    public class SendReq
    {
        public string ecName { get; set; }     //集团客户名称
        public string apId { get; set; }        //用户名
        public string secretKey { get; set; }           //密码
        public string mobiles { get; set; }     //手机号码逗号分隔。(如“18137282928,18137282922,18137282923”)
        public string content { get; set; }     //发送短信内容
        public string sign { get; set; }        //网关签名编码,必填,签名编码在中国移动集团开通帐号后分配,可以在云MAS网页端管理子系统-SMS接口管理功能中下载。
        public string addSerial { get; set; }           //扩展码,根据向移动公司申请的通道填写,如果申请的精确匹配通道,则填写空字符串(""),否则添加移动公司允许的扩展码。
        public string mac { get; set; }         //API输入参数签名结果,签名算法:将ecName,apId,secretKey,mobiles,content ,sign,addSerial按照顺序拼接,然后通过md5(32位小写)计算后得出的值。
    }

    /**
     * 发送短信响应实体
     */
    public class SendRes
    {
        public string rspcod { get; set; } //响应状态码
        public string msgGroup { get; set; }    //消息批次号,由云MAS平台生成,用于验证短信提交报告和状态报告的一致性(取值msgGroup)注:如果数据验证不通过msgGroup为空
        public bool success { get; set; }    //数据校验结果
    }

}

原文地址:https://www.cnblogs.com/macT/p/11350760.html

时间: 2024-10-29 19:10:15

移动MAS短信平台发送短信的相关文章

国都企信通短信平台发送手机短信的python脚本一例

一年前,由于工作需要,给以色列的同事解释一下国都短信平台的短信发送格式,本来不懂python的我硬着头皮写了一个sample,比较粗,能用,但不优美,希望以后学会python能改得像我同事写的那么优雅 #!/usr/bin/python #coding:utf8 import sys,httplib,urllib,urllib2 import xml.etree.ElementTree as ET sms=u'测试短信内容[签名部分]' #input message here with '' g

java实现短信猫发送短信

原文:java实现短信猫发送短信 源代码下载地址:http://www.zuidaima.com/share/1550463672552448.htm 源码截图:

java 短信猫发送短信的方法

用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: ·                 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送短信,适用于大型的通信公司. ·                 2. 借助像GSM MODEM之类的设备(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人.要实现这种方式必须理解串口通信.AT指令.短信编码.解码. ·                 3. 借

使用阿里云短信服务发送短信验证码

阿里云短发服务使用流程: 1.在阿里云上完成短信服务的购买. 2.导入相关的jar包. <!-- 阿里云短信服务 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <!-- 阿里云短

JAVA利用第三方平台发送短信验证码。

前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

php梦网科技短信平台手机短信验证功能实现

1.表单传输页面 <?php session_start(); error_reporting(E_ALL & ~E_NOTICE); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http:

阿里云短信服务发送短信验证码(JAVA开发此功能)

开发此功能需注册阿里云账号,并开通短信服务(免费开通) 充值后,不会影响业务的正常使用!(因为发送验证类短信:1-10万范围的短信是0.045元/条).开发测试使用,充2块钱测试足够了 可参考阿里云官方开发文档了解详情,文档中写的也是很详细了... https://help.aliyun.com/product/44282.html 代码编写之前需要准备几个东西 1,aliyun-java-sdk-core.jar ,  aliyun-java-sdk-dysmsapi.jar  这2个jar包

事务:从短信平台插入短信模板与从运营平台插入短信模板

step1:运营平台插入一条短信模板 step2:短信平台插入一条短信模板 注意:分别向两个系统中插入短信模板的记录是相同的. 不管是先进行step1然后通知step2,还是先进行step2再进行step1,都有可能出现某一个step失败(如果都失败或者都成功就数据一致了): 当某一个step失败后,这两个系统某一个中有一条该短信模板的记录,而另一个则没有:两个系统之间的数据就无法保证一致性了,有点分布式事务的感觉. 就算在运营平台添加模板的方法进行事务管理(如使用@transactional注

使用阿里云的短信服务发送短信

在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发送短息,因此都是基于HTTP协议做的一个数据发送而已,接触阿里云的短信服务器后,发现阿里云还增加了非常多的参数,其中包括一些秘钥和签名的内容.短信发送由于比较敏感原因,大多数应用场景是验证码或者一些固定的信息提醒,因此厂商都要求客户按预定的模板来发送,这样限制了短信的应用场景,只能根据业务进行消息定制了.本篇随笔主要介绍阿里云的短信服务