分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

.NET Core阿里大于短信发送SDK修改以及使用

发布时间:2023-09-06 01:44责任编辑:沈小雨关键词:.NET

一、问题背景

  继上次七牛云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修改以及使用

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved