91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信公眾平臺消息接口開發從Hello2BizUser文本到subscribe事件的示例分析

發布時間:2021-09-13 09:59:53 來源:億速云 閱讀:141 作者:小新 欄目:移動開發

這篇文章主要介紹了微信公眾平臺消息接口開發從Hello2BizUser文本到subscribe事件的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、Hello2BizUser舊事件的處理

在老的關注事件中,用戶關注微信公眾平臺賬號后,系統會幫用戶發送一條Hello2BizUser的文本給公眾賬號,公眾賬號后臺開發模式下通過判斷Hello2BizUser這個詞來實現發送歡迎詞。

代碼樣例如下:

if ($keyword == "Hello2BizUser"){
    $contentStr = "億速云";
    $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
    return $resultStr;
}

做出基礎接口上的修改,影響會是所有人。一般不會輕易做這樣的改動。

為什么微信要修改這一事件了,這個方法的弊端在于,如果用戶沒有判斷這一事件,那么就不會有歡迎詞,本來這也沒什么關系,不出現歡迎詞也不影響什么。但很多人的程序代碼里面,所有流程直接就是判斷關鍵詞。比如我們曾看到過一家醫院的微信賬號,用戶發送掛號的號碼,就顯示前面有多少人排列,但后臺程序沒有做區分,把Hello2BizUser也當成掛號單發送過去,返回沒有找到Hello2BizUser這一掛號,不知道前面有多少人,搞得用戶莫名奇妙。還有就是用戶如果主動發送一個Hello2BizUser過去,那么得到的也是和歡迎詞一樣的內容,雖然很少有用戶會去發這個東西。

另一方面,將用戶關注做成事件,更有利于統計功能的實現。利用這個事件,我們就更能容易的判斷出關注人數和退訂人數,而原來的Hello2BizUser文本推送判斷是有可能不準確的,因為用戶可以手工發送,形成虛假關注統計。

二、“subscribe”訂閱事件判斷

subscribe是一種新的事件,我們先需要做事件類型做判斷,我們在官方樣例中增加對這一事件的判斷,修改如下:

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$RX_TYPE = trim($postObj->MsgType);

switch ($RX_TYPE)
{
    case "text":
        $resultStr = $this->receiveText($postObj);
        break;
    case "event":
        $resultStr = $this->receiveEvent($postObj);
        break;
    default:
        $resultStr = "unknow msg type: ".$RX_TYPE;
        break;
}

然后在事件接收處理函數中再判斷訂閱事件 :

private function receiveEvent($object)
{
    $contentStr = "";
    switch ($object->Event)
    {
        case "subscribe":
            $contentStr = "您好,歡迎關注方倍工作室。新感覺,新體驗!";
            break;
    }
    $resultStr = $this->transmitText($object, $contentStr);
    return $resultStr;
}

這樣就完成了“subscribe”的訂閱事件下的處理。

二、完整代碼

<?php
define("TOKEN", "方倍工作室");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $RX_TYPE = trim($postObj->MsgType);

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    break;
                default:
                    $resultStr = "unknow msg type: ".$RX_TYPE;
                    break;
            }
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }

    private function receiveText($object)
    {
        $funcFlag = 0;
        $keyword = trim($object->Content);
        $resultStr = "";
        $cityArray = array();
        $contentStr = "";
        $needArray = false;
        $illegal = false;
        $saytome = false;
        
        if ($keyword == "Hello2BizUser"){
            $contentStr = "歡迎關注方倍工作室,這其實是老的歡迎詞,你關注時收不到了";
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
            return $resultStr;
        }else {
        
        }
    }

    private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr = "您好,歡迎關注方倍工作室。新感覺,新體驗!";
                break;
        }
        $resultStr = $this->transmitText($object, $contentStr);
        return $resultStr;
    }
    
    private function transmitText($object, $content, $flag = 0)
    {
        $textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>%d</FuncFlag>
</xml>";
        $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
        return $resultStr;
    }
}

?>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信公眾平臺消息接口開發從Hello2BizUser文本到subscribe事件的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵港市| 台中市| 措美县| 进贤县| 平原县| 黑河市| 乡城县| 剑河县| 林州市| 遵化市| 彭山县| 白河县| 鲜城| 滦平县| 湖州市| 江都市| 当雄县| 南京市| 绥江县| 盐源县| 隆安县| 安阳县| 九台市| 玉山县| 永嘉县| 新乡县| 星子县| 呼和浩特市| 吕梁市| 阿克苏市| 义乌市| 虞城县| 钦州市| 泗水县| 济南市| 浦江县| 个旧市| 新河县| 上虞市| 锡林浩特市| 涞源县|