// 企业微信配置
define('WECOM_CORP_ID', '');//企业ID
define('WECOM_SECRET', '');//Secret
define('WECOM_AGENT_ID', 1000003);//AgentId
define('WECOM_NOTIFY_USERIDS', [
['name' => 'Userc', 'id' => 1],
['name' => 'UserA', 'id' => 2],
['name' => 'UserB', 'id' => 3],
]);
// 获取企业微信 access_token
function get_wecom_access_token($corp_id, $secret) {
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corp_id}&corpsecret={$secret}";
$response = wp_remote_get($url);
if (is_wp_error($response)) {
write_wecom_log("wp_remote_get 错误:" . $response->get_error_message());
return false;
}
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body['access_token'] ?? false;
}
// 发送企业微信卡片消息
function send_wecom_message_to_user($userid, $title, $content, $agentid, $access_token) {
$url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={$access_token}";
$data = array(
"touser" => $userid,
"msgtype" => "news",
"agentid" => $agentid,
"news" => array(
"articles" => array(
array(
"title" => $title,
"description" => $content,
"url" => "https://www.mnsin.com/message/news",
"picurl" => "https://www.mnsin.com/wp-content/uploads/2025/06/zy.png",
),
),
),
);
$response = wp_remote_post($url, array(
'headers' => array('Content-Type' => 'application/json'),
'body' => json_encode($data, JSON_UNESCAPED_UNICODE),
'timeout' => 5,
));
if (is_wp_error($response)) {
write_wecom_log("发送卡片消息失败,wp_remote_post 错误:" . $response->get_error_message());
return;
}
$res = json_decode(wp_remote_retrieve_body($response), true);
if (!empty($res['errcode']) && $res['errcode'] !== 0) {
write_wecom_log("企业微信接口返回错误:{$res['errmsg']}");
}
}
// 代理函数,调用私信接收并触发钩子
add_action('zib_add_message', 'notify_wecom_on_private_message', 10, 1);
function notify_wecom_on_private_message($args) {
if (empty($args['receive_user'])) return;
$receiver_id = intval($args['receive_user']);
$matched_users = array_filter(WECOM_NOTIFY_USERIDS, fn($u) => $u['id'] === $receiver_id);
if (empty($matched_users)) return;
$sender_user = get_user_by('id', $args['send_user']);
$sender_name = $sender_user ? $sender_user->display_name : '未知用户';
$title = "
最近有用户私信我不能及时查看,我因为使用nas用了内网穿透,让通知ip变化。所有我想站点私信也能即时通值我。
效果图


食用教程
注册企业微信

自己填写好,注册好之后就完成了一半了,然后登录,登录后找到我的企业,最底下的企业id复制一下就等下有用!


创建应用
再找到底部导航栏的应用管理,然后滑动底部,创建应用,(不细说了很简单填写下就行了)


然后设置可见范围和复制AgentId并且查看Secret 记下来,等下要用
然后继续滑到底部配置下这两个

然后我们还得找到对应的人拿到他的企业微信账号ID
还是在首页的顶部通讯录里面找到对应的用户,点击编辑就能看到账号了

最近将刚保存的东西放到代码里面即可

配置基本完成了,接下来就是代码了
代码部署
// 企业微信配置
define('WECOM_CORP_ID', '');//企业ID
define('WECOM_SECRET', '');//Secret
define('WECOM_AGENT_ID', 1000003);//AgentId
define('WECOM_NOTIFY_USERIDS', [
['name' => 'Userc', 'id' => 1],
['name' => 'UserA', 'id' => 2],
['name' => 'UserB', 'id' => 3],
]);
// 获取企业微信 access_token
function get_wecom_access_token($corp_id, $secret) {
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corp_id}&corpsecret={$secret}";
$response = wp_remote_get($url);
if (is_wp_error($response)) {
write_wecom_log("wp_remote_get 错误:" . $response->get_error_message());
return false;
}
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body['access_token'] ?? false;
}
// 发送企业微信卡片消息
function send_wecom_message_to_user($userid, $title, $content, $agentid, $access_token) {
$url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={$access_token}";
$data = array(
"touser" => $userid,
"msgtype" => "news",
"agentid" => $agentid,
"news" => array(
"articles" => array(
array(
"title" => $title,
"description" => $content,
"url" => "https://www.mnsin.com/message/news",
"picurl" => "https://www.mnsin.com/wp-content/uploads/2025/06/zy.png",
),
),
),
);
$response = wp_remote_post($url, array(
'headers' => array('Content-Type' => 'application/json'),
'body' => json_encode($data, JSON_UNESCAPED_UNICODE),
'timeout' => 5,
));
if (is_wp_error($response)) {
write_wecom_log("发送卡片消息失败,wp_remote_post 错误:" . $response->get_error_message());
return;
}
$res = json_decode(wp_remote_retrieve_body($response), true);
if (!empty($res['errcode']) && $res['errcode'] !== 0) {
write_wecom_log("企业微信接口返回错误:{$res['errmsg']}");
}
}
// 代理函数,调用私信接收并触发钩子
add_action('zib_add_message', 'notify_wecom_on_private_message', 10, 1);
function notify_wecom_on_private_message($args) {
if (empty($args['receive_user'])) return;
$receiver_id = intval($args['receive_user']);
$matched_users = array_filter(WECOM_NOTIFY_USERIDS, fn($u) => $u['id'] === $receiver_id);
if (empty($matched_users)) return;
$sender_user = get_user_by('id', $args['send_user']);
$sender_name = $sender_user ? $sender_user->display_name : '未知用户';
$title = "
仅供学习研究使用,请在下载后24小时内删除! Ventura
付费阅读© 版权声明
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「WWW.MNSIN.COM」发布的内容若侵犯到您的权益,请联系站长邮箱:76853342@qq.com 进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。
THE END
喜欢就支持一下吧
如何下载资源?
您可以通过搜索或浏览分类列表来寻觅您期望下载的资源。随后,点击资源介绍页右侧的下载链接按钮,依据提示信息进行操作即可。
是否需要充值才能下载?
大部分资源可积分免费下载,部分资源须付费才能下载。
下载的资源是否有版权?
本网站提供的下载资源均为网络搜集,仅供个人学习和交流使用。对于版权问题,请用户自行判断并承担相应责任。
暂无更新记录
相关推荐
暂无评论内容