程序员的知识教程库

网站首页 > 教程分享 正文

PHP 推送微信小程序订阅消息(小程序订阅消息跳转)

henian88 2025-03-18 22:31:05 教程分享 6 ℃ 0 评论

1. 前置准备

  1. 获取小程序 Access Token
  2. 调用微信接口 https://api.weixin.qq.com/cgi-bin/token,获取小程序 Access Token。
  3. 需要提供 appid 和 secret。
  4. 配置订阅消息模板
  5. 在微信小程序后台 > 订阅消息中,申请订阅模板,获取模板 ID(template_id)。
  6. 用户授权订阅
  7. 在小程序中通过 wx.requestSubscribeMessage 接口,让用户授权订阅消息。

2. 推送订阅消息流程

  1. 获取 Access Token。
  2. 调用微信订阅消息接口 https://api.weixin.qq.com/cgi-bin/message/subscribe/send,发送订阅消息。

3. PHP 实现代码

以下是完整的 PHP 示例代码,包含详细注释。

代码实现

 $toUser, // 用户 OpenID
        'template_id' => $templateId, // 模板 ID
        'page' => $page, // 跳转页面路径
        'data' => $data, // 模板数据
    ];

    // 发送 POST 请求
    $options = [
        'http' => [
            'header' => "Content-type: application/json\r\n",
            'method' => 'POST',
            'content' => json_encode($postData),
        ],
    ];
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    $result = json_decode($response, true); // 解析 JSON 响应

    if ($result['errcode'] == 0) {
        echo "Message sent successfully!";
    } else {
        die("Failed to send message: " . $result['errmsg']); // 错误处理
    }
}

// 示例:推送订阅消息
$accessToken = getAccessToken(); // 获取 Access Token
$toUser = "user_openid"; // 用户 OpenID
$templateId = "your_template_id"; // 模板 ID
$data = [ // 模板数据
    "thing1" => ["value" => "测试标题"], // 对应模板中的字段
    "date2" => ["value" => "2023-10-01"], // 根据模板字段配置
    "thing3" => ["value" => "测试内容"],
];

sendSubscribeMessage($accessToken, $toUser, $templateId, $data);
?>

4. 详细说明

1. 获取 Access Token

  • 调用 https://api.weixin.qq.com/cgi-bin/token 接口,传入 appid 和 secret。
  • 返回的 access_token 用于后续接口调用。

2. 发送订阅消息

  • 调用 https://api.weixin.qq.com/cgi-bin/message/subscribe/send 接口,传入以下参数:touser: 用户 OpenID。template_id: 订阅消息模板 ID。page: 跳转页面路径(可选)。data: 模板数据,字段需与模板中的字段对应。

3. 错误处理

  • 如果 API 返回的 errcode 不为 0,表示调用失败,需根据 errmsg 进行排查。

5. 模板数据示例

假设模板 ID 为 1234567890,模板内容为:

标题:{{thing1.DATA}}
日期:{{date2.DATA}}
内容:{{thing3.DATA}}

对应的 data 数据为:

$data = [
    "thing1" => ["value" => "测试标题"],
    "date2" => ["value" => "2023-10-01"],
    "thing3" => ["value" => "测试内容"],
];

6. 注意事项

  1. 用户授权:发送订阅消息前,用户必须在小程序中授权订阅消息。
  2. 模板字段:模板数据字段需与小程序后台的模板字段一致。
  3. Access Token 缓存:Access Token 有效期为 2 小时,建议缓存并复用。

通过以上步骤和代码,你可以在 PHP 中实现微信小程序订阅消息的推送功能。如果有其他问题,欢迎随时提问!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表