WeiXin 验证成为开发者和更换服务器验证代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;using System.Security;
using System.Net;
using System.Collections;
using System.Security.Cryptography;
using System.Web.Security;

public class Handler : IHttpHandler
{

    const string Token = "token";  //你的token
    public void ProcessRequest(HttpContext context)
    {
        //测试成为开发者,验证成功后注释掉。更换服务器需重新验证
       Valid();

    }
    /// <summary>
    /// 测试成为开发者
    /// </summary>
    private void Valid()
    {

        string echoStr = HttpContext.Current.Request.QueryString["echoStr"].ToString();
        if (CheckSignature())
        {
            if (!string.IsNullOrEmpty(echoStr))
            {
                HttpContext.Current.Response.Write(echoStr);
                HttpContext.Current.Response.End();
            }
        }
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

    /// <summary>
    /// 验证微信签名
    /// </summary>
    /// * 将token、timestamp、nonce三个参数进行字典序排序
    /// * 将三个参数字符串拼接成一个字符串进行sha1加密
    /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
    /// <returns></returns>
    private bool CheckSignature()
    {
        string signature = HttpContext.Current.Request.QueryString["signature"].ToString();
        string timestamp = HttpContext.Current.Request.QueryString["timestamp"].ToString();
        string nonce = HttpContext.Current.Request.QueryString["nonce"].ToString();
        string[] ArrTmp = { Token, timestamp, nonce };
        Array.Sort(ArrTmp);     //字典排序
        string tmpStr = string.Join("", ArrTmp);
        tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
        tmpStr = tmpStr.ToLower();
        if (tmpStr == signature)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    /// <summary>
    /// 处理微信服务器发送来的信息,进行处理并返回信息(微信信息回复)
    /// </summary>
    /// <param name="weixinXML"></param>
    private void ResponseMsg(string weixinXML)
    {
        //回复消息的部分:你的代码写在这里       

    }
}
时间: 2024-10-13 03:06:42

WeiXin 验证成为开发者和更换服务器验证代码的相关文章

微信开发:微信服务器验证通过

申请自己的微信公众号部署后台服务器 代码解析 申请自己的微信公众号,部署后台服务器 公众号 SuperLishun,想要源码的可以关注公众号,给我留言. 百度微信公众号,首先要申请自己的微信公众号,我只申请了个订阅号,先把基本的调通,如下图 这里我们可以手动群发图文消息,设置自动回复消息,设置目录等等,但是作为开发者,我们要学着使用微信的API去做这些事情. 首先你需要有一个服务器,用来供微信调用,我这里用的是阿里云的服务器,作为测试1核2G内存就够了,1个月也就是100块钱,可以用来玩玩,如下

微信公众号服务器验证Token的完整步骤

服务器验证Token验证分为以下及步骤 一,在微信公众号平台上设置 1.1打开微信公众号平台 1.2打开”开发“中的<基本配置> 1.3点击基本配置页面里的修改配置 1.4输入URL: url填写:http://外网IP:端口号/wx .外网IP请到腾讯云购买成功处查询, http的端口号固定使用80,不可填写其他. Token:自主设置,这个token与公众平台wiki中常提的access_token不是一回事.这个token只用于验证开发者服务器.(注:Token可以随便写  写完记住留着

dojo demo, 服务器验证用户名是否已经被使用

这个demo有助于理解JS与服务器的协同工作. 文档结构如上图,  主要是三个文件: main.js  table.html validateUserName.jsp (代码见文章末尾) 页面打开如下: 选中第一个输入框后,右侧出现定义好的提示信息.如下: 输入"olduser" , 为了简化验证过程,在validateUserName.jsp 中用硬编码验证用户名是否为"olduser", 返回JSON字串. 如果是,则返回{valid:false}, 否则返回{

ASP.NET 表单验证方法与客户端(浏览器)服务器交互机制的故事

想到这个问题完全是一个意外吧,是在寻找另外一个问题答案的过程中,才对验证方法与浏览器服务器交互机制的关系有了清晰的认识. 先说下验证方法,验证方法分为前台验证和后台验证. 前台验证就是类似jQuery.Validate这类的插件,当然也可以我们自己写. 后台验证就是ASP.NET自带的验证控件,如RequiredFieldValidator. 记得初学.NET的时候,那会儿接触验证控件,也知道验证分为前台,后台.但是随着时间的推移,由于做的项目基本上都是公司内部使用的软件,比如OA.因为这种项目

C++使用Socket 邮箱登录服务器验证

转载:http://blog.csdn.net/zengraoli/article/details/36866241 转载:http://blog.csdn.net/alger_magic/article/details/25164187 一.如果想单纯验证一个邮箱帐号是否存在,我们可以拿邮箱帐号和密码请求服务器验证. .h文件 #ifndef _AUTHENTICATIONEMAIL_H_ #define _AUTHENTICATIONEMAIL_H_ #include <atlenc.h>

IOS内购支付服务器验证模式

IOS 内购支付两种模式: 内置模式 服务器模式 内置模式的流程: app从app store 获取产品信息 用户选择需要购买的产品 app发送支付请求到app store app store 处理支付请求,并返回transaction信息 app将购买的内容展示给用户 服务器模式的流程: app从服务器获取产品标识列表 app从app store 获取产品信息 用户选择需要购买的产品 app 发送 支付请求到app store app store 处理支付请求,返回transaction信息

关于去苹果服务器验证充值的一些看法

前端时间看了下关于app充值验证发送游戏金币的好多帖子和文章,http:// 其中这个帖子回复的大神比较多:点击打开链接 内容大概是这样子的: 那位大神做了pomelo去苹果服务器验证充值的,能说一下思路和做法么. 标签:无 haiyang126537 在 2013-12-23 17:00发布 分享到 weibo 3 回复 #1 {6} Munmoon 在 2013-12-23 17:46 回复

苹果内购服务器验证之receipt返回多组in_app思考

最近有部分用户反映,苹果内购充值失败,经过测试总结有几个关键点出现问题 1.app购买成功苹果没有返回票据,属于票据遗漏(取决于苹果服务器的响应状况),只能客户端进行监听刷新等处理 2.app连续购买的过程中,前几次苹果没有返回票据,几次之后,苹果返回了一个有效的票据,app提交给服务器进行验证的过程中in_app出现多组数据的情况,这种情况还是能充值成功了,只是不能全部到账 3.app连续购买,有一次正常返回票据,在提交给服务器的过程中出现意外,但实际服务端已经接受到票据,为用户成功充值,但a

kotlin和vertx和mongo写的一个服务器验证登陆功能(很简陋)

包结构长这个样子: server包:(服务器相关配置) HttpServer:用ver.x创建了一个http服务器,把接收到的req请求传入RPCRequest中: RPCRequest:解析请求body内容,把信息保存为M(类名) A(方法名) P(参数),同时还拥有invoke()方法,根据m.a.p的数据用反射调用方法. RPCResponse:没写,用来保存响应信息的. controller包:(将所有需要被远程调用的方法保存到内容中,加快调用时遍历查询方法的响应速度) MethodMa