- 執行 composer require "overtrue/laravel-wechat:~3.0"
- 在 laravel 中註冊相關應用
- 在 app/config.php 註冊 ServiceProvider 和 Facade
- 'providers' => [
Overtrue\LaravelWeChat\ServiceProvider::class,
], - 'aliases' => [
'wechat' => Overtrue\LaravelWeChat\Facade::class,
],
-
生成 config 配置檔案
-
執行 php artisan vendor:publish 如有選項,請選擇生成 wechat.php 這項
-
在 wechat.php 中填寫對應配置,在 env 檔案中填寫相關配置檔案
-
註冊路由,路由定義方式一定要用 any,因為微信伺服器傳送過來的請求有 get 和 post
-
在中介軟體中過濾掉該路由
-
獲取使用者資訊,首先你的公眾號有獲取使用者的許可權,在介面許可權中可以檢視
-
可以用測試介面,測試介面基本擁有所有許可權,下面程式碼都是用的測試介面。
-
<?php
namespace App\Http\Controllers;
//該控制器對應的路由需用 any 方法,該路由就是你在微信伺服器上的 url 地址
class WechatController extends Controller
{
public function server()
{
$app = app('wechat');
$user = $app->user; //呼叫元件中 user 服務
/*
setMessagehandler 中已經包含了使用者返回的訊息,也可能是事件,
當 $message->MsgType 為 event 時為事件,$message->Event 為事件型別,
常見的 subscribe,是使用者關注公眾號的事件型別,如果不是事件型別,則直接返回文字
*/
$app->server->setMessagehandler(function($message) use ($user) {
if ($message->MsgType == 'event' && $message->Event == 'SCAN') {
return '繫結微信,你的暱稱是' . $user->get($message->FromUserName)->nickname;
} else {
return '歡迎關注楚樓網微信';
}
});
return $app->server->serve();
}
}
<?php
namespace App\Http\Controllers;
use EasyWeChat\Foundation\Application;
class UserController extends Controller
{
private $wechat;
//通過依賴注入,初始化配置,Application 引用了 EasyWecaht的Foundation\Application;
public function __construct(Application $application)
{
$this->wechat = $application;
}
//獲取公眾號的使用者列表
public function index()
{
$user = $this->wechat->user->lists();
return $user;
}
//獲取單個使用者的資訊
public function show($id)
{
$user = $this->wechat->user->get($id);
return $user;
}
//修改某個使用者的備註
public function create($id)
{
$this->wechat->user->remark($id, '大神級人物');
return 'ok';
}
//群發訊息
public function send()
{
$this->wechat->broadcast->sendText('內容', [$openid1, $openid2]);
return 'ok';
}
//獲取全部模板訊息
public function get()
{
$res = $this->wechat->notice->getPrivateTemplates();
return $res;
}
//傳送模板訊息,如果需要傳送給多個使用者,可迴圈傳送
模板樣例
{{ first.DATA }}
商品明細:
名稱:{{ name.DATA }}
價格:{{ price.DATA }}
{{ remark.DATA }}
public function sms()
{
$url = 'www.baidu.com';
$data = array(
"first" => "恭喜你購買成功!",
"name" => "巧克力",
"price" => "39.8元",
"remark" => "歡迎再次購買!",
);
$notice = $this->wechat->notice;
$messageId = $notice->to($openid)->uses($templateId)->andUrl($url)->data($data)->send();
return 'ok';
}
}
- 生成二維碼
- $result = $this->wechat->qrcode->temporary(6 24 3600); 臨時二維碼
- $result = $this->wechat->qrcode->forever(56); 生成永久二維碼
- 頁面顯示二維碼 $url = $qrcode->url($result->ticket)
- 獲取二維碼圖片 file_get_contents($url);
EasyWecha 4.0版本和3.0用法基本相似,詳情可以看官方文件
本作品採用《CC 協議》,轉載必須註明作者和本文連結