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读取xml方法介绍
Jan 12 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
初识php MVC
Sep 10 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP导出带样式的Excel示例代码
Aug 28 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP自动识别当前使用移动终端
May 21 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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生成自定义长度随机字符串的函数分享
2014/05/04 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
javascript实现仿银行密码输入框效果的代码
2007/12/13 Javascript
JavaScript对象模型-执行模型
2008/04/28 Javascript
img标签中onerror用法
2009/08/13 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python2.7到3.x迁移指南
2018/02/01 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
2019/07/15 Python
Python2与Python3的区别详解
2020/02/09 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
中海讯通笔试题
2015/09/15 面试题
生物科学专业个人求职信范文
2013/12/07 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
与死神共舞观后感
2015/06/15 职场文书
文艺节目主持词
2015/07/06 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技