Rumah > Artikel > rangka kerja php > Tutorial untuk pemula: laravel digabungkan dengan easywechat untuk menghantar mesej templat akaun awam
Baru-baru ini, saya menerima permintaan baharu, saya perlu menghantar mesej templat kepada pengguna yang mengikuti akaun perkhidmatan easywechat
laravel Arahan terperinci untuk menghantar mesej templat akaun rasmi digabungkan dengan easywechat Terima kasih kepada pengarang easywechat.
Oleh kerana keadaan kami agak istimewa, akaun rasmi yang terikat dengan program mini dan akaun rasmi yang akan ditolak adalah tidak sama Ini melibatkan kemungkinan union_Id tidak konsisten, jadi kedua-dua akaun rasmi perlu terikat kepada. Platform terbuka WeChat , jika tidak, hanya daftar dan ikat
Dokumen Platform Terbuka WeChat
Konfigurasikan nama domain selamat js
Jana rahsia (terutamanya simpan itu, Tetapan Semula susulan akan menjejaskan perniagaan dalam talian)
Isi dan dayakan konfigurasi pelayan
Alamat pelayan yang diisi di sini akan digunakan untuk menerima pelbagai panggilan balik acara daripada akaun rasmi pada masa hadapan, seperti ikut dan batal
Penyahpepijatan setempat memerlukan penembusan intranet Cari sendiri tutorial tertentu dan saya tidak. tidak tahu bagaimana untuk melakukannya
Selepas mengubah suai konfigurasi, WeChat akan mengesahkan sama ada alamat pelayan yang diisi boleh diterima seperti biasa, jadi ia akan melalui proses pengesahan dan antara muka perlu memberikan yang betul parameter pulangan
Akses rujukan pautan dokumen
Kerana pengesahan WeChat dan panggilan balik berikutnya Mereka semua akan menggunakan laluan ini, pengesahan ialah permintaan GET, dan panggilan balik acara seterusnya dan seumpamanya ialah permintaan pos, jadi laluan perlu ditetapkan kepada sebarang jenisRoute::any('official/notify', 'WechatController@officialNotify');pengarang easywechat Seorang Zhengchao telah mempertimbangkan perkara ini untuk kami Pengesahan pelayan serasi dengan penerimaan mesej dan balasan dalam satu pautan, jadi anda boleh menggunakan ia terus mengikut dokumen
public function officialNotify() { Log::channel('wechat')->info("公众号回调!!!!!1" ); $body = file_get_contents('php://input'); Log::channel('wechat')->info($body); $config = [ 'app_id' => config('wechat.yueliu_official_account.app_id'), 'secret' => config('wechat.yueliu_official_account.secret'), 'token' => config('wechat.yueliu_official_account.token'),// 'aes_key' => config('wechat.yueliu_official_account.aes_key'), // 明文模式请勿填写 EncodingAESKey 'aes_key' => '', // 明文模式请勿填写 EncodingAESKey 'log' => [ 'level' => 'error', 'file' => storage_path('logs/wechat.log'), ], 'response_type' => 'array' ]; $app = Factory::officialAccount($config); $app->server->push(function ($message) { Log::channel('wechat')->info($message); switch ($message['MsgType']) { case 'event': return '收到事件消息'; break; case 'text': return '收到文本消息'; break; case 'image': return '收到图片消息'; break; case 'voice': return '收到语音消息'; break; case 'video': return '收到视频消息'; break; case 'location': return '收到坐标消息'; break; case 'link': return '收到链接消息'; break; case 'file': return '收到文件消息'; // ... 其它消息 default: return '收到其它消息'; break; } }); // 在 laravel 中: $response = $app->server->serve(); // $response 为 `Symfony\Component\HttpFoundation\Response` 实例 // 对于需要直接输出响应的框架,或者原生 PHP 环境下 $response->send(); // 而 laravel 中直接返回即可: return $response; }
Perniagaan saya memerlukan, dalam Selepas pengguna memberi perhatian, mesej yang boleh melompat ke program mini perlu dihantar kepada pengguna Di sini, selepas menerima mesej acara, adalah perlu untuk menentukan sama ada ia adalah peristiwa yang membimbangkan, dan kemudian menukar mesej kembali kepada kod berikut Klik pautan di sini untuk Membuka program mini secara langsung tanpa meminta pengesahan daripada pengguna ambil perhatian bahawa mengikuti akaun awam, anda boleh mendapatkan unionid dan Beberapa maklumat asas, menyahikut hanya boleh dibuka
case 'event': return '欢迎关注音视频资产管理与协同交付平台「laravel」官方微信。 <a>点击跳转</a> 网页版请至: https://learnku.com'; break;
Rendering
Acara panggilan balik perhatian akaun rasmi WeChat Maklumat asas pengguna dan id kesatuan juga akan dihantar bersama-sama Pastikan anda menyimpan openid dan unionid akaun rasmi Mesej templat berikutnya akan dihantar berdasarkan openid akaun rasmipada platform awam WeChat Untuk memohon pengaktifan mesej templat, cari mesej templat dalam "Ciri Baharu" di bahagian bawah menu sebelah kanan dan klik Mohon untuk pengaktifan hari bekerja. Saya lulus dalam satu hari
Selepas pengaktifan, pilih industri dan jenis templat Jika perpustakaan templat yang disediakan oleh WeChat tidak ditemui dan Jika anda perniagaan adalah sama, anda perlu menghantar sendiri permohonan, tetapi ini mengambil masa yang lama, kira-kira 7-15 hari Adalah disyorkan untuk menggunakan perpustakaan templat
di sini. Id templat mesti disimpan dalam kod, dan anda perlu menggunakan
$openId = '公众号的openid'; $config = [ 'app_id' => config('wechat.yueliu_official_account.app_id'), 'secret' => config('wechat.yueliu_official_account.secret'), 'token' => config('wechat.yueliu_official_account.token'), // 'aes_key' => config('wechat.yueliu_official_account.aes_key'), // 明文模式请勿填写 EncodingAESKey 'aes_key' => '', // 明文模式请勿填写 EncodingAESKey 'log' => [ 'level' => 'error', 'file' => storage_path('logs/wechat.log'), ], 'response_type' => 'array' ]; $app = Factory::officialAccount($config);// $user = $app->user->get($openId);// dd($user); // 发送模板消息 $app->template_message->send([ 'touser' => $openId, 'template_id' => '模板id', 'url' => 'http://www.网站.cn', 'miniprogram' => [ // 跳转到小程序,和上面的url同时存在的话,则优先显示小程序 'appid' => '小程序的id', 'pagepath' => '小程序页面地址', ], 'data' => [ 'first' => [ 'value' => '赵师傅已加入群组演示项目', 'color' => '#888888' ], 'keyword1' => [ 'value' => '加入项目' ], 'keyword2' => [ 'value' => '加入成功' ], 'keyword3' => [ 'value' => '2021-12-10 14:21:05' ], 'remark' => [ 'value' => '点击打开小程序' ], ], ]);
Di atas adalah keseluruhan proses menggunakan laravel digabungkan dengan easywechat untuk menghantar mesej templat akaun rasmi, lengkap!
Cadangan berkaitan: Lima tutorial video Laravel terbaharu
Atas ialah kandungan terperinci Tutorial untuk pemula: laravel digabungkan dengan easywechat untuk menghantar mesej templat akaun awam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!