php版微信公众平台开发之验证步骤实例详解


Posted in PHP onSeptember 23, 2016

本文实例讲述了php版微信公众平台开发之验证步骤。分享给大家供大家参考,具体如下:

微信公众平台开发我们现在做得比较多了,这里给各位介绍的是一个入门级别的微信公众平台验证基础知识了,有兴趣的和小编来看看。

开发微信的时候 需要验证一下,在官方开发者中心哪里有可以下源代码,登录到 公众帐号后 看到左边的最下角有一个开发者中心点击,然后填写上你相对应的 Token 和 url 然后就可以验证成功的话就可以开发了.

下载微信php验证源代码在 开发者中心 - 开发者文档 - 接口消息 - 验证消息真实 - 拉到最下面就php演示代码.

下载好后代码如下:

<?php
/**
 * wechat php test
 * update time: 20141008
 */
//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
 public function valid()
 {
  $echoStr = $_GET["echostr"];
  //valid signature , option
  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 data
 if (!emptyempty($postStr)){
    $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(!emptyempty( $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()
{
  $signature = $_GET["signature"];
  $timestamp = $_GET["timestamp"];
  $nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
  sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
}
?>

其中:TOKEN 修改为你自己想要的 然后在 开发者中心也要写一样的,在验证的过程中 $wechatObj->valid(); 这段代码不能去除这个是验证,验证成功后 我们就可以把 这段 $wechatObj->valid(); 这个注释掉了,然后使用 $wechatObj->responseMsg(); 来进行测试

注意:在开发的时候需要把 $wechatObj->valid(); 给注释掉,不然在手机测试的时候 会没有显示什么.

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中session变量的销毁
Feb 27 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
PHP中Header使用的HTTP协议及常用方法小结
Nov 04 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
smarty内置函数capture用法分析
Jan 22 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
php cli配置文件问题分析
Oct 15 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
Aug 04 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 PHP
php分页原理 分页代码 分页类制作教程
Sep 23 #PHP
php使用glob函数遍历文件和目录详解
Sep 23 #PHP
php版微信发红包接口用法示例
Sep 23 #PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 #PHP
php版微信自动登录并获取昵称的方法
Sep 23 #PHP
php中使用websocket详解
Sep 23 #PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 #PHP
You might like
简单的PHP图片上传程序
2008/03/27 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
如何在PHP中读写文件
2020/09/07 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
js实现html table 行,列锁定的简单实例
2016/10/13 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
python利用微信公众号实现报警功能
2018/06/10 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python笔记之观察者模式
2019/11/20 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
求职自荐信范文格式
2013/11/29 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
铁人观后感
2015/06/16 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android