亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 阿里大魚簡單發送短信功能.net core版

阿里大魚簡單發送短信功能.net core版

熱門標簽:旅游地圖標注線路 地圖標注位置怎么弄圖 漯河外呼調研線路 電銷專用外呼線路 400電話唐山辦理 廣西房產智能外呼系統推薦 威力最大的電銷機器人 電銷外呼系統是違法的嗎 電話機器人鑰匙扣

阿里大魚還未提供 .net core 版SDK,但提供了相關API,下面是.net core版實現,只是簡單發送短信功能: 

using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;

namespace ConsoleApp1
{
  public class SmsHelper
  {
    public static string Post(string url, string data, Encoding encoding)
    {
      try
      {
        HttpWebRequest req = WebRequest.CreateHttp(new Uri(url));
        req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
        req.Method = "POST";
        req.Accept = "text/xml,text/javascript";
        req.ContinueTimeout = 60000;

        byte[] postData = encoding.GetBytes(data);
        Stream reqStream = req.GetRequestStreamAsync().Result;
        reqStream.Write(postData, 0, postData.Length);
        reqStream.Dispose();

        var rsp = (HttpWebResponse)req.GetResponseAsync().Result;
        var result = GetResponseAsString(rsp, encoding);
        return result;
      }
      catch (Exception ex)
      {
        throw;
      }
    }

    public static T PostT>(string url, string data, Encoding encoding)
    {
      try
      {
        var result = Post(url, data, encoding);
        return JsonConvert.DeserializeObjectT>(result);
      }
      catch (Exception ex)
      {
        return default(T);
      }
    }

    public static string BuildQuery(IDictionarystring, string> parameters)
    {
      if (parameters == null || parameters.Count == 0)
      {
        return null;
      }

      StringBuilder query = new StringBuilder();
      bool hasParam = false;

      foreach (KeyValuePairstring, string> kv in parameters)
      {
        string name = kv.Key;
        string value = kv.Value;
        // 忽略參數名或參數值為空的參數
        if (!string.IsNullOrEmpty(name)  !string.IsNullOrEmpty(value))
        {
          if (hasParam)
          {
            query.Append("");
          }

          query.Append(name);
          query.Append("=");
          query.Append(WebUtility.UrlEncode(value));
          hasParam = true;
        }
      }

      return query.ToString();
    }

    public static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)
    {
      Stream stream = null;
      StreamReader reader = null;

      try
      {
        // 以字符流的方式讀取HTTP響應
        stream = rsp.GetResponseStream();
        reader = new StreamReader(stream, encoding);
        return reader.ReadToEnd();
      }
      finally
      {
        // 釋放資源
        if (reader != null) reader.Dispose();
        if (stream != null) stream.Dispose();
        if (rsp != null) rsp.Dispose();
      }
    }

    public static string GetAlidayuSign(IDictionarystring, string> parameters, string secret, string signMethod)
    {
      //把字典按Key的字母順序排序
      IDictionarystring, string> sortedParams = new SortedDictionarystring, string>(parameters, StringComparer.Ordinal);

      //把所有參數名和參數值串在一起
      StringBuilder query = new StringBuilder();
      if (Constants.SIGN_METHOD_MD5.Equals(signMethod))
      {
        query.Append(secret);
      }
      foreach (KeyValuePairstring, string> kv in sortedParams)
      {
        if (!string.IsNullOrEmpty(kv.Key)  !string.IsNullOrEmpty(kv.Value))
        {
          query.Append(kv.Key).Append(kv.Value);
        }
      }

      //使用MD5/HMAC加密
      if (Constants.SIGN_METHOD_HMAC.Equals(signMethod))
      {
        return Hmac(query.ToString(), secret);
      }
      else
      {
        query.Append(secret);
        return Md5(query.ToString());
      }
    }

