PHP微信企业号开发之回调模式开启与用法示例


Posted in PHP onNovember 25, 2017

本文实例讲述了PHP微信企业号开发之回调模式开启与用法。分享给大家供大家参考,具体如下:

暑假实习,领导安排开发微信企业号。在此对遇到的问题进行记录,分享给遇到同样问题的小伙伴,希望对小伙伴们有帮助。微信企业号注册部分就不用多说了,今天记录微信企业号--回调模式开启php部分。

其实微信开发文档说的确实十分详细了,而且使用官方给的demo,只要做稍稍的改变就可以直接用了。但是为什么总是提示错误呢?

下面我先贴出我验证成功的回调模式开启的代码

<?php
//回调开启
include_once "WXBizMsgCrypt.php";
// 假设企业号在公众平台上设置的参数如下
$encodingAesKey = "xxx";
$token = "xxx";
$corpId = "xxx";//填写自己的相关参数,与微信公众平台一致
/*
------------使用示例一:验证回调URL---------------
*企业开启回调模式时,企业号会向验证url发送一个get请求
假设点击验证时,企业收到类似请求:
* GET /cgi-bin/wxpush?msg_signature=5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3×tamp=1409659589&nonce=263014780&echostr=P9nAzCzyDtyTWESHep1vC5X9xho%2FqYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp%2B4RPcs8TgAE7OaBO%2BFZXvnaqQ%3D%3D
* HTTP/1.1 Host: qy.weixin.qq.com
接收到该请求时,企业应
1.解析出Get请求的参数,包括消息体签名(msg_signature),时间戳(timestamp),随机数字串(nonce)以及公众平台推送过来的随机加密字符串(echostr),
这一步注意作URL解码。
2.验证消息体签名的正确性
3. 解密出echostr原文,将原文当作Get请求的response,返回给公众平台
第2,3步可以用公众平台提供的库函数VerifyURL来实现。
*/
// $sVerifyMsgSig = HttpUtils.ParseUrl("msg_signature");
$sVerifyMsgSig = $_GET["msg_signature"] ;//"5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3";
// $sVerifyTimeStamp = HttpUtils.ParseUrl("timestamp");
$sVerifyTimeStamp = $_GET["timestamp"];//"1409659589";
// $sVerifyNonce = HttpUtils.ParseUrl("nonce");
$sVerifyNonce = $_GET["nonce"];//"263014780";
// $sVerifyEchoStr = HttpUtils.ParseUrl("echostr");
$sVerifyEchoStr = $_GET["echostr"];//"P9nAzCzyDtyTWESHep1vC5X9xho/qYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp+4RPcs8TgAE7OaBO+FZXvnaqQ==";
// 需要返回的明文
$EchoStr = "";
$wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId);
$errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
if ($errCode == 0) {
  echo $sEchoStr;
  //
  // 验证URL成功,将sEchoStr返回
  // HttpUtils.SetResponce($sEchoStr);
} else {
  print("ERR: " . $errCode . "\n\n");
}

可见以上代码和demo给的基本一致,在一天前相同的代码也验证不成功的,经过研究发现:验证url时的域名必须是可信域名。ps:我用的是新浪云,但是我没有进行实名认证,所以存在风险,当我实名认证后,就开启成功了。

感悟:官方文档什么时候都不会错,好好研读官方文档很有必要。在微信企业号--回调模式开启的过程中,域名必须是可信域名,这点也非常重要

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

PHP 相关文章推荐
网站加速 PHP 缓冲的免费实现方法
Oct 09 PHP
php对gzip文件或者字符串解压实例参考
Jul 25 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
解析php扩展php_curl.dll不加载的解决方法
Jun 26 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
Laravel日志用法详解
Oct 09 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 PHP
基于PHP实现生成随机水印图片
Dec 09 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 #PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 #PHP
php图片合成方法(多张图片合成一张)
Nov 25 #PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 #PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
Nov 24 #PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 #PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 #PHP
You might like
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
五步轻松实现zTree的使用
2017/11/01 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
精灵市场:Pixie Market
2019/06/18 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
联欢晚会主持词
2014/03/25 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
保安公司服务承诺书
2014/05/28 职场文书
公司表扬信格式
2015/05/04 职场文书
物资采购管理制度
2015/08/06 职场文书
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技