Home  >  Article  >  Backend Development  >  Sharing examples of opening and usage of PHP WeChat enterprise account callback mode

Sharing examples of opening and usage of PHP WeChat enterprise account callback mode

*文
*文Original
2017-12-25 10:32:442273browse

This article mainly introduces the opening and usage of the PHP WeChat Enterprise Account callback mode. It analyzes the opening and usage of the PHP WeChat Enterprise Account callback mode in the form of specific examples. The code is provided with detailed comments to facilitate readers’ understanding. It is required Friends can refer to it. I hope it will be helpful for everyone to understand how to enable and use the WeChat enterprise account callback mode.


# Summer internship, the leader arranged to develop a WeChat enterprise account. I will record the problems encountered here and share them with friends who encounter the same problem. I hope it will be helpful to my friends. Needless to say, there is no need to say more about the WeChat enterprise account registration part. Today, we will record the WeChat enterprise account - the callback mode opens the php part.

In fact, the WeChat development documentation is indeed very detailed, and using the official demo, you can use it directly as long as you make slight changes. But why does it always prompt an error?

Below I will first post the code for turning on the callback mode that I successfully verified


<?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");
}


You can see the above code and demo The ones given are basically the same. The same code was verified unsuccessfully a day ago. After research, it was found that: The domain name when verifying the URL must be a trusted domain name. ps: I am using Sina Cloud, but I did not conduct real-name authentication, so there is a risk. After I authenticated my real-name, it was successfully opened.

Enlightenment: Official documents are never wrong. It is necessary to study official documents carefully. In the process of opening the WeChat enterprise account-callback mode, the domain name must be a trusted domain name, which is also very important.

Related recommendations:

PHP WeChat public account development, keyword reply using switch error

php WeChat public account third-party platform network-wide publishing issues

WeChat public account development and configuration common error message summary

The above is the detailed content of Sharing examples of opening and usage of PHP WeChat enterprise account callback mode. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn