企业微信及微信企业号手册介绍
1 企业微信与微信企业号
1.1 什么是企业微信-企业微信介绍
1.2 企业号升级到企业微信的通知
1.3 企业微信的发布-微信企业号将作为微信插件
1.4 企业微信与微信企业号的区别和联系
1.5 微信企业号与服务号 订阅号的区别
2 企业微信使用
2.1 申请企业微信
2.2 使用微信插件(原企业号)
2.2.1 在企业微信中使用微信企业号
2.2.2 修改微信企业号的LOGO
2.2.3 在微信插件底部可快捷打开企业微信客户端
2.3 修改应用的LOGO
2.4 企业微信获取对方是否已经阅读了信息的状态
2.5 登录企业微信APP
2.6 企业微信退出指定的企业
2.7 企业微信退出后重新加入企业
2.8 企业微信后台添加成员及邀请成员加入
2.9 企业成员几种加入企业微信的方法对比
2.10 免费的企业邮箱并在企业微信中提示收到邮件
2.11 企业微信管理员后台管理
2.11.1 企业微信成员账号能够修改吗?
2.11.2 通讯录如何添加自定义的字段-扩展属性-企业微信
2.12 企业微信内部局域网如何访问企业微信-网管设置?
3 企业微信开发
3.1 企业微信开发入门
3.1.1 代码添加用户与先扫描企业微信二维码的区别
3.2 企业微信开发-回调
3.2.1 为什么要使用HTTPS以及国内外有哪些免费SSL证书
3.2.2 IIS使用阿里免费SSL证书
3.2.3 其它环境使用阿里免费SSL证书
3.2.4 企业微信及微信企业号开发经验总结
3.2.5 企业微信及微信企业号回调设置
3.2.6 回调URL校验失败或-40001错误或echostr校验失败,请您检查是否正确解密并输出明文echostr 终极解决方法
3.3 企业微信独家经验
3.3.1 使用中控服务器获取AccessToken突然提示无权限
3.3.2 如何避免Access Token失效,保证access_token长期有效?
3.4 相关说明
3.4.1 企业微信主动调用频率限制
3.4.2 企业微信开发全局错误码
3.4.3 微信加解密库下载与错误返回码
3.4.4 企业号的CorpSecret在企业微信中如何查到
4 企业微信开发VIP经验心得
4.1 选择企业微信与微信插件原企业号的心得
4.2 企业微信如何通过手机号来获取 对应的成员ID及成员的详细信息呢?

企业微信及微信企业号回调设置

2017-08-14 12:05:53
zstmtony
859
最后编辑:zstmtony 于 2017-08-14 14:03:29

在前面开通了https SSL证书之后,在开通企业微信回调之前,还需要设置 网页授权,及企业微信授权

然后在接收信息里启用API接收

 


注意这里非常关键,如果设置不好,保存时经常会提示回调URL校验失败,根据出错提示,有些错误在加密解密的错误代表表中去找,有些错误在企业微信的全局错误码里去找

还有时会提示 微信回调URL及密钥时老是出现 echostr校验失败,请您检查是否正确解密并输出明文echostr 的问题 这些错误

主要有以下原因

1.你用的是SAE(如新浪的)的服务器吗?是否实名审核通过。
2.下载的微信接口代码有问题(我从官网下载的代码就一直验证失败,换了一个就好了)。
3.在输出 $echoStr之前加上header('content-type:text');



调通了微信企业号回调模式。

把步骤发出给其他正在研究的人参考:

1、根据微信企业平台提供的模版文件 http://qydev.weixin.qq.com/sample.zip解压到网站根目录,
2、然后修改了sample.php,(除了在企业号后台选择启动回调,把token等信息生成修改到以下外,还有不少地方需要修改,请参考以下代码)
3、代码如下:
<?php
include_once "WXBizMsgCrypt.php";
// 假设企业号在公众平台上设置的参数如下
$encodingAesKey = "FYTD8ACaJwNUVq9MrI2o5coIO37JDVjVdJqkQLjRWQa";
$token = "NbXTLiJ3AGEtYrGSxY7n";
$corpId = "wxe8d2e137796d1f37";
/*
------------使用示例一:验证回调URL---------------
*企业开启回调模式时,企业号会向验证url发送一个get请求
假设点击验证时,企业收到类似请求:
* GET /cgi-bin/wxpush?msg_signature=5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3&timestamp=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 = "5c45ff5e21c57e6ad56bac8758b79b1d9ac89fd3";
$sVerifyTimeStamp = HttpUtils.ParseUrl("timestamp");
// $sVerifyTimeStamp = "1409659589";
$sVerifyNonce = HttpUtils.ParseUrl("nonce");
// $sVerifyNonce = "263014780";
$sVerifyEchoStr = HttpUtils.ParseUrl("echostr");
// $sVerifyEchoStr = "P9nAzCzyDtyTWESHep1vC5X9xho/qYX3Zpb4yKa9SKld1DsH3Iyt3tP3zNdtp+4RPcs8TgAE7OaBO+FZXvnaqQ==";
// 需要返回的明文
$EchoStr = "";
$wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId);
$errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
if ($errCode == 0) {
//
// 验证URL成功,将sEchoStr返回
HttpUtils.SetResponce($sEchoStr);
} else {
print("ERR: " . $errCode . "\n\n");
}
?>