最近做了一个调用阿里云短信发送功能
/// <summary>
/// 执行短信发送
/// </summary>
/// <param name="ctx"></param>
/// <param name="datas"></param>
private void Excute(Context ctx, DynamicObject[] datas)
{
List<long> executeSuccessIds = new List<long>();
foreach (DynamicObject curDy in datas)
{
try
{
string msgContent = curDy["MsgContent"].ToString();// 消息内容
DynamicObjectCollection phoneInofs = curDy["PhoneInfo"] as DynamicObjectCollection;
if (phoneInofs == null || phoneInofs.Count == 0)
{
executeSuccessIds.Add(ObjectUtils.Object2Int64(curDy["id"]));//没有手机号,需更新状态
continue;
}
string[] phoneLst = phoneInofs.Select(t => ObjectUtils.Object2String(t["RecptPhone"])).ToArray();//手机号,可能有多个
#region 执行业务,调用三方短信接口
int code = Convert.ToInt32(msgContent.Substring(msgContent.IndexOf(":") + 1, 6));
string message = SendSms(phoneLst[0], code);
#endregion
JObject jmes = (JObject)JsonConvert.DeserializeObject(message);
string resmes = Convert.ToString(jmes["Message"]);
if (resmes.Contains("OK")) {
executeSuccessIds.Add(ObjectUtils.Object2Int64(curDy["id"]));
}
else
{
throw new Exception("发送短信失败!请稍后重新验证。");
}
}
catch (Exception ex)
{
Logger.Error("SMS", "发送短信失败:", new KDException("?", "调用阿里云短信发送异常,请检查接收人电话和短信配置信息。"+ex.Message));
}
}
this.UpdateStatus(ctx, executeSuccessIds);//业务执行完成后,跟新状态为已处理
}
推荐阅读