Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam

Cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam

WBOY
WBOYasal
2023-09-19 11:01:59986semak imbas

Cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam

Cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik akaun awam

Dengan populariti akaun awam WeChat, banyak syarikat dan individu telah mula Memahami dan menggunakan akaun rasmi WeChat. Akaun rasmi WeChat menyediakan antara muka berfungsi yang kaya, antaranya fungsi pengurusan peraturan balasan automatik adalah fungsi yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam dan menyediakan contoh kod khusus.

Pertama sekali, kita perlu memahami beberapa konsep asas fungsi pengurusan peraturan balasan automatik bagi akaun rasmi WeChat. Pada halaman pengurusan bahagian belakang akaun rasmi WeChat, kami boleh menetapkan menu tersuai dan peraturan balasan automatik kata kunci.

Menu tersuai bermaksud apabila pengguna mengklik menu selepas mengikuti akaun rasmi, akaun rasmi akan bertindak balas dengan sewajarnya mengikut tetapan menu. Menu tersuai boleh dibahagikan kepada menu peringkat pertama dan menu peringkat kedua Setiap item menu boleh ditetapkan untuk mencetuskan acara selepas diklik, yang boleh menjadi mesej balasan, pautan lompat atau panggilan antara muka, dsb.

Peraturan balasan automatik kata kunci bermakna apabila pengguna menghantar mesej yang mengandungi kata kunci tertentu, akaun rasmi akan membalas mengikut peraturan balasan yang ditetapkan. Kata kunci boleh berupa teks, gambar, pautan, dll. Peraturan balasan boleh membalas mesej tetap, membalas mesej rawak atau antara muka panggilan, dsb.

Seterusnya, kami akan mula memperkenalkan secara terperinci cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik akaun awam.

Pertama sekali, kita perlu menyediakan persekitaran pembangunan PHP, termasuk pelayan web (seperti Apache atau Nginx), penghurai PHP dan pangkalan data MySQL. Dalam persekitaran ini, kita boleh menggunakan PHP untuk membangunkan aplikasi web, mengendalikan permintaan daripada pelayan WeChat dan bertindak balas dengan sewajarnya.

Seterusnya, kita perlu mendapatkan AppID dan AppSecret akaun rasmi WeChat. Kami boleh memohon akaun pembangun pada platform awam WeChat dan membuat akaun awam. Dalam tetapan akaun rasmi, kami boleh mencari AppID dan AppSecret.

Seterusnya, kita perlu mengkonfigurasi alamat pelayan dan Token dalam alat pembangun platform awam WeChat. Alamat pelayan ialah alamat pelayan web yang kami bina sendiri, dan Token ialah rentetan yang digunakan untuk mengesahkan identiti antara pelayan WeChat dan pelayan kami sendiri. Selepas konfigurasi selesai, klik Sahkan dan simpan Token, yang kami perlukan semasa menulis kod.

Seterusnya, kita boleh mula menulis kod PHP. Mula-mula, cipta fail bernama wechat.php dan tulis kod berikut dalam fail:

<?php

define("TOKEN", "YOUR_TOKEN");

$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();

class wechatCallbackAPI
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];

        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
                
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

Dalam kod di atas, kami mula-mula mentakrifkan TOKEN malar untuk menyimpan Token pembangun WeChat kami yang dikonfigurasikan dalam alat. Seterusnya, kami mencipta kelas bernama wechatCallbackAPI dan menentukan dua kaedah, valid() dan checkSignature() dalam kelas. Kaedah

valid() digunakan untuk mengesahkan identiti antara pelayan WeChat dan pelayan kami sendiri, dan mengembalikan hasil pengesahan. Dalam kaedah tersebut, kami mula-mula mendapatkan parameter echostr yang diluluskan oleh pelayan WeChat dan menyimpannya ke pembolehubah $echoStr. Kemudian, panggil kaedah checkSignature() untuk pengesahan. Jika pengesahan lulus, $echoStr dikeluarkan kepada klien dan pelaksanaan program ditamatkan. Kaedah

checkSignature() digunakan untuk mengesahkan sama ada parameter yang diluluskan oleh pelayan WeChat adalah sah. Mula-mula, kami memperoleh tandatangan, cap masa dan parameter nonce yang diluluskan oleh pelayan WeChat dan menyimpannya ke dalam pembolehubah yang sepadan. Kemudian, susun TOKEN, cap waktu dan nonce dalam susunan leksikografi dan gunakan algoritma SHA1 untuk penyulitan. Akhir sekali, rentetan yang disulitkan dibandingkan dengan tandatangan yang diluluskan oleh pelayan WeChat Jika mereka sama, pengesahan lulus, jika tidak pengesahan gagal.

Seterusnya, kita boleh menulis kod untuk balasan automatik. Demi kesederhanaan, di sini kami hanya melaksanakan fungsi balasan automatik kata kunci. Dalam fail wechat.php, tambahkan kod berikut:

<?php

// 省略上面的代码

class wechatCallbackAPI
{
    // 省略上面的代码
    
    public function responseMsg()
    {
        // 获取微信服务器POST过来的XML数据
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $content = trim($postObj->Content);
            $time = time();

            if ($content == "你好"){
                $textTpl = "<xml>
";
                $textTpl .= "<ToUserName><![CDATA[%s]]></ToUserName>
";
                $textTpl .= "<FromUserName><![CDATA[%s]]></FromUserName>
";
                $textTpl .= "<CreateTime>%s</CreateTime>
";
                $textTpl .= "<MsgType><![CDATA[text]]></MsgType>
";
                $textTpl .= "<Content><![CDATA[%s]]></Content>
";
                $textTpl .= "</xml>";

                $msgType = "text";
                $replyContent = "你好!欢迎关注我的公众号!";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $replyContent);
                echo $resultStr;
            } else {
                echo "success";
            }
        }else {
            echo "success";
            exit;
        }
    }
}

$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();
$wechatObj->responseMsg();

Dalam kod di atas, kami menambah kaedah bernama responseMsg() dalam kelas wechatCallbackAPI (untuk memproses mesej pengguna). Dalam kaedah ini, kami mula-mula mendapatkan POST data XML daripada pelayan WeChat dan menyimpannya ke pembolehubah $postStr. Kemudian, data XML ditukar kepada objek SimpleXMLElement melalui fungsi simplexml_load_string() dan disimpan ke dalam pembolehubah dengan nilai nod yang sepadan.

Di sini, kami menggunakan fungsi auto balas kata kunci sebagai contoh. Jika kandungan mesej yang dihantar oleh pengguna ialah "Hello", akaun rasmi akan membalas "Hello! Selamat mengikuti akaun rasmi saya!", jika tidak, tiada balasan akan dibuat.

Akhir sekali, kami mencipta objek $wechatObj pada penghujung fail wechat.php, dan memanggil kaedah valid() dan responseMsg() mengikut turutan untuk melengkapkan pengesahan antara pelayan WeChat dan kami sendiri pelayan , dan memproses mesej pengguna.

Setakat ini, kami telah menyelesaikan penulisan kod fungsi pengurusan peraturan balasan automatik akaun awam menggunakan PHP. Seterusnya, kami boleh menggunakan fail wechat.php ke pelayan web kami dan mengkonfigurasi alamat pelayan dan Token dalam platform awam WeChat untuk menguji sama ada kod kami sah.

Ringkasnya, artikel ini memperkenalkan cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam dan menyediakan contoh kod khusus. Semoga ia membantu semua orang.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk membangunkan fungsi pengurusan peraturan balasan automatik bagi akaun awam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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