Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara melaksanakan push acara akaun awam WeChat dalam PHP

Cara melaksanakan push acara akaun awam WeChat dalam PHP

王林
王林asal
2023-05-13 12:10:353577semak imbas

Akaun awam WeChat telah menjadi saluran penting bagi banyak syarikat dalam pemasaran dan perkhidmatan, dan fungsi tolak acara juga merupakan bahagian yang sangat penting. Artikel ini akan memperkenalkan cara melaksanakan push acara akaun rasmi WeChat dalam PHP, supaya perusahaan boleh berinteraksi dengan pengguna dengan lebih baik.

1. Gambaran keseluruhan tolak acara akaun awam WeChat

Tekan acara akaun awam WeChat merujuk kepada pelayan WeChat yang secara aktif menolak jenis acara tertentu ke akaun awam semasa interaksi antara pengguna dan orang ramai akaun. Seperti mengikuti, berhenti mengikuti, mengklik pada menu, dsb. Akaun rasmi boleh memberikan pengalaman dan perkhidmatan pengguna yang lebih baik dengan mengendalikan acara ini.

2. Pembinaan persekitaran PHP

Sebelum melaksanakan push acara akaun rasmi WeChat, anda perlu menyediakan persekitaran pembangunan PHP terlebih dahulu. Artikel ini menggunakan XAMPP sebagai contoh untuk memperkenalkan langkah operasi khusus:

  1. Muat turun dan pasang XAMPP (disarankan untuk memilih versi PHP7
  2. Mulakan pelayan Apache dan pangkalan data MySQL ;
  3. Dalam Masukkan "localhost" dalam penyemak imbas untuk mengesahkan bahawa anda boleh mengakses halaman selamat datang XAMPP seperti biasa; akan digunakan untuk menyimpan kod pembangunan WeChat.
  4. 3. Konfigurasi pembangunan akaun awam WeChat

Selepas persekitaran pembangunan PHP dibina, akaun awam WeChat perlu dikonfigurasikan untuk memudahkan interaksi dengan PHP. Langkah-langkah khusus adalah seperti berikut:

Log masuk ke platform awam WeChat, masukkan halaman "Pembangunan" - "Konfigurasi Asas", dan dapatkan AppID dan AppSecret.
  1. Cari pilihan "Konfigurasi Pelayan" di bahagian bawah halaman, isikan alamat pelayan, Token dan maklumat lain, dan dayakan fungsi "Terima Mesej" dan "Terima Acara", simpan dan berkuat kuasa.
  2. Sahkan kesahihan alamat pelayan. Dalam halaman "Konfigurasi Pelayan", klik "Serah", dan sistem akan menghantar permintaan GET ke alamat pelayan yang diisi dan mengembalikan echostr mengikut keperluan konfigurasi Jika pemulangan berjaya, ini bermakna pengesahan telah diluluskan. Jika pengesahan gagal, konfigurasi semula diperlukan.
  3. 4. Tulis kod PHP

Selepas pembangunan dan konfigurasi akaun awam WeChat selesai, anda boleh menulis kod yang berkaitan dalam PHP. Pelaksanaan kod akan dibahagikan kepada tiga bahagian.

Dapatkan mesej atau acara yang diterima dan huraikannya
  1. Akaun rasmi WeChat akan menghantar mesej atau acara yang diterima ke alamat pelayan yang dikonfigurasikan oleh akaun rasmi, jadi ia perlu diluluskan PHP menerima dan menghuraikan data ini. Kod pelaksanaan khusus adalah seperti berikut:
$postdata = $GLOBALS['HTTP_RAW_POST_DATA'];  //获取POST数据
if (!empty($postdata)) {  //判断数据是否为空
    $postObj = simplexml_load_string($postdata, 'SimpleXMLElement', LIBXML_NOCDATA);  //将XML数据解析为对象
    $msgType = $postObj->MsgType;   //获取消息类型
    if ($msgType == 'event') {   //判断消息是否为事件
        $event = $postObj->Event;  //获取事件类型
        //处理事件
    } else {
        //处理消息
    }
}

Memproses acara dan mesej
  1. Selepas menerima mesej atau acara, ia perlu diproses dengan sewajarnya mengikut jenis yang berbeza. Kod pelaksanaan khusus adalah seperti berikut:

(1) Memproses acara menarik:

if ($event == 'subscribe') {
    $toUser = $postObj->FromUserName;  //获取用户OpenID
    $fromUser = $postObj->ToUserName;  //获取公众号原始ID
    $time = time();  //获取当前时间戳
    $msgType = 'text';  //回复消息类型为文本
    $content = '欢迎关注我们的公众号!';  //回复消息内容
    $template = '<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[%s]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        </xml>';
    $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);  //构造回复消息XML
    echo $info;  //返回回复消息给微信服务器
}

(2) Memproses mesej teks:

if ($msgType == 'text') {
    $toUser = $postObj->FromUserName;  //获取用户OpenID
    $fromUser = $postObj->ToUserName;  //获取公众号原始ID
    $time = time();  //获取当前时间戳
    $msgType = 'text';  //回复消息类型为文本
    $content = '您发送的是文本消息,我们会尽快回复您的问题。';  //回复消息内容
    $template = '<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[%s]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        </xml>';
    $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);  //构造回复消息XML
    echo $info;  //返回回复消息给微信服务器
}

Jana tandatangan
  1. Dalam pembangunan akaun awam WeChat, tandatangan perlu digunakan untuk memastikan keselamatan proses interaksi. Kaedah pelaksanaan khusus adalah seperti berikut:
$signature = $_GET["signature"];  //获取加密签名
$timestamp = $_GET["timestamp"];  //获取时间戳
$nonce = $_GET["nonce"];  //获取随机数
$token = "你在微信公众平台设置的Token值";  //获取Token值
$tmpArr = array($token, $timestamp, $nonce);  //组装数组
sort($tmpArr, SORT_STRING);  //按照字典序排序
$tmpStr = implode($tmpArr);  //组装字符串
$tmpStr = sha1($tmpStr);  //加密
if ($tmpStr == $signature) {  //比较签名
    return true;
} else {
    return false;
}

5 Ujian penyebaran

Selepas kod PHP ditulis, kod perlu digunakan ke pelayan untuk ujian. Langkah-langkah khusus adalah seperti berikut:

Muat naik kod bertulis ke direktori "htdocs/wechat" di bawah direktori XAMPP.
  1. Masukkan "localhost/wechat" dalam penyemak imbas untuk mengesahkan bahawa penggunaan persekitaran pelayan selesai dengan betul.
  2. Menjalankan ujian tolak acara pada platform awam WeChat untuk menyemak sama ada penerimaan dan pemprosesan adalah normal.
  3. 6 Ringkasan

Dengan melaksanakan langkah di atas, anda boleh melaksanakan push acara akaun rasmi WeChat dalam PHP. Perusahaan boleh menggunakan fungsi ini untuk berinteraksi dengan lebih baik dengan pengguna dan meningkatkan pengaruh jenama dan kepuasan pengguna.

Atas ialah kandungan terperinci Cara melaksanakan push acara akaun awam WeChat dalam PHP. 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