const String product = "Dysmsapi";
//产品域名,开发者无需替换
const String domain = "dysmsapi.aliyuncs.com";
// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
const String accessKeyId = "LTAIF7R4BvL9hVV0";
const String accessKeySecret = "uAWf4dIXny3sRZ923zzqWYTHX0icII";
下面是方法
/// <summary>
/// 短息接口
/// </summary>
/// <param name="mobile"></param>
/// <param name="factory"></param>
/// <param name="user"></param>
/// <returns></returns>
[HttpPost("api/SendSMSController/sendsms")]
public SendSmsResponse SendSms(string mobile, string factory, string user)
{
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
SendSmsResponse response = new SendSmsResponse ();
//生成 验证码
Random rd = new Random();
int num = rd.Next(100000, 1000000);
try
{
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.PhoneNumbers = mobile; //手机号
//必填:短信签名-可在短信控制台中找到
request.SignName = "短息名称自定义";
//必填:短信模板-可在短信控制台中找到
request.TemplateCode = "提供的I模板D";
//${factory}的${user},电话${mobile},正在操作物权转移一批车辆给您,验证码是${code},请收到验证码后与${factory}相关人员核实!
//${factory}的${user}正在操作转移一批车辆给您,提醒码是${text},请与相关人员核实!
//通过模板设置参数
var msg = new
{
factory = factory,
user = user,
mobile = mobile,
text = num
};
var jsdata = JsonConvert.SerializeObject(msg);
CaptchaBll.Add(num.ToString(), mobile,20);//存入数据库验证码表
request.TemplateParam = jsdata;
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.OutId = "yourOutId";
//请求失败这里会抛ClientException异常
response = acsClient.GetAcsResponse(request);
}
catch (ServerException e)
{
Console.WriteLine(e.ErrorCode);
}
catch (ClientException e)
{
Console.WriteLine(e.ErrorCode);
}
return response;
}