to ken 配置成功 就是关注不回复

来源:3-1 接收事件订阅与回复响应消息(一)

慕粉2116305167

2017-12-24 15:57

关注不回复 不进else 

写回答 关注

6回答

  • qq_做一个坚强的人_0
    2018-09-20 10:36:18

    请问,你解决了吗

  • qq_sdf_4
    2018-02-17 16:57:56

    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];很可能是这行代码有问题,这行代码我是获取不到数据的,所以进不了判断。$postStr =file_get_contents("php://input"); 改用这句就可以获取xml数据,然后进入判断了。

  • 慕粉2116305167
    2017-12-27 11:33:52

    这个是代码  token已经配置成功了 大神看看为啥关注成功不回复消息 

  • 慕粉2116305167
    2017-12-27 11:32:40

    <?php

    namespace app\index\controller;


    class Index

    {

    public function index(){

    //获得参数 signature nonce token timestamp echostr

    $nonce     = $_GET['nonce'];

    $token     = 'imooc';

    $timestamp = $_GET['timestamp'];

    $echostr   = $_GET['echostr'];

    $signature = $_GET['signature'];

    //形成数组,然后按字典序排序

    $array = array();

    $array = array($nonce, $timestamp, $token);

    sort($array);

    //拼接成字符串,sha1加密 ,然后与signature进行校验

    $str = sha1( implode( $array ) );

    if( $str == $signature && $echostr){

    //第一次接入weixin api接口的时候

    echo  $echostr;

    exit;

    }else{

    $this->reponseMsg();

    }

    }

    public function reponseMsg(){

    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

            //½«xmlÊý¾Ý°üת³É¶ÔÏó

            $postObj = simplexml_load_string($postStr);

            $fromUsername = $postObj->FromUserName;

            $toUsername = $postObj->ToUserName;

            $time = time();

            if(strtolower($postObj->MsgType) == 'event') {

    //判断如果是关注

            if(strtolower($postObj->Event) == 'subscribe'){

                    $textTpl = "<xml>

                                    <ToUserName><![CDATA[%s]]></ToUserName>

                                    <FromUserName><![CDATA[%s]]></FromUserName>

                                    <CreateTime>%s</CreateTime>

                                    <MsgType><![CDATA[%s]]></MsgType>

                                    <Content><![CDATA[%s]]></Content>

                                </xml>";

                    $msgType = "text";

                    $contentStr = "谢谢关注000";

                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

                    echo $resultStr;

                }


            }

    }//reponseMsg end

    }


  • qq_自_3
    2017-12-25 21:52:56

    我的也不行,怎么解决啊?兄弟


  • 猫熊_
    2017-12-25 19:50:06

    不进else多半是代码有错,要贴代码才好找

PHP实现微信公众平台开发—提升篇

本课程详细讲解了接收微信用户发送的消息和接收订阅关注的事件推送

64923 学习 · 258 问题

查看课程

相似问题