首先我开发的小程序是一个员工积分系统,分为员工端、管理端。员工端发布的任务 要求推送到对应员工。以下贴一下大概流程代码
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);
}
另外还有微信相关配置信息引入
本文介绍了如何开发一个员工积分系统的小程序,包括员工端和管理端。系统能将任务推送到对应员工,实现了消息通知功能。通过调用微信小程序API,获取用户openid并发送订阅消息,确保每个员工都能接收到任务更新。代码中涉及了数据库查询、模板消息构造及发送等关键步骤。
5675





