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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
php实现短信发送代码
Jul 05 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 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抓取及分析网页的方法详解
2016/04/26 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
jquery ui resizable bug解决方法
2010/10/26 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
js控制input输入字符解析
2013/12/27 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
iphone刘海屏页面适配方法
2019/05/07 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python的Django框架使用入门指引
2015/04/15 Python
Python浅复制中对象生存周期实例分析
2018/04/02 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python set集合使用方法解析
2019/11/05 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
安全生产实施方案
2014/02/23 职场文书
企业节能减排实施方案
2014/03/19 职场文书
单位租车协议书
2015/01/29 职场文书