.net 移动mas短信接口开发
接口文档下载
1.移动后台接入用户新增(选择HTTP协议)
2.后台代码
/// <summary>
/// 用户名
/// </summary>
private readonly static string UserName = ConfigurationManager.AppSettings["SmsUserName"];
/// <summary>
/// 密码
/// </summary>
private readonly static string UserPwd = ConfigurationManager.AppSettings["SmsUserPwd"];
/// <summary>
/// 企业名称
/// </summary>
private readonly static string EcName = ConfigurationManager.AppSettings["SmsEcName"];
/// <summary>
/// 签名
/// </summary>
private readonly static string Signature = ConfigurationManager.AppSettings["SmsSign"];
public static MessageRes Send(string mobiles, string content)
{
JObject obj = new JObject();
var addSerial = "";//可以随便写,三位数
obj.Add("ecName", new JValue(EcName));
obj.Add("apId", new JValue(UserName));
obj.Add("secretKey", new JValue(UserPwd));
obj.Add("mobiles", new JValue(mobiles));
obj.Add("content", new JValue(content));
obj.Add("sign", new JValue(Signature));
obj.Add("addSerial", new JValue(addSerial));
var mac = EcName + UserName + UserPwd + mobiles + content + Signature + addSerial;
var mac1 = UserMd5(mac);//要进行32位MD5加密
var length = mac1.Length;
obj.Add("mAC", new JValue(mac1));
string paras = obj.ToString();
var jiami = Base64Code(paras);//传参数前要进行64位加密
System.Net.WebClient pWebClient = new System.Net.WebClient();
pWebClient.Headers.Add("Content-Type", "application/json;charset=UTF-8"); //charset=UTF-8
pWebClient.Headers.Add(HttpRequestHeader.Accept, "*/*");
pWebClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
byte[] returnBytes = pWebClient.UploadData("http://112.35.1.155:1992/sms/norsubmit", "POST", System.Text.Encoding.UTF8.GetBytes(jiami));
var temp = System.Text.Encoding.UTF8.GetString(returnBytes);
return JsonConvert.DeserializeObject<MessageRes>(temp);
}
/// <summary>
/// Base64加密
/// </summary>
/// <param name="Message"></param>
/// <returns></returns>
public static string Base64Code(string Message)
{
byte[] bytes = Encoding.UTF8.GetBytes(Message);//这里要注意不是Default 因为Default默认GB2312
return Convert.ToBase64String(bytes);
}
/// <summary>
/// Md5 加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static 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 MessageRes
{
public string msgGroup { get; set; }
public string rspcod { get; set; }
public bool success { get; set; }
}
参考地址:https://www.136.la/net/show-22990.html
最新文章
- 浅谈数据库优化方案--表和SQL
- Linux中执行shell脚本的4种方法总结
- Beginning Windows Azure Development Guide
- 约瑟夫环(Josehpuse)的模拟
- (转)原始图像数据和PDF中的图像数据
- Struts-1和2的比较
- 笔记 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法 》
- [转] Linux内核代码风格 CodingStyle [CH]
- jquery中各个事件执行顺序如下:
- css常用知识
- 对同一个项目下的多个数据库Context进行迁移Migrations
- binary heap
- coolpad 5879logcat不能输入日志解决办法
- ABP .Net Core API和Angular前端APP集成部署
- 剑指Offer 9. 变态跳台阶 (递归)
- ORACLE提示表名无效
- C# 基于泛型的自定义线性节点链表集合示例
- qt mysql驱动问题解绝
- python-day27--configparser模块
- PHPCMS列表循环序列号自增标签代码
热门文章
- Datawhale组队学习_Task03:详读西瓜书+南瓜书第4章
- 【Java EE】Day08 HTML&;CSS
- PW4052 是一颗适用于单节锂电池的、具有恒压/恒流充电模式的充电管理 IC
- 想早点下班?试试Aorm库吧,更方便的进行Go数据库操作
- Python:界面开发,wx入门篇
- STM32用PWM波控制呼吸灯代码
- Burp Suite安装
- SQL 之 SELECT语句
- 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验
- [OpenCV实战]22 使用EigenFaces进行人脸重建