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 相关文章推荐
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
笑谈配置,使用Smarty技术
Jan 04 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
深入解析PHP的Laravel框架中的event事件操作
Mar 21 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
关于php中的json_encode()和json_decode()函数的一些说明
Nov 20 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
PHP中关于php.ini参数优化详解
Feb 28 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
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
Python脚本实现自动发带图的微博
2016/04/27 Python
Python实现Kmeans聚类算法
2020/06/10 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
pow在python中的含义及用法
2019/07/11 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
美国知名生活购物网站:Goop
2017/11/03 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
房地产销售经理岗位职责
2015/02/02 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
学生病假条范文
2015/08/17 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android