前言

项目环境使用 .NET Core 2.0,由于阿里云官方SDK目前(2018-01-12)版本尚未支持 .NET Core 环境,github 找到 aliyun-openapi-sdk-net-core,经测试使用的SDK已是旧版本,无法正常工作了。

阿里云官方SDK回复下个版本支持 .NET Core 环境。

说明

由于并未阅读官方接口文档,本项目主要参考阿里云官方PHPSDK轻量版,改写为 .NET Core 2.0 版本,经测试运行正常,其中加密等方法均参考官方SDK。(详见参考和引用部分)

环境要求

  • 支持 .Net Core 2.0 及以上版本;
  • 直接复制代码文件即可,或自行改为单文件版本。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/// <summary>
/// 阿里云短信
/// https://www.aliyun.com/product/sms?spm=5176.8142029.388261.321.3836dbccTHaG24
/// </summary>
public class AliyunSms
{
public static string SendSms()
{
// *** 需用户填写部分 ***

//fixme 必填: 请参阅 https://ak-console.aliyun.com/ 取得您的AK信息

string accessKeyId = "your access key id";//你的accessKeyId,参考本文档步骤2
string accessKeySecret = "your access key secret";//你的accessKeySecret,参考本文档步骤2

Dictionary<string, string> smsDict = new Dictionary<string, string>();

//fixme 必填: 短信接收号码
smsDict.Add("PhoneNumbers", "17000000000");

//fixme 必填: 短信签名,应严格按"签名名称"填写,请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
smsDict.Add("SignName", "短信签名");

//fixme 必填: 短信模板Code,应严格按"模板CODE"填写, 请参考: https://dysms.console.aliyun.com/dysms.htm#/develop/template

smsDict.Add("TemplateCode", "SMS_0000001");

// fixme 可选: 设置模板参数, 假如模板中存在变量需要替换则为必填项
smsDict.Add("TemplateParam", JsonConvert.SerializeObject(new { code = "12345", product = "阿里云短信" }));

//什么?Newtonsoft.Json也觉得重,那拼字符串好了
//smsDict.Add("TemplateParam", "{\"appname\":\"微关爱\",\"appstorename\":\"小黑\"}");



// *** 以下内容无需修改 ***
smsDict.Add("RegionId", "cn-hangzhou");
smsDict.Add("Action", "SendSms");
smsDict.Add("Version", "2017-05-25");

string domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)

// 初始化SignatureHelper实例用于设置参数,签名以及发送请求
var singnature = new SignatureHelper();

return singnature.Request(accessKeyId, accessKeySecret, domain, smsDict);

}

项目源码

参考和引用

Authors

yaosansi

License

licensed under the Apache License 2.0