婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 阿里大魚簡單發送短信功能.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版的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美一级片免费看| 色一情一伦一子一伦一区| 国产成人精品三级| 日韩一级免费一区| 亚洲一区二区三区视频在线播放| 久久99精品国产| 欧美一区二区视频在线观看2020| 中文字幕日韩精品一区| 7777精品久久久大香线蕉| 一区二区久久久久久| 97久久超碰国产精品| 国产精品日日摸夜夜摸av| 粉嫩av一区二区三区| 国产片一区二区| 成年人午夜久久久| 国产精品久久久久久久久免费丝袜| 国产精品综合在线视频| 国产欧美日韩在线视频| 粉嫩一区二区三区性色av| 国产欧美综合在线| 床上的激情91.| 国产精品福利一区| 在线看国产一区| 亚洲成a人在线观看| 91精品国模一区二区三区| 日本成人在线电影网| 欧美va亚洲va香蕉在线| 国产一区不卡精品| 国产精品久久毛片a| 在线观看欧美精品| 日本伊人精品一区二区三区观看方式| 9191久久久久久久久久久| 激情六月婷婷综合| 中文字幕在线观看不卡视频| 在线观看日韩电影| 久久99热国产| 国产精品乱码人人做人人爱| 在线看不卡av| 国产一区亚洲一区| 一二三四社区欧美黄| 日韩欧美自拍偷拍| 北条麻妃国产九九精品视频| 亚洲福利视频导航| 久久久久久亚洲综合影院红桃| 97国产精品videossex| 日韩精品久久理论片| 国产亚洲成av人在线观看导航 | 美脚の诱脚舐め脚责91| 国产日韩欧美精品在线| 色呦呦网站一区| 老司机午夜精品99久久| 中文字幕中文字幕在线一区| 欧美一区二区三区四区视频| 99在线精品观看| 久久精品国产色蜜蜜麻豆| 亚洲欧美色综合| 久久久久久久久免费| 欧美日韩综合不卡| 波多野结衣视频一区| 久久99热这里只有精品| 亚洲国产三级在线| 中文久久乱码一区二区| 日韩亚洲欧美综合| 色吊一区二区三区| 国产综合色产在线精品| 亚洲福利视频三区| 国产精品三级视频| 久久影院视频免费| 91精品国产入口| 色婷婷av久久久久久久| 成人免费av网站| 精品一区二区三区日韩| 午夜一区二区三区在线观看| 亚洲欧美一区二区在线观看| 2021久久国产精品不只是精品| 欧美日本一区二区| 欧美性色aⅴ视频一区日韩精品| 不卡的看片网站| 丁香桃色午夜亚洲一区二区三区| 日本亚洲免费观看| 丝袜亚洲另类丝袜在线| 一区二区免费在线播放| 亚洲欧美日韩在线| 亚洲天堂网中文字| 中文字幕第一区综合| 2023国产精品| 欧美变态tickle挠乳网站| 91精品国产色综合久久不卡电影 | 日韩欧美国产系列| 欧美日韩精品久久久| 一本色道久久加勒比精品 | 亚洲大片精品永久免费| 亚洲男帅同性gay1069| 国产精品久久久久久久久快鸭 | 国产精品福利av| 中文字幕第一区综合| 国产亚洲一本大道中文在线| 日韩欧美国产综合在线一区二区三区| 911精品产国品一二三产区 | jizzjizzjizz欧美| 高清av一区二区| 成人av电影在线观看| 99久精品国产| 欧美在线视频你懂得| 欧美日韩在线三级| 51午夜精品国产| 欧美tickling网站挠脚心| 2021久久国产精品不只是精品| 久久先锋影音av| 国产欧美精品国产国产专区| 欧美国产精品一区二区| 成人免费视频在线观看| 国产精品久久网站| 亚洲精品写真福利| 亚洲一区二区三区在线播放| 亚洲成av人片www| 久久91精品久久久久久秒播| 国产一区二区三区黄视频| 高清在线观看日韩| 在线观看三级视频欧美| 欧美一级夜夜爽| 亚洲精品在线一区二区| 国产欧美日韩精品在线| 亚洲免费观看在线视频| 午夜精品成人在线视频| 久久99国产精品免费| 国产白丝精品91爽爽久久| 色噜噜狠狠成人网p站| 91麻豆精品国产自产在线观看一区| 日韩一区二区三区视频在线观看| 久久精品亚洲乱码伦伦中文| 亚洲资源中文字幕| 久久精品国产在热久久| 成人国产亚洲欧美成人综合网 | 欧美亚洲国产怡红院影院| 51久久夜色精品国产麻豆| 国产午夜一区二区三区| 亚洲一区中文日韩| 国产精品亚洲第一| 欧美日韩视频第一区| 国产欧美日韩卡一| 日韩中文欧美在线| 成人免费毛片嘿嘿连载视频| 欧美色精品在线视频| 国产日产欧美一区二区视频| 亚洲国产乱码最新视频| 国内国产精品久久| 欧美色综合网站| 国产精品久久久久影院老司| 亚洲午夜在线电影| 大陆成人av片| 91精品一区二区三区久久久久久| 欧美激情一二三区| 免费人成在线不卡| 91成人国产精品| 久久综合色8888| 五月天一区二区| 色综合激情久久| 国产精品免费观看视频| 久久精品国产第一区二区三区| 91电影在线观看| 18成人在线视频| 国产91精品久久久久久久网曝门| 日韩午夜激情电影| 亚洲成人一区二区在线观看| 成人av在线播放网站| 久久蜜桃av一区二区天堂| 日本在线观看不卡视频| 在线中文字幕一区| 国产精品精品国产色婷婷| 国内精品久久久久影院薰衣草| 欧美伊人久久久久久久久影院 | 欧美大黄免费观看| 亚洲一区二区三区中文字幕| av高清久久久| 国产欧美一区二区三区沐欲| 美国毛片一区二区| 这里只有精品99re| 亚洲va欧美va国产va天堂影院| jiyouzz国产精品久久| 中文字幕高清一区| 成人性生交大片免费看在线播放 | 欧美日韩一区在线观看| 1000部国产精品成人观看| 成人免费视频国产在线观看| 国产亚洲精品福利| 成人小视频在线观看| 国产色爱av资源综合区| 国产呦精品一区二区三区网站| 欧美大片国产精品| 国内不卡的二区三区中文字幕 | 国产精品18久久久久| 亚洲精品一区二区精华| 国产在线不卡视频| 国产亚洲短视频| 成av人片一区二区| 成人欧美一区二区三区白人| 91在线精品一区二区| 亚洲综合免费观看高清完整版在线 | 国产精品人人做人人爽人人添|