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 相关文章推荐
example2.php
Oct 09 PHP
杏林同学录(一)
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
php 小乘法表实现代码
Jul 16 PHP
JS 网站性能优化笔记
May 24 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
php中实现简单的ACL 完结篇
Sep 07 PHP
smarty中常用方法实例总结
Aug 07 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
解决在laravel中auth建立时候遇到的问题
Oct 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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
php foreach正序倒序输出示例代码
2014/07/01 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
javascript实现计算器功能
2020/03/30 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
金蝶的一道SQL笔试题
2012/12/18 面试题
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
如何进行Linux分区优化
2016/09/13 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
英文推荐信格式范文
2014/05/09 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书