说明:使用的是官方的源代码进行验证,所使用的服务器为新浪SAE。在官方源代码中只需更改:define("TOKEN", "weixin");的值为自己的TOKEN值即可

源码:
<?php
define("TOKEN", "tony"); // 定义自己的TOKEN值,并且与微信公众平台提供的值相同即可$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();class wechatCallbackapiTest
{public function valid(){$echoStr = $_GET["echostr"]; //随机字符串,该值只在第一次验证的时候有值,if ($this->checkSignature()) {echo $echoStr;exit();}}public function responseMsg(){// get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];// extract post dataif (! empty($postStr)) {/** libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,* the best way is to check the validity of xml by yourself*/libxml_disable_entity_loader(true);$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";if (! empty($keyword)) {$msgType = "text";$contentStr = "Welcome to wechat world!";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;} else {echo "Input something...";}} else {echo "";exit();}}private function checkSignature(){// you must define TOKEN by yourselfif (! defined("TOKEN")) {throw new Exception('TOKEN is not defined!');}$signature = $_GET["signature"];//微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。$timestamp = $_GET["timestamp"];//时间戳$nonce = $_GET["nonce"];//随机数$token = TOKEN;$tmpArr = array($token,$timestamp,$nonce);//将以上三个变量放到数组中// use SORT_STRING rulesort($tmpArr, SORT_STRING);//针对数组进行排序$tmpStr = implode($tmpArr);$tmpStr = sha1($tmpStr);if ($tmpStr == $signature) {return true;} else {return false;}}
}?>

微信公众平台开发(1)验证TOKEN源码相关推荐

  1. PHP微信公众平台开发-BAE-视频+笔记+源码

    2018年8月24日,沉迷于学习微信公众号开发. 本篇文章是传智播客课程"PHP微信公众平台开发"前十二节课的课程笔记.课程的视频链接http://yun.itheima.com/ ...

  2. 【Java微信公众平台开发模式+自定义按钮源码】

    首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.d ...

  3. Thinkphp 微信公众号开发3-微信登录源码

    Thinkphp 微信公众号开发3-微信登录源码 微信官方的开发文档 微信官方开发文档传送门 官方提供的方式 那我们要做的流程如下 虽然官方写了一堆文字看的一脸懵 但是我们只需要清楚流程就可以了 获取 ...

  4. Web API实现微信公众平台开发-服务器验证

    背景 最近开发微信公众号相关接口,在这里记录下微信公众号相关各项功能的实现. 先决条件 1.一台可部署web服务的服务器或者云平台(本地可以搞个花生壳域名). 2.一个可以正常使用的微信公众账号,开始 ...

  5. 微信公众平台开发(5)--验证消息的确来自微信服务器

    点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. 前言 2. 构建项目 2.1 构建SpringBoot项目 2.2 编写配置文件 2.3 编写启动类 3 ...

  6. 微信公众平台开发(26) ACCESS TOKEN

    本文介绍微信公众平台下Access Token的概念及获取方法. 一.Access Token access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常 ...

  7. 微信发ascii_微信公众平台开发(107) 分享到朋友圈和发送给好友

    关键字:微信公众平台 JSSDK 发送给朋友 分享到朋友圈 onMenuShareTimeline onMenuShareAppMessage 作者:方倍工作室 原文:http://www.cnblo ...

  8. 转载收藏之用 - 微信公众平台开发教程(三):微信公众平台开发验证

    要对接微信公众平台的"开发模式",即对接到自己的网站程序,必须在注册成功之后(见Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册),等待官方 ...

  9. 微信公众平台开发4-长链接转短链接口调用实例(含源码)

    微信公众平台开发-access_token获取及应用(含源码) 作者: 孟祥磊-<微信公众平台开发实例教程> 将一条长链接转成短链接.开发者用于生成二维码的原链接(商品.支付二维码等)太长 ...

  10. ASP.NET MVC4 微信公众平台开发测试一: 验证

    ASP.NET MVC4 微信公众平台开发测试一: 验证 背景,想做一个微信公众号的自动回复系统,于是想动手写一下.记录这些,是一边写程序一边写在这里,也是记录一下自己的思路. 微信公众平台开发时,需 ...

最新文章

  1. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)
  2. sqlserver 参数化查询 允许为null_1+Null 居然等于 Null
  3. TensorFlow学习笔记(三)模型的基本步骤
  4. 西安电子科技大学研究生计算机专业王宇平教授学生就业岗位,西安电子科技大学计算机学院导师信息情况...
  5. Tips--Multisim中压电传感器与电荷源的替代方案
  6. cx_oracle主备服务器,怎么在Python中使用cx_Oracle模块对Oracle数据库进行操作
  7. listview 通用模版
  8. 5.顺序表和链表的最值,逆置和归并有序表
  9. 学习linux心得,linux学习心得范文
  10. 如何在Windows Server 2003下安装NetBEUI
  11. 分析:谷歌不会退出中国市场的8大理由
  12. 宝塔面板权限不足问题解决
  13. php pos机刷卡,POS机刷卡的正确使用方法和注意事项
  14. 【项目实训】微信公众号获取用户openid
  15. 多个元素过渡---过渡模式
  16. Day10_GY39
  17. 一小时学会使用Springboot整合沙箱环境支付宝支付(附源码)
  18. Attribute value is quoted with which must be escaped when used within the value 问题解决
  19. 区块链新秀DACC解决内容产业主要矛盾
  20. linux 中 awk sed cut sort 常规操作

热门文章

  1. UVA1626 / ZOJ1463 Brackets sequence 区间DP
  2. sketch制作Android动画,Sketch制作GIF动画--基础篇
  3. 晨跑、午后跑和夜跑对身体的影响及优缺点
  4. 5 6c语言上机作业答案,C语言第五次上机作业参考答案
  5. 【水动力学】02 一维河道建模
  6. 令人惊艳的文章开头,建议【收藏】
  7. Android根据图片名字获取图片ID
  8. 图像形态学处理——灰度梯度(Matlab)
  9. html字数不同相同宽度的按钮,HTML_按钮在IE中两边被拉伸的 BUG,大家在写按钮(input、button) - phpStudy...
  10. 计算机一级outlook百度云,Outlook2010官方版