Home  >  Article  >  Backend Development  >  How to use PHP to develop the subscription function of public accounts

How to use PHP to develop the subscription function of public accounts

王林
王林Original
2023-09-19 09:19:411176browse

How to use PHP to develop the subscription function of public accounts

How to use PHP to develop the subscription function of public accounts

With the rapid development of the mobile Internet, WeChat public accounts have become an important channel for many companies and individuals to spread information. The subscription function is one of the core functions of the official account. After users follow the official account, they can receive the latest news and push updates from the official account.

This article will introduce how to use PHP to develop the subscription function of public accounts and provide specific code examples.

  1. Get the user's openid

Before developing the subscription function of the public account, you first need to obtain the user's openid. After the user follows the official account, the official account will push the user's information to the developer server. In PHP, the user's openid can be obtained by parsing the received XML data.

The following is a sample code:

<?php
$xml = file_get_contents('php://input');

$data = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

$openid = $data->FromUserName;
  1. Storing user information

After obtaining the user openid, we need to store the user's information in the database , so that subsequent messages can be pushed based on the openid.

Here we can use the MySQL database to store user information. First, you need to create a users table, including fields openid, subscribe_time, etc.

The sample code is as follows:

<?php
$servername = "localhost";
$username = "yourusername";
$password = "yourpassword";
$dbname = "yourdbname";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO users (openid, subscribe_time) VALUES ('$openid', NOW())";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
  1. Send subscription message

When we need to send subscription messages to users, we can use the API provided by the WeChat official account Make the call. In PHP, you can use the curl function to send HTTP requests.

First, we need to obtain the content of the subscription message and encapsulate it into data in XML format. Then, use the curl function to send a POST request to send the XML data to the WeChat server.

The sample code is as follows:

<?php
$access_token = "youraccess_token";
$openid = "useropenid";
$template_id = "yourtemplateid";
$content = "yourcontent";

$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" . $access_token;

$data = array(
    "touser" => $openid,
    "template_id" => $template_id,
    "data" => array(
        "content" => array(
            "value" => $content
        )
    )
);

$data_json = json_encode($data);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_json))
);

$response = curl_exec($ch);

if(curl_errno($ch)){
    echo 'Curl error: ' . curl_error($ch);
}

curl_close($ch);

echo $response;

The above is a specific code example for using PHP to develop the subscription function of a public account. By obtaining the user's openid, storing user information and sending subscription messages, we can implement the subscription function of the public account and push the latest news to users. At the same time, we can also further improve the implementation of functions according to specific needs.

The above is the detailed content of How to use PHP to develop the subscription function of public accounts. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn