首先我开发的小程序是一个员工积分系统,分为员工端、管理端。员工端发布的任务 要求推送到对应员工。以下贴一下大概流程代码
1、
$this->messagePush($data['task_title'],$data['integral'],$data['created_at']);
以上是要推送的任务信息,接下来我们看messagePush方法。
2、
public static function messagePush($thing1,$thing2,$thing3) { // 获取活动内容 包含订阅消息需要的字段 // 获取允许发送消息的用户列表 // 发送消息 $user=UserInfo::where('status',1)->distinct('open_id')->get(['open_id']); foreach ($user as $v){ if($v['open_id']){ $data = [ 'template_id' => 'dddddddddddddddd', // 所需下发的订阅模板id 'touser' => $v['open_id'], // 接收者(用户)的 openid 'page' => 'pages/login/index', // 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。 'data' => [ // 模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } } 'thing1' => [ 'value' => $thing1, ], 'thing2' => [ 'value' => $thing2, ], 'thing3' => [ 'value' => $thing3, ], ], ]; MNProgramContent()->subscribe_message->send($data); } } }
3、在我们的app下的helpers文件中定义MNProgramContent助手函数
/** * 小程序实例 * @return \EasyWeChat\MiniProgram\Application */ function MNProgramContent() { $config = [ 'app_id' => env('WECHAT_CUSTOMER_APPID'), 'secret' => env('WECHAT_CUSTOMER_SECRET'), 'response_type' => 'array', 'log' => [ 'level' => 'debug', 'file' => __DIR__ . '/wechat.log', ], ]; return \EasyWeChat\Factory::miniProgram($config); }
另外还有微信相关配置信息引入