# laravel-notification-wechat
**Repository Path**: yansongda/laravel-notification-wechat
## Basic Information
- **Project Name**: laravel-notification-wechat
- **Description**: Wechat Template Message Notifications Channel for Laravel >= 5.3
- **Primary Language**: PHP
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2017-11-22
- **Last Updated**: 2022-03-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
laravel-notification-wechat
不知道大家有没有基于 laravel 的消息通知开发过微信的模板消息通知,我反正是开发过多次了,以前开发总是写在 app 目录下,然后又一坨都写在自定义的 WechatChannel 里面,看这心里总是不舒服。多次之后,就有了这个……
## 运行环境
- PHP 5.6+
- composer
## 安装
1. composer
`composer require yansongda/larvel-notification-wechat`
2. 注册 serviceprovider ( < laravel 5.5 )
`Yansongda\LaravelNotificationWechat\WechatServiceProvider::class`
## 使用
### 例子
```php
'Test First',
'keyword1' => 'keyword1',
'keyword2' => 'keyword2',
'keyword3' => ['keyword3', '#000000'],
'remark' => ['Test remark', '#fdfdfd'],
];
return WechatMessage::create($accessToken)
->to('oeTKvwYyc3PPAo3As3VRUBGppC0s')
->template("0qUpCTpgeYMFbjEKQ4W_D3ZNx5zUzQIfgasgqYX53mg")
->url('http://github.com/yansongda')
->data($data);
}
}
```
### 支持的 WechatMessage 方法
- `to(string $openid)`: 设置模板消息接收人的 openID
- `template(string $templateID)`: 设置模板消息的模板 ID
- `url(string $url)`: 设置点击模板消息后跳转 url,选填
- `miniprogram(string $appid, string $pagepath)`: 设置点击模板消息后跳转的小程序,选填
- `data(array $data)`: 设置模板消息数据
### 关于微信 AccessToken
微信发送模板消息时需要传递 accesstoken ,这里有三种方法去处理,方便与您现有的微信开发框架所集成。
- 直接传递 accesstoken 值到 `WechatMessage::create($accesstoken)` 方法中,如上例所示;
- 传递一个 `Yansongda\LaravelNotificatinoWechat\Contracts\AccessTokenInterface` 类到 `WechatMessage::create($CredentialClass)` 方法;
- 直接在 config 文件夹中的 services.php 中添加 `'wechat' => ['appid' => 'xxx', 'appsecret' => 'xxx']`,系统将自动获取 accesstoken 并缓存,缓存的 key 为 `wechatAccessToken您的APPID` 您可以直接通过 laravel 的 Cache Facade 获取缓存的 accesstoken,当然,最保险的方案是通过 `(new Yansongda\LaravelNotificationWechat\Credential($appid, $appsecret))->getAccessToken()` 去获取 accesstoken。
具体可查看源码。
### 说明
1. 如果 `miniprogram` 与 `url` 同时存在,则优先使用小程序跳转,详情请参考[官方文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277)
2. `data()`方法接收一个数组,其 `key` 为模板消息中的关键字,`value` 可以为字符串或数组。如果为字符串,则默认颜色为 `#173177`;如果为数组,则第一个参数为显示的数据,第二个参数为字体颜色
## 代码贡献
**_欢迎 Fork 并提交 PR!_**
## LICENSE
MIT