    public static string Hmac(string value, string key)
    {
      byte[] bytes;
      using (var hmac = new HMACMD5(Encoding.UTF8.GetBytes(key)))
      {
        bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(value));
      }
      StringBuilder result = new StringBuilder();
      foreach (byte t in bytes)
      {
        result.Append(t.ToString("X2"));

      }
      return result.ToString();
    }

    public static string Md5(string value)
    {
      byte[] bytes;
      using (var md5 = MD5.Create())
      {
        bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(value));
      }
      var result = new StringBuilder();
      foreach (byte t in bytes)
      {
        result.Append(t.ToString("X2"));
      }
      return result.ToString();
    }

    public static SmsResultAli SendSms(string url, string appKey, string appSecret, DateTime timestamp, Dictionarystring, string> parsms)
    {
      var txtParams = new SortedDictionarystring, string>();
      txtParams.Add(Constants.METHOD, "alibaba.aliqin.fc.sms.num.send");
      txtParams.Add(Constants.VERSION, "2.0");
      txtParams.Add(Constants.SIGN_METHOD, Constants.SIGN_METHOD_HMAC);
      txtParams.Add(Constants.APP_KEY, appKey);
      txtParams.Add(Constants.FORMAT, "json");
      txtParams.Add(Constants.TIMESTAMP, timestamp.ToString(Constants.DATE_TIME_FORMAT));
      txtParams.Add(Constants.SMS_TYPE, "normal");
      foreach (var item in parsms)
      {
        txtParams.Add(item.Key,item.Value);
      }

      txtParams.Add(Constants.SIGN, GetAlidayuSign(txtParams, appSecret, Constants.SIGN_METHOD_HMAC));
      var result = PostSmsResultAli>(url, BuildQuery(txtParams), Encoding.UTF8);

      return result;
    }

  }

  public class SmsResultAli
  {
    public SmsResponseALi Alibaba_Aliqin_Fc_Sms_Num_Send_Response { get; set; }
  }

  public class SmsResponseALi
  {
    public string Request_Id { get; set; }
    public SmsResponseResultAli Result { get; set; }
  }

  public class SmsResponseResultAli
  {
    public string Err_Code { get; set; }

    public string Model { get; set; }

    public bool Success { get; set; }
  }
}

發送短信時:          

var parms = new Dictionarystring, string>();
  parms.Add(Constants.EXTEND, "123456");
  parms.Add(Constants.REC_NUM, "138********");
  parms.Add(Constants.SMS_FREE_SIGN_NAME, "阿里大魚");
  parms.Add(Constants.SMS_PARAM, "{\"code\":\"1234\",\"product\":\"阿里大魚\"}");
  parms.Add(Constants.SMS_TEMPLATE_CODE, "SMS_10000000");

