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版(1)
Oct 09 PHP
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
如何在php中正确的使用json
Aug 06 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
Aug 16 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
JMS中Topic和Queue有什么区别
2013/05/15 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
酒店保洁主管岗位职责
2013/11/28 职场文书
如何写好升职自荐信
2014/01/06 职场文书
好的促销活动方案
2014/08/21 职场文书
我的1919观后感
2015/06/03 职场文书
个人收入证明范本
2015/06/12 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android