Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

huo-zi/laravel-wechat-notification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

46 Commits

Repository files navigation

laravel-wechat-notification

这是一个laravel框架下基于laravel-wechat使用微信/企微应用消息通知作为notification通道的composer包,使用前请先熟读laravel-消息通知
目前已支持:

  • 公众号模板消息
  • 小程序模板消息
  • 开放平台公众号模板消息
  • 开放平台小程序模板消息
  • 企业微信消息
  • 企业微信开放平台消息

使用方式:

0. 添加composer包:

composer require "huo-zi/laravel-wechat-notification"

1. 在继承了notification的通知类中可以使用如下方法:

public function via($notifiable)
{
 /*
 * 支持的via列表
 * official_account:公众号
 * mini_program:小程序
 * open_official_account:开放平台公众号
 * open_mini_program:开放平台小程序
 * work:企业微信
 * open_work:开放平台企业微信
 */
 return ['official_account', 'mini_program'];
}
  • 使用公众号发送模板消息:
public function toOfficialAccount()
{
 return WechatMessage::officialAccount('app_name')->template('templateId')->url($url)->data(['fisrt'=>'...']);
}
  • 使用小程序发送模板消息:
public function toMiniProgram()
{
 return WechatMessage::miniProgram('app_name')->template($templateId)->formId($formId)->data([
 'first' => ''
 //
 ]);
}
  • 使用开放平台公众号发送模板消息:
public function toOpenOfficialAccount()
{
 return WechatMessage::openFlatform($name)->officateAccount($appId, $refreshToken, $accessToken)->template('templateId');
}
// 或使用闭包创建开放平台的公众号对象
public function toOpenOfficialAccount()
{
 return WechatMessage::openFlatform($name)->officateAccount(function ($open) {
 return $open->officateAccount($appId, $refreshToken, $accessToken);
 })->template('templateId');
}
// 或创建好开放平台对象后使用
public function toOpenOfficialAccount()
{
 return (new WechatPlatform($openPlatform))->officateAccount($appId, $refreshToken, $accessToken)->template($templateId);
}
  • 使用开放平台小程序发送模板消息:
public function toOpenMiniProgram()
{
 return WechatMessage::openFlatform($name)->miniProgram($appId, $refreshToken, $accessToken)->template($templateId);
}
  • 使用企业微信发送消息:
public function toWork()
{
 return WechatMessage::work($name)->message($message)->ofAgent($agentId);
}
  • 使用开放平台企业微信发送消息:
public function toOpenWork()
{
 return WechatMessage::openWork($name)->work($authCorpId, $permanentCode)->message($message)->ofAgent($agentId);
 // 同样也支持创建好开放平台对象后使用及闭包创建work对象
 $messenger = (new WechatOpenWork($openWork))->work(function($openWork) {
 return $openWork->work($authCorpId, $permanentCode);
 });
 return $messenger->message($message)->ofAgent($agentid);
}

2. 在使用了triat Notifiable的模型里增加获取对应openid/userid的方法:

可以参考官方文档里发送邮件通知时自定义收件人

  • 获取公众号openid
public function routeNotificationForOfficialAccount($notification)
{
 // 返回当前model的公众号openid
 return $this->openid;
}
  • 获取小程序openid
public function routeNotificationForMiniProgram($notification)
{
 // 返回当前model的小程序openid
}
  • 获取开放平台公众号openid
public function routeNotificationForOpenOfficialAccount($notification)
{
 // 返回对应开放平台公众号用户的openid
}
  • 获取开放平台小程序openid
public function routeNotificationForOpenMiniProgram($notification)
{
 // 返回对应开放平台小程序用户的openid
}
  • 获取企业微信userid
public function routeNotificationForWork($notification)
{
 // 返回当前model的企业微信userid
 return ;
}
  • 获取开放平台企业微信userid
public function routeNotificationForOpenWork($notification)
{
 // 返回对应开放平台企业用户userid
 return ;
}

3. 可参考官方文档:发送通知

使用Notifiable特性的notify方法可以给用户实例发送通知:

use App\Notifications\WorkNotify;
$user->notify(new WorkNotify(new Text('你好啊~')));

使用Notificationfacade 给多个可接收通知的实体发送通知

Notification::send($users, new WorkNotify(new Markdown('#你好啊~')));

License

Licensed under The MIT License (MIT).

About

Laravel 消息通知扩展 支持公众号模板消息、小程序消息、企微应用消息

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /