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 相关文章推荐
pw的一个放后门的方法分析
Oct 08 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
定义php常量的详解
Jun 09 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
php打印一个边长为N的实心和空心菱型的方法
Mar 02 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
smarty模板判断数组为空的方法
Jun 10 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
详解json在php中的应用
Sep 30 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 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
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP中开启gzip压缩的2种方法
2015/01/31 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
jquery动态添加option示例
2013/12/30 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
django1.8使用表单上传文件的实现方法
2016/11/04 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
Python使用matplotlib简单绘图示例
2018/02/01 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
超市营业员求职简历的自我评价
2013/10/17 职场文书
关于工资低的辞职信
2014/01/14 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
技术员个人工作总结
2015/03/03 职场文书
基于Python实现股票收益率分析
2022/04/02 Python
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers