Thinkphp6调用企业微信官方weworkapi配置接收消息服务器方法

本文详细介绍了如何配置并使用微信企业号API的PHP回调验证功能。首先,下载并解压官方提供的PHP SDK,然后将工作目录设置到项目中,并在接口文件中引入WXBizMsgCrypt.php。当企业号发起回调验证请求时,程序通过验证消息签名、解密echostr并返回,确保了与微信平台的安全交互。此过程涉及到的关键技术包括签名验证、AES解密和URL解码。
摘要由CSDN通过智能技术生成

1.下载官方weworkapi_php-master.zip

2.解压后将callback目录改名为workchat复制到项目extend

3.在接口文件中引入WXBizMsgCrypt.php文件

include_once (__DIR__."/../../../extend/workchat/WXBizMsgCrypt.php");

4.

/*
------------验证回调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来实现。

*/   

     public function notify(){
        $data = request()->get();
        $msg_signature = $data["msg_signature"];
        $timestamp = $data["timestamp"];
        $nonce = $data["nonce"];
        $echostr = $data["echostr"];

        // 需要返回的明文
        $sEchoStr = "";
        $token = "BstIH********ehw";
        $encodingAesKey = "7SKg5xFLvu*********HPhGBe4VGW9gHseHdb";

        $wxcpt = new \WXBizMsgCrypt($token, $encodingAesKey, config("workchat.corp_id"));
        $errCode = $wxcpt->VerifyURL($msg_signature, $timestamp, $nonce, $echostr, $sEchoStr);
        //trace($errCode);
        //trace($sEchoStr);
        if ($errCode == 0) {
            echo $sEchoStr;
        } else {
            print("ERR: " . $errCode . "\n\n");
        }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值