- 1 企業(yè)微信與微信企業(yè)號(hào)
- 1.1 什么是企業(yè)微信-企業(yè)微信介紹
- 1.2 企業(yè)號(hào)升級(jí)到企業(yè)微信的通知
- 1.3 企業(yè)微信的發(fā)布-微信企業(yè)號(hào)將作為微信插件
- 1.4 企業(yè)微信與微信企業(yè)號(hào)的區(qū)別和聯(lián)系
- 1.5 微信企業(yè)號(hào)與服務(wù)號(hào) 訂閱號(hào)的區(qū)別
- 2 企業(yè)微信使用
- 2.1 申請(qǐng)企業(yè)微信
- 2.2 使用微信插件(原企業(yè)號(hào))
- 2.2.1 在企業(yè)微信中使用微信企業(yè)號(hào)
- 2.2.2 修改微信企業(yè)號(hào)的LOGO
- 2.2.3 在微信插件底部可快捷打開企業(yè)微信客戶端
- 2.3 修改應(yīng)用的LOGO
- 2.4 企業(yè)微信獲取對(duì)方是否已經(jīng)閱讀了信息的狀態(tài)
- 2.5 登錄企業(yè)微信APP
- 2.6 企業(yè)微信退出指定的企業(yè)
- 2.7 企業(yè)微信退出后重新加入企業(yè)
- 2.8 企業(yè)微信后臺(tái)添加成員及邀請(qǐng)成員加入
- 2.9 企業(yè)成員幾種加入企業(yè)微信的方法對(duì)比
- 2.10 免費(fèi)的企業(yè)郵箱并在企業(yè)微信中提示收到郵件
- 2.11 企業(yè)微信管理員后臺(tái)管理
- 2.11.1 企業(yè)微信成員賬號(hào)能夠修改嗎?
- 2.11.2 通訊錄如何添加自定義的字段-擴(kuò)展屬性-企業(yè)微信
- 2.12 企業(yè)微信內(nèi)部局域網(wǎng)如何訪問(wèn)企業(yè)微信-網(wǎng)管設(shè)置?
- 3 企業(yè)微信開發(fā)(Access Excel VBA)
- 3.1 企業(yè)微信開發(fā)入門
- 3.2 企業(yè)微信開發(fā)-回調(diào)
- 3.2.1 為什么要使用HTTPS以及國(guó)內(nèi)外有哪些免費(fèi)SSL證書
- 3.2.2 IIS使用阿里免費(fèi)SSL證書
- 3.2.3 其它環(huán)境使用阿里免費(fèi)SSL證書
- 3.2.4 企業(yè)微信及微信企業(yè)號(hào)開發(fā)經(jīng)驗(yàn)總結(jié)
- 3.2.5 企業(yè)微信及微信企業(yè)號(hào)回調(diào)設(shè)置
- 3.2.6 回調(diào)URL校驗(yàn)失敗或-40001錯(cuò)誤或echostr校驗(yàn)失敗,請(qǐng)您檢查是否正確解密并輸出明文echostr 終極解決方法
- 3.3 企業(yè)微信獨(dú)家經(jīng)驗(yàn)
- 3.4 相關(guān)說(shuō)明
- 4 企業(yè)微信開發(fā)VIP經(jīng)驗(yàn)心得
企業(yè)微信及微信企業(yè)號(hào)回調(diào)設(shè)置
- 2017-08-14 12:05:53
- zstmtony
- 8887
- 最后編輯:zstmtony 于 2017-08-14 14:03:29
在前面開通了https SSL證書之后,在開通企業(yè)微信回調(diào)之前,還需要設(shè)置 網(wǎng)頁(yè)授權(quán),及企業(yè)微信授權(quán)
然后在接收信息里啟用API接收
注意這里非常關(guān)鍵,如果設(shè)置不好,保存時(shí)經(jīng)常會(huì)提示回調(diào)URL校驗(yàn)失敗,根據(jù)出錯(cuò)提示,有些錯(cuò)誤在加密解密的錯(cuò)誤代表表中去找,有些錯(cuò)誤在企業(yè)微信的全局錯(cuò)誤碼里去找
還有時(shí)會(huì)提示 微信回調(diào)URL及密鑰時(shí)老是出現(xiàn) echostr校驗(yàn)失敗,請(qǐng)您檢查是否正確解密并輸出明文echostr 的問(wèn)題 這些錯(cuò)誤
主要有以下原因
1.你用的是SAE(如新浪的)的服務(wù)器嗎?是否實(shí)名審核通過(guò)。
2.下載的微信接口代碼有問(wèn)題(我從官網(wǎng)下載的代碼就一直驗(yàn)證失敗,換了一個(gè)就好了)。
3.在輸出 $echoStr之前加上header('content-type:text');
調(diào)通了微信企業(yè)號(hào)回調(diào)模式。
把步驟發(fā)出給其他正在研究的人參考:
1、根據(jù)微信企業(yè)平臺(tái)提供的模版文件 http://qydev.weixin.qq.com/sample.zip解壓到網(wǎng)站根目錄,
2、然后修改了sample.php,(除了在企業(yè)號(hào)后臺(tái)選擇啟動(dòng)回調(diào),把token等信息生成修改到以下外,還有不少地方需要修改,請(qǐng)參考以下代碼)
3、代碼如下:
<?php
include_once "WXBizMsgCrypt.php";
// 假設(shè)企業(yè)號(hào)在公眾平臺(tái)上設(shè)置的參數(shù)如下
$encodingAesKey = "FYTD8ACaJwNUVq9MrI2o5coIO37JDVjVdJqkQLjRWQa";
$token = "NbXTLiJ3AGEtYrGSxY7n";
$corpId = "wxe8d2e137796d1f37";
/*
------------使用示例一:驗(yàn)證回調(diào)URL---------------
*企業(yè)開啟回調(diào)模式時(shí),企業(yè)號(hào)會(huì)向驗(yàn)證url發(fā)送一個(gè)get請(qǐng)求
假設(shè)點(diǎn)擊驗(yàn)證時(shí),企業(yè)收到類似請(qǐng)求:
* 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
接收到該請(qǐng)求時(shí),企業(yè)應(yīng)
1.解析出Get請(qǐng)求的參數(shù),包括消息體簽名(msg_signature),時(shí)間戳(timestamp),隨機(jī)數(shù)字串(nonce)以及公眾平臺(tái)推送過(guò)來(lái)的隨機(jī)加密字符串(echostr),
這一步注意作URL解碼。
2.驗(yàn)證消息體簽名的正確性
3. 解密出echostr原文,將原文當(dāng)作Get請(qǐng)求的response,返回給公眾平臺(tái)
第2,3步可以用公眾平臺(tái)提供的庫(kù)函數(shù)VerifyURL來(lái)實(shí)現(xiàn)。
*/
$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) {
//
// 驗(yàn)證URL成功,將sEchoStr返回
HttpUtils.SetResponce($sEchoStr);
} else {
print("ERR: " . $errCode . "\n\n");
}
?>