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 相关文章推荐
PHP5.0对象模型探索之抽象方法和抽象类
Sep 05 PHP
PHP调用三种数据库的方法(1)
Oct 09 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
mayfish 数据入库验证代码
Apr 30 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
php通过session防url攻击方法
Dec 10 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
php操作access数据库的方法详解
Feb 22 PHP
CI框架附属类用法分析
Dec 26 PHP
Laravel的加密解密与哈希实例讲解
Mar 24 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 DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
Python实现类的创建与使用方法示例
2017/07/25 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Java面试题:为什么要用Java
2012/05/11 面试题
2013年入党人员的自我鉴定
2013/10/25 职场文书
优秀求职信范文分享
2013/12/19 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
小学生新学期寄语
2014/01/19 职场文书
寒假家长评语大全
2014/04/16 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript