.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等互联网相关

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,如有问题, 可邮件([email protected])咨询.

原文地址:https://www.cnblogs.com/OMango/p/8490983.html

时间: 2024-08-29 19:52:05

.NET Core阿里大于短信发送SDK修改以及使用的相关文章

spring-boot与阿里大于短信发送平台

申请短信模板 现在需要企业才能申请阿里大于的短信模板,故,略 spring-boot (1) 创建独立maven工程(jar),引入相关依赖 <!-- jdk版本 --> <properties> <java.version>1.7</java.version> </properties> <!-- parent依赖 --> <parent> <groupId>org.springframework.boot&

阿里大鱼短信发送接口开发

一. API接口介绍 alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量.使用前需要在阿里大于管理中心添加短信签名与短信模板.测试时请直接使用正式环境HTTP请求地址. [重要]批量发送(一次传递多个号码eg:1381111111,1382222222)会产生相应的延迟,触达时间要求高的建议单条发送 公共参数 请求地址: 环境 HTTP请求地址 HTTPS请求地址 正式环境 http://gw.api.taobao.com

阿里大鱼短信发送

阿里大鱼短信发送 官方文档 # 帮助文档 https://help.aliyun.com/product/44282.html?spm=5176.12453370.0.0.5e841cben3xsbf # openapi在线演示 https://api.aliyun.com/new#/?product=Dysmsapi&api=SendSms&tab=DEMO&lang=JAVA mozhuiqiu 步骤 获取accessId, accessSecret, 签名,模板id,模板参数

pyhthon 利用爬虫结合阿里大于短信接口实现短信发送天气预报

1 # -*- coding: utf-8 -*- 2 ''''' 3 SDK for alidayu 4 5 requires: python3.x, requests 6 7 @author: [email protected] 8 requests 打包出错故替换成urllib库 9 ''' 10 11 #import requests 12 import urllib.request 13 import urllib.parse 14 import hashlib 15 from tim

thinkphp5 阿里云短信 发送多参数的短信

有的朋友用阿里oss的时候可能会发送多参数的短信, 例如短信模版是  您好${code1},收到您的联系方式${code2},您的地址为${code3},我们会尽快派送. 类似于这样的多参数模版,首先第一关,可能是参数过长,怎么办,直接去阿里申请售后就可以了,和他们反馈一下,然后他们会给你把字数限制解除,然后你就可以传递超过20个字的内容了. 这一步完事,下一步就是接入阿里oss了,首先下载阿里oss的 类包了,去阿里官网下载就可以了,我这里整合的是thinkphp5.下载完成后具体步骤如下 1

阿里云短信发送

一.准备工作: 1.下载SDK工具包 https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.2.6.BgY073 2.申请ID和Secret 3.申请签名 https://dysms.console.aliyun.com/dysms.htm?spm=5176.8195934.499931.1.64sayk#/ 4.选择短信模板 二.封装函数 /** * 发送短信 * @param $mobile 手机号码 * @

asp.net mvc 接入阿里大于 短信验证码发送

项目前端页面实例 第1步:登录阿里大于控制台 https://www.alidayu.com/center/user/account?spm=0.0.0.0.P1K1jG 第2步:创建应用 第3步:配置短信签名 第4步:配置短信模板 第5步:前端 <tr class="margin-top"> <td class="padding-top text-center">手机号</td> <td><input type

阿里大于短信接口提示500错误的解决方法

这两天做公司项目的邀请加入页面时需要调试阿里大于的短信接口,因为项目中其他地方也有用到这个接口,老大已经写好了,于是我就直接拿过来用了,可是不管怎么调试服务器那边都是一直返回500错误[无可用用户信息],在网上搜了好多资料来看,可是都没有找到相关的,因为之前做另一个项目时自己也亲自接入过这个接口,当时是可以用的,于是先在本地试了下那个项目的大于接口,发现是正常的,于是就把那个项目的代码直接搬了过来,可是原来好好的代码一般到了现在项目里面就不能用了,真的是头痛死了,调的心里都烦了,于是就想着先跳过

阿里大鱼短信发送PHP代码

首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的  然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",".php"); date_default_timezone_set('Asia/Shanghai'); $SmsParam = json_encode($param['SmsParam']); $c = new \TopClient; $c->method = $config['method']