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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
Mysql的常用命令
Oct 09 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
解析PHP 5.5 新特性
Jul 02 PHP
PHP实现变色验证码实例
Jan 06 PHP
Smarty变量用法详解
May 11 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
Apr 29 PHP
php7 错误处理机制修改实例分析
May 25 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 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
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
php与阿里云短信接口接入操作案例分析
2020/05/27 PHP
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python友情链接检查方法
2015/07/08 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
法律工作求职自荐信
2013/10/31 职场文书
办公室文秘岗位职责
2013/11/15 职场文书
补充协议书
2015/01/28 职场文书
社区法制宣传日活动总结
2015/05/05 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
Python matplotlib绘制雷达图
2022/04/13 Python
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android