easyWechat 微信开发组件 (使用 EasyWecaht 为 3.0 版本)
- 运行 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 协议》,转载必须注明作者和本文链接
推荐文章: