.NET Core阿里大于短信发送SDK修改以及使用
一、问题背景
继上次七牛云SDK的问题之后(参考:http://www.cnblogs.com/OMango/p/8447480.html),在发送短信的功能上又出现了问题,我们短信服务使用的是阿里大于的服务,之前的平台是.NET Framework的平台,使用阿里官方的SDK并没有出现什么幺蛾子,但是转到.NET Core下后,找遍了阿里官方也并没有找到.NET Core的SDK,不得不说,在这方面.NET Core还有很长的路要走啊,虽然没有SDK,但是功能还是要完成啊,那怎么办呢?只能自己从.NetFrameWork的SDK里进行提取
二、修改说明
emmmm,好好看了一遍SDK以及官方文档后,发现topsdk里面还包含了其他的一些功能,但是我只需要短信服务啊,SO,既然准备改造那就把其他的相关功能都去掉了,只留下了短信相关功能,废话不多说先上链接https://github.com/Hello-Mango/MTopSdkSMS.Core,这是我已经修改后的代码,也经过测试可以发送短信到手机,dll也已经上传到NUGET(搜索MTopSdkSMS)
修改方案主要是.NET FrmeWork下的HttpRequest类在.NetCore中不是默认带的,所以需要安装Microsoft.AspNetCore.Http,该SDK里还使用了反射的方法,所以还需要安装System.Reflection.Emit.Lightweight,最后一点就是将
wReq.ServicePoint.Expect100Continue = false;
修改为
ServicePointManager.Expect100Continue = false;
如果不修改的话,会报平台不支持的错误,如果大家想自己尝试的话,可以下载官方的SDK源码进行.NET Core的改造,或者可以直接Nuget搜索MTopSdkSMS
三、具体使用
具体的代码使用方法完全可以参照官方的文档使用,我这边就给出一个简单的封装代码
public SMS(string phoneNo, String template, String _AppKey, String _AppSecret, String _Extend, String _SmsFreeSignName, String _SmsTemplateCode)
{
_phoneNo = phoneNo;
_template = template;
Appsecret = _AppSecret;
Appkey = _AppKey;
Extend = _Extend;
SmsFreeSignName = _SmsFreeSignName;
SmsTemplateCode = _SmsTemplateCode;
} /// <summary>
///短信身份验证
/// </summary>
/// <param name="phoneNo">手机号</param>
/// <param name="dicParam">短信模板变量,对应模板中自定义字段</param>
/// <returns></returns>
public String Send()
{
//短息通知API请求参数
ITopClient client = new DefaultTopClient(url, Appkey, Appsecret);
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.Extend = Extend; //公共回传参数,在“消息返回”中会透传回该参数;
req.SmsType = "normal"; //短信类型,传入值请填写normal
req.SmsFreeSignName = SmsFreeSignName; //短信签名
req.SmsParam = _template; //短信模板变量
req.RecNum = _phoneNo; //短信接收号码
req.SmsTemplateCode = SmsTemplateCode; //短信模板ID
AlibabaAliqinFcSmsNumSendResponse response = client.Execute<AlibabaAliqinFcSmsNumSendResponse>(req);
if (response.Result == null)
{
return GetErrorMsg(response.SubErrCode);
}
else
{
return response.Result.Success.ToString();
}
}
四、总结
.NET Core目前来说第三方库上支持相对于其他来说还是比较少,例如oracle目前还都没有关于.NET Core的驱动库,一些简单的碰到只能自己想办法去转换或者其他途径实现,但是后续相信.NET Core会越来越好
PS:由于这个只是我个人的修改作品,未经过大量的验证,如果大家发现有什么问题的话,也请联系我。
作者: Mango
出处: http://www.cnblogs.com/OMango/
关于自己:专注.Net桌面开发以及Web后台开发,开始接触微服务、docker等互联网相关
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,如有问题, 可邮件(hongjb@yizit.com)咨询.
.NET Core阿里大于短信发送SDK修改以及使用的更多相关文章
- ASP版_阿里大于短信API Demo
阿里大于申请地址:http://www.alidayu.com 阿里大于短信发送Demo: ******index.asp************* <%@LANGUAGE="VBSC ...
- 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)
微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...
- pyhthon 利用爬虫结合阿里大于短信接口实现短信发送天气预报
# -*- coding: utf-8 -*- ''''' SDK for alidayu requires: python3.x, requests @author: raptor.zh@gmail ...
- 阿里云短信发送服务SDK-Python3
本文提供阿里云的短信发送服务SDK,使用Python3实现. # -*- coding: utf-8 -*- # pip install requests import requests import ...
- Abp 添加阿里云短信发送
ABP中有短信发送接口ISmsSender public interface ISmsSender { Task<string> SendAsync(string number, stri ...
- 2018阿里云短信发送DEMO接入简单实例
以下更新2018-04-2309:57:54 后续不再更新, 基本类: app/SignatureHelper.php <?php namespace aliyun_mns; /** * 签名助 ...
- spring boot集成阿里云短信发送接收短信回复功能
1.集成阿里云通信发送短信: 在pom.xml文件里添加依赖 <!--阿里短信服务--> <dependency> <groupId>com.aliyun</ ...
- .net core 使用阿里云短信发送SMS
阿里云官方的skd(aliyun-net-sdk-core,aliyun-net-sdk-dysmsapi)在dnc中发送短信会出错,nuget上的包貌似也一样不管用.直接改下sdk当然也可以,但就发 ...
- asp.net mvc 接入阿里大于 短信验证码发送
项目前端页面实例 第1步:登录阿里大于控制台 https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG 第2步:创建应用 第3步:配 ...
随机推荐
- iptables nat及端口映射
iptables nat及端口映射 发布: 2010-6-11 15:05 | 作者: admin | 来源: SF NetWork 门户网站 iptables 应用初探(nat+三层访问控制) ip ...
- Linux指令--chmod
chmod命令用于改变linux系统文件或目录的访问权限.用它控制文件或目录的访问权限.该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. Linux系统中的每 ...
- Nginx的安装(笔记)
0, 先决条件Nginx 依赖 zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre安装命令:yum -y install make z ...
- RESTClient
RESTClient是Mozilla Firefox一个用于测试http请求插件. 1.打开火狐扩展搜索RESTClient进行安装并重启浏览器. 2.重启后可以在Mozilla Firefox地址栏 ...
- shell第一篇
前两天不停的再看内核相关的内容,了解内核的形成.内核的执行流程.内核的作用,结果是舍近求远. 其实我只是想了解一下shell的工作,shell与内核有关,但并不需要我么真正去做什么,至少对于我这样额初 ...
- disptch_after 自递归
NSArray *arr = @[@"1", @"2", @"3", @"4", @"5"]; ...
- 一个最简单的cell按钮点击回调
在cell.h定义 @property(nonatomic,strong)void(^pushType)(NSInteger); 在cell.m按钮点击时 _pushType(1):(举例) ...
- C之多线程(例子很不错)
1.线程 线程池是一个树状结构. 多线程解决并发问题. 一个线程内部的执行顺序是线性的.而线程之间是乱序的. 若要创建一个多线程程序,它的参数必须是空指针类型. 变色龙程序: #define _CRT ...
- SpringMVC和Struts2的比较
整体的框架机制 1.Struts2的入口是StrutsPrepareAndExecuteFilter,SpringMVC的入口是通过DispatcherServlet实现. 2.Str ...
- java之过滤器Filter (应用场景)
filter在开发中的常见应用: * 1.filter可以目标资源执行之前,进行权限检查,检查用户有无权限,如有权限则放行,如没有,则拒绝访问 * 2.filter可以放行之前,对re ...