zoukankan      html  css  js  c++  java
  • 网易云信,发送验证码短信C#版代码

    网易云信发送短信代码(C# 版)。。。。需要注意SHA1 String有转换小写!!!!

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace HaiMou.Common.SMS
    {
        public class NeteaseSms
        {
            static string url = "https://api.netease.im/sms/sendcode.action";
            static string appKey = "************************************";
            static string appSecret = "******";
    
            public static string Send(string mobile)
            {
                string nonce = new Random().Next(100000, 999999).ToString();
                string curTime = DateTime.Now.ToUnixStamp().ToString();
                string checkSum = SHA1_Hash(appSecret+ nonce+ curTime);
    
                string post = $"mobile={mobile}";
                byte[] btBodys = Encoding.UTF8.GetBytes(post);
    
                System.Net.WebRequest wReq = System.Net.WebRequest.Create(url);
                wReq.Method = "POST";
                wReq.Headers.Add("AppKey", appKey);
                wReq.Headers.Add("Nonce", nonce);
                wReq.Headers.Add("CurTime", curTime);
                wReq.Headers.Add("CheckSum", checkSum);
                wReq.ContentLength = btBodys.Length;
                wReq.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
    
                using (var wsr = wReq.GetRequestStream())
                {
                    wsr.Write(btBodys, 0, btBodys.Length);
                }
    
                System.Net.WebResponse wResp = wReq.GetResponse();
                System.IO.Stream respStream = wResp.GetResponseStream();
    
                string result;
                using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream,System.Text.Encoding.UTF8))
                {
                    result = reader.ReadToEnd();
                }
                //Json数据,obj是网易生成的验证码
                return result;
            }
    
            private static string SHA1_Hash(string str_sha1_in)
            {
                SHA1 sha1 = new SHA1CryptoServiceProvider();
                byte[] bytes_sha1_in = UTF8Encoding.Default.GetBytes(str_sha1_in);
                byte[] bytes_sha1_out = sha1.ComputeHash(bytes_sha1_in);
                string str_sha1_out = BitConverter.ToString(bytes_sha1_out);
                str_sha1_out = str_sha1_out.Replace("-", "").ToLower();
                return str_sha1_out;
            }
    
            private static string getFormattedText(byte[] bytes)
            {
                int len = bytes.Length;
                StringBuilder buf = new StringBuilder(len * 2);
                for (int j = 0; j < len; j++)
                {
                    buf.Append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
                    buf.Append(HEX_DIGITS[bytes[j] & 0x0f]);
                }
                return buf.ToString();
            }
    
            private static char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        }
    }
  • 相关阅读:
    Delphi TWebBrowser[11] 读写html代码
    Nginx 配置反向代理
    清除git中缓存的凭证(用户名及密码)
    python 摄像头
    a 链接控制打开新窗口 无地址栏
    树形多级菜单数据源嵌套结构与扁平结构互转
    使用 git 的正确姿势
    JavaScript this
    JavaScript Scope Chain
    JavaScript Scope Context
  • 原文地址:https://www.cnblogs.com/Zendic/p/5840786.html
Copyright © 2011-2022 走看看