国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah applet WeChat pembangunan WeChat 微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件

微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件

Mar 04, 2017 pm 02:49 PM
Platform awam WeChat

一、Hello2BizUser舊事件的處理

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

代碼樣例如下:

if ($keyword == "Hello2BizUser"){
    $contentStr = "PHP中文網(wǎng)";
    $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
    return $resultStr;
}

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

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

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

二、“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;
}

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

private function receiveEvent($object)
{
    $contentStr = "";
    switch ($object->Event)
    {
        case "subscribe":
            $contentStr = "您好,歡迎關(guān)注方倍工作室。新感覺,新體驗!";
            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, &#39;SimpleXMLElement&#39;, 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 = "歡迎關(guān)注方倍工作室,這其實是老的歡迎詞,你關(guān)注時收不到了";
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
            return $resultStr;
        }else {
        
        }
    }

    private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr = "您好,歡迎關(guān)注方倍工作室。新感覺,新體驗!";
                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;
    }
}

?>

?更多微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件?相關(guān)文章請關(guān)注PHP中文網(wǎng)!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276