var req = SmsHelper.SendSms("http://gw.api.taobao.com/router/rest", "appKey", "appSecret", DateTime.Now, parms);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 通過第三方接口發送短信驗證碼/短信通知(推薦)
  • NodeJS實現阿里大魚短信通知發送
  • asp.net調用飛信免費發短信(測試有效)
  • ASP.NET(VB)寫的后臺發送短信實現代碼
  • C#代碼實現短信驗證碼接口示例
  • C#怎么實現手機短信發送功能
  • java、php、C#、asp實現短信群發功能的方法
  • CDMA 貓用AT命令發中文短信(C#)
  • ASP.NET MVC阿里大于短信接口開發短信群發能

標簽:湖北 無錫 湘西 試駕邀約 銅陵 焦作 欽州 綏化

巨人網絡通訊聲明:本文標題《阿里大魚簡單發送短信功能.net core版》,本文關鍵詞  阿里,大魚,簡單,發送,短信,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《阿里大魚簡單發送短信功能.net core版》相關的同類信息!
  • 本頁收集關于阿里大魚簡單發送短信功能.net core版的相關信息資訊供網民參考!
  • 推薦文章
    精品国产一区二区三区久| 韩国妈妈的朋友在线播放| 99色精品| 久久成人综合网| 亚洲天堂一区二区三区四区| 99热精品在线| 欧美另类videosbestsex| a级精品九九九大片免费看| 欧美另类videosbestsex久久| 欧美大片一区| 中文字幕一区二区三区精彩视频 | 日韩av片免费播放| 亚洲精品久久玖玖玖玖| 亚洲天堂在线播放| 精品国产一区二区三区久 | 欧美激情一区二区三区视频| 亚洲第一页色| 国产a毛片| 四虎久久影院| 欧美激情一区二区三区在线| 香蕉视频久久| 亚洲天堂在线播放| 国产伦久视频免费观看 视频| 台湾毛片| 黄色福利| 日韩av片免费播放| 欧美大片毛片aaa免费看| 国产成人精品在线| 美女被草网站| 亚欧成人乱码一区二区| 久久99中文字幕久久| 国产不卡在线看| 中文字幕一区二区三区 精品| 久久国产精品永久免费网站| 欧美一级视频高清片| 可以免费看污视频的网站| 尤物视频网站在线| 成人a级高清视频在线观看| 成人免费观看网欧美片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九干| 日本特黄特色aaa大片免费| 麻豆系列国产剧在线观看| 欧美激情一区二区三区中文字幕| 亚洲 激情| 欧美一级视频免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产伦精品一区二区三区无广告| 国产不卡高清在线观看视频| 免费毛片基地| 国产91精品一区| 久久99中文字幕| 亚飞与亚基在线观看| 久久99欧美| 欧美激情伊人| 韩国毛片基地| 国产不卡在线看| 国产成人精品影视| 欧美另类videosbestsex视频| 麻豆网站在线看| 日日夜夜婷婷| 欧美日本二区| 青青青草视频在线观看| 999精品在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产高清在线精品一区a| 精品视频在线观看一区二区 | 日韩一级精品视频在线观看| 尤物视频网站在线| 日韩专区第一页| 国产精品自拍亚洲| 成人高清免费| 日韩在线观看视频网站| 中文字幕一区二区三区精彩视频| 美女免费精品高清毛片在线视 | 精品国产一区二区三区久久久狼| 精品视频在线观看视频免费视频| 免费国产在线视频| 欧美激情一区二区三区视频 | 精品国产一区二区三区久| 国产91精品一区二区| 四虎影视库| 黄色短视频网站| 国产一区国产二区国产三区| 亚洲精品久久玖玖玖玖| 91麻豆国产| 国产一区国产二区国产三区| 欧美激情一区二区三区在线| 国产一区二区精品久久91| 四虎论坛| 九九九网站| 亚洲爆爽| 九九精品久久| 国产伦精品一区二区三区在线观看| 免费一级生活片| 九九精品在线播放| 成人影院久久久久久影院| 沈樵在线观看福利| 黄视频网站在线免费观看| 成人免费一级毛片在线播放视频| 国产视频久久久| 国产一区二区精品| 精品国产一区二区三区久久久狼| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 午夜久久网| 999精品在线| 国产一区二区精品| 99久久精品国产国产毛片| 午夜久久网| 欧美大片一区| 精品视频免费在线| 毛片高清| 亚州视频一区二区| 成人av在线播放| 精品国产香蕉伊思人在线又爽又黄| 久草免费在线色站| 韩国三级视频网站| 久久国产一区二区| 久久成人亚洲| 精品国产三级a∨在线观看| 欧美激情一区二区三区视频高清| 日韩专区第一页| 精品国产三级a∨在线观看| 九九久久99| 久久精品人人做人人爽97| 国产综合成人观看在线| 免费一级片在线观看| 99久久精品国产高清一区二区| 日本特黄特黄aaaaa大片| 国产福利免费视频| 一级女性全黄久久生活片| 欧美一级视频高清片| 国产麻豆精品视频| 亚洲精品永久一区| 中文字幕97| 一级片片| 午夜欧美福利| 久草免费在线视频| 精品在线视频播放| 四虎影视久久| 夜夜操天天爽| 亚洲 激情| 午夜家庭影院| a级毛片免费观看网站| 91麻豆tv| 一级女人毛片人一女人| 欧美激情一区二区三区视频高清| 欧美一级视频免费| 国产伦理精品| 欧美激情一区二区三区视频 | 欧美另类videosbestsex视频| 国产a网| 欧美激情中文字幕一区二区| 精品视频一区二区三区| 成人免费一级毛片在线播放视频| 亚洲天堂免费| 国产高清视频免费| 天天做日日爱夜夜爽| 国产精品自拍亚洲| 免费的黄视频| 精品久久久久久中文| 成人免费网站久久久| 久久99中文字幕久久| 国产高清视频免费观看| 九九精品在线| 日韩欧美一及在线播放| 国产伦理精品| 久久国产精品只做精品| 国产a网| 日韩一级黄色| 久久久久久久久综合影视网| 国产视频一区在线| 国产不卡高清| 91麻豆tv| 日本伦理片网站| 九九免费精品视频| 日本在线www| 四虎久久影院| 99热热久久| 欧美大片一区| 韩国毛片免费大片| 99久久精品费精品国产一区二区| 欧美激情一区二区三区视频| 91麻豆高清国产在线播放| 国产一级强片在线观看| 久久99这里只有精品国产| 欧美一级视频免费观看| 精品久久久久久免费影院| 亚洲 国产精品 日韩| 免费的黄色小视频| 国产不卡高清在线观看视频| 日本免费看视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | a级毛片免费观看网站| 黄色福利片| 二级特黄绝大片免费视频大片| 亚洲 激情| 欧美激情一区二区三区在线| 欧美激情一区二区三区视频高清|