• 微信公众平台开发(二)


    一、实现URL接入

    相关参数描述

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    
    namespace WeiXinWebApplication
    {
        public class CheckSignature
        {
            /// <summary>
            /// 网站没有提供Token情况下的默认Token
            /// </summary>
            public const string Token = "weixin";
    
            /// <summary>
            /// 检查签名是否正确
            /// </summary>
            /// <param name="signature">微信加密签名</param>
            /// <param name="timestamp">时间戳</param>
            /// <param name="nonce">随机数</param>
            /// <param name="token"></param>
            /// <returns></returns>
            public static bool Check(string signature, string timestamp, string nonce, string token)
            {
                return signature == GetSignature(timestamp, nonce, token);
            }
    
            /// <summary>
            /// 返回正确的签名
            /// </summary>
            /// <param name="timestamp"></param>
            /// <param name="nonce"></param>
            /// <param name="token"></param>
            /// <returns></returns>
            public static string GetSignature(string timestamp, string nonce, string token = Token)
            {
                token = token ?? Token;
                string[] arr = new[] {token,timestamp,nonce }.OrderBy(z=>z).ToArray();
                string arrString = string.Join("",arr);
                System.Security.Cryptography.SHA1 shal = System.Security.Cryptography.SHA1.Create();
                byte[] shalArr = shal.ComputeHash(Encoding.UTF8.GetBytes(arrString));
                StringBuilder enText = new StringBuilder();
                foreach (var b in shalArr)
                {
                    enText.AppendFormat("{0:x2}",b);
                }
                return enText.ToString();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WeiXinWebApplication
    {
        public partial class Index : System.Web.UI.Page
        {
            /// <summary>
            /// 与微信公众账号后台的Token设置保持一致,区分大小写
            /// </summary>
            private readonly string Token = "weixin";
    
            protected void Page_Load(object sender, EventArgs e)
            {
                Auth();
            }
    
            /// <summary>
            /// 处理微信服务器验证消息
            /// </summary>
            private void Auth()
            {
                string signature = Request["signature"];
                string timestamp = Request["timestamp"];
                string nonce = Request["nonce"];
                string echostr = Request["echostr"];
                if (Request.HttpMethod == "GET")
                {
                    if (CheckSignature.Check(signature, timestamp, nonce, Token))
                    {
                        WriteContent(echostr);
                    }
                    else
                    {
                        WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "." + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众号后台的URL,请注意保持Token一致。");
                    }
                    Response.End();
                }
            }
    
            private void WriteContent(string str)
            {
                Response.Output.Write(str);
            }
        }
    }

     二、接入微信公众平台

    这样我们就成功实现了URL接入微信公众平台的工作。

  • 相关阅读:
    eureka_feign学习_1
    九度 题目1183:守形数----------------我用的方法自创
    题目1179:阶乘-------------阶乘不用long long int 就不能AC
    题目1177:查找---------------字符串的函数问题
    题目1170:找最小数-------------------------------找最小值,中间值应该初始化为最大值
    题目1169:比较奇偶数个数-----------------------------这个世界不是奇数就是偶数l
    题目1075:斐波那契数列
    题目1070:今年的第几天?---------关键是闰年的判断
    题目1068:球的半径和体积----------------------------arccos(-1)要用c语言中的acos(-1)代替
    题目1067:n的阶乘--------long long int
  • 原文地址:https://www.cnblogs.com/zhanghaomars/p/4950687.html
Copyright © 2020-2023  润新知