C#阿里云短信发送

步骤 1 创建阿里云账号
为了访问短信服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

访问阿里云 官方网站,单击页面右上角 立即注册 按钮。
按照屏幕提示完成注册流程并进行实名认证,短信服务只支持实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。

步骤 2 获取阿里云访问密钥
为了使用短信发送API-NET SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

步骤 3 在控制台完成模板与签名的申请,获得调用接口必备的参数
短信签名

根据用户属性来创建符合自身属性的签名信息。企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明。

短信签名需要审核通过后才可以使用。

短信模板

短信模板,即具体发送的短信内容。

短信模板可以支持验证码、短信通知、推广短信、国际/港澳台消息四种模式。验证码和短信通知,通过变量替换实现个性短信定制。推广短信不支持在模板中添加变量。国际/港澳台消息只能使用国际/港澳台短信模版发送短信。

短信模板需要审核通过后才可以使用。

为了成功发送一条短信通知,您至少需要完成以下步骤

一、在控制台完成短信签名与短信模板的申请,获得调用接口必备的参数

在“短信签名”页面完成签名的申请,获得短信签名的字符串 签名申请手册

在“短信模板”页面完成模板的申请,获得模板ID。模板申请手册

参数入参列表
C#阿里云短信发送_第1张图片
出参列表
C#阿里云短信发送_第2张图片

技术对接步骤
1:下载SDK工具包
1、sdk工具包在解压后可以找到 aliyun-net-sdk-core.dll 和 aliyun-net-sdk-dysmsapi.dll 这两个文件。( net3.5和net2.0的用户请使用/api_demo/net2.0目录下的;core2.0的用户请使用、api_demo/core2.0/目录下的)

2、在您的 Visual Studio 上右键点击 项目,再单击 添加引用 > 浏览(如果您用的是 MonoDevelop,请按照导入 DLL 的相应方法导入这个 .dll 文件),选择以上 .dll 文件,单击 确定 按钮。您就可以在工程中使用阿里云云通信短信服务的 C# SDK 了。

SDK&DEMO【下载地址】

2: 编写样例程序

using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
using System;

namespace NetWing.Common.Ali
{
    public static class SMSSend
    {
        static String product = "Dysmsapi"; // 短信API产品名称
        static String domain = "dysmsapi.aliyuncs.com"; // 短信API产品域名
        static String accessId = "阿里云AccessKeyId";
        static String accessSecret = "阿里云AccessKeySecret";
        static String regionIdForPop = "cn-hangzhou";
        /// 
        /// 发送短信接口
        /// 
        /// 必须 短信接收号码,支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码
        /// 必须 短信签名
        /// 必须 短信模板ID,发送国际/港澳台消息时,请使用国际/港澳台短信模版
        /// 必须 短信模板变量替换JSON串
        /// 可选 上行短信扩展码,无特殊需要此字段的用户请忽略此字段
        /// 可选 外部流水扩展字段
        /// 
        public static bool send(string PhoneNumbers, string SignName, string TemplateCode, string TemplateParam, string SmsUpExtendCode = "90999", string OutId = "abcdefgh")
        {
            IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);
            DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
            IAcsClient acsClient = new DefaultAcsClient(profile);
            SendSmsRequest request = new SendSmsRequest();
            try
            {
                request.PhoneNumbers = PhoneNumbers;
                request.SignName = SignName;
                request.TemplateCode = TemplateCode;
                request.TemplateParam = TemplateParam;
                request.OutId = OutId;
                // 请求失败这里会抛ClientException异常
                SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
                if (sendSmsResponse.Code == "OK")
                {
                    return true;
                }
                else
                {
                    WriteLogs.WriteLogs("SMS_Logs", "Error >> " + sendSmsResponse.Message, "请求号码:" + PhoneNumbers);
                    return false;
                }
            }
            catch (ServerException e)
            {
                WriteLogs.WriteLogs("SMS_Logs", "Error >> " + e.Message, "请求号码:" + PhoneNumbers);
                return false;
            }
            catch (ClientException e)
            {
                WriteLogs.WriteLogs("SMS_Logs", "Error >> " + e.Message, "请求号码:" + PhoneNumbers);
                return false;
            }
        }
    }
}

完整文档参考 短信服务

你可能感兴趣的:(C#,asp.net,阿里云,阿里云,c#)