Maison développement back-end tutoriel php Comment utiliser PHP pour le développement et l'intégration d'applications WeChat

Comment utiliser PHP pour le développement et l'intégration d'applications WeChat

Aug 03, 2023 pm 10:40 PM
php微信开发 应用集成

Titre : Comment utiliser PHP pour le développement et l'intégration d'applications WeChat

Introduction :
Avec le développement rapide de l'Internet mobile, WeChat est devenu un élément important de la vie quotidienne des gens. Grâce au développement des comptes publics WeChat, nous pouvons réaliser des fonctions telles que l'interaction avec les utilisateurs, la transmission d'informations et le paiement. Cet article expliquera comment utiliser PHP pour le développement et l'intégration d'applications WeChat afin d'aider les lecteurs à démarrer rapidement.

1. Créer un compte public WeChat
Tout d'abord, nous devons avoir un compte public WeChat, qui peut être appliqué via la plateforme publique WeChat. Une fois l'application réussie, nous obtiendrons un AppID et un AppSecret pour les travaux de développement et d'intégration ultérieurs.

2. Préparation de l'environnement PHP
Avant de commencer le développement de WeChat, nous devons nous assurer que l'environnement PHP a été configuré sur le serveur. Nous pouvons confirmer si l'environnement PHP est normal grâce à la commande suivante :

php -v
Copier après la connexion

Si les informations de version PHP peuvent s'afficher correctement, cela signifie que l'environnement PHP est prêt.

3. Vérification de la demande WeChat
Avant d'interagir avec le compte officiel WeChat, nous devons d'abord vérifier la demande WeChat. Les étapes de vérification spécifiques sont les suivantes :

  1. Recevoir la demande
    Nous utilisons la variable globale $_GET de PHP pour recevoir les paramètres de la demande de WeChat. Le code spécifique est le suivant : $_GET全局变量来接收来自微信的请求参数。具体的代码如下:
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$echostr = $_GET['echostr'];

// 此处可以进行其他业务逻辑的处理

echo $echostr;
Copier après la connexion
  1. 验证签名
    将接收到的$timestamp$nonceAppToken进行字典排序,然后使用SHA1算法生成签名,与微信传来的$signature进行比对,判断请求的合法性:
$token = 'YourAppToken'; // 替换为你的AppToken

$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);

if ($tmpStr == $signature) {
    // 验证通过,返回true
    return true;
} else {
    // 验证失败,返回false
    return false;
}
Copier après la connexion

四、微信消息交互
在完成请求验证之后,我们可以开始进行微信公众号的消息交互。具体的代码示例如下:

  1. 接收消息
    我们使用PHP的$GLOBALS['HTTP_RAW_POST_DATA']
  2. $postData = $GLOBALS['HTTP_RAW_POST_DATA'];
    
    if (!empty($postData)) {
        $postObj = simplexml_load_string($postData, 'SimpleXMLElement', LIBXML_NOCDATA);
    
        $msgType = $postObj->MsgType;
        $content = $postObj->Content;
    
        // 在这里可以根据不同的消息类型进行相应的逻辑处理
    }
    Copier après la connexion
    Vérifier la signature
  1. Le dictionnaire trie le $timestamp, le $nonce et le AppToken reçus, puis Utilisez l'algorithme SHA1 pour générer une signature et comparez-la avec le $signature envoyé depuis WeChat pour déterminer la légitimité de la demande :
  2. function replyTextMessage($fromUsername, $toUsername, $content) {
        $time = time();
    
        $response = sprintf(
            '<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[text]]></MsgType>
                <Content><![CDATA[%s]]></Content>
            </xml>',
            $toUsername,
            $fromUsername,
            $time,
            $content
        );
    
        echo $response;
    }
    Copier après la connexion
4. Interaction avec le message WeChat

Après avoir terminé la vérification de la demande, nous peut démarrer l'interaction des messages sur les comptes publics WeChat. L'exemple de code spécifique est le suivant :


Recevoir des messages

Nous utilisons la variable globale $GLOBALS['HTTP_RAW_POST_DATA'] de PHP pour recevoir les données du message envoyé par l'utilisateur. Le code est le suivant :
  1. function getPrepayId($outTradeNo, $totalFee, $notifyUrl) {
        $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
        $data = array(
            'appid' => 'YourAppID', // 替换为你的AppID
            'mch_id' => 'YourMchID', // 替换为你的MchID
            'nonce_str' => str_shuffle('abcdefghijklmnopqrstuvwxyz1234567890'),
            'body' => '订单支付',
            'out_trade_no' => $outTradeNo,
            'total_fee' => $totalFee,
            'spbill_create_ip' => $_SERVER['REMOTE_ADDR'],
            'notify_url' => $notifyUrl,
            'trade_type' => 'JSAPI',
            'openid' => 'UserOpenID' // 替换为用户的OpenID
        );
    
        // 计算签名
        ksort($data);
        $string = http_build_query($data) . '&key=YourKey'; // 替换为你的Key
        $data['sign'] = strtoupper(md5($string));
    
        // 发送请求
        $xml = '<xml>';
        foreach ($data as $key => $value) {
            $xml .= sprintf('<%s>%s</%s>', $key, $value, $key);
        }
        $xml .= '</xml>';
    
        $response = file_get_contents($url, false, stream_context_create(array(
            'http' => array(
                'method' => 'POST',
                'header' => 'Content-Type: text/xml',
                'content' => $xml
            )
        )));
    
        // 解析结果
        $responseObj = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
    
        return $responseObj->prepay_id;
    }
    Copier après la connexion

  2. Répondre au message
Selon les besoins, nous pouvons utiliser les données au format XML correspondantes pour répondre au message de l'utilisateur. L'exemple de code est le suivant :
  1. function getPaySign($prepayId, $appId, $timeStamp, $nonceStr) {
        $data = array(
            'appId' => $appId,
            'timeStamp' => $timeStamp,
            'nonceStr' => $nonceStr,
            'package' => 'prepay_id=' . $prepayId,
            'signType' => 'MD5'
        );
    
        // 计算签名
        ksort($data);
        $string = http_build_query($data) . '&key=YourKey'; // 替换为你的Key
        $sign = strtoupper(md5($string));
    
        return $sign;
    }
    Copier après la connexion

    Ce qui précède est un simple processus d'interaction avec les messages WeChat, qui peut être étendu et optimisé en fonction des besoins réels. 5. Intégration du paiement WeChat

    En plus de l'interaction par message, nous pouvons également intégrer le paiement WeChat via PHP. Les étapes spécifiques sont les suivantes :


    Obtenir le prepay_id

    Nous devons envoyer des données XML contenant les informations de commande à l'interface de paiement WeChat pour obtenir le prepay_id. L'exemple de code est le suivant : 🎜🎜rrreee🎜🎜Signature de paiement JSAPI🎜Après avoir obtenu les informations relatives au paiement via prepay_id, nous devons également utiliser ces informations pour effectuer la signature de paiement JSAPI. L'exemple de code est le suivant : 🎜🎜rrreee🎜Grâce au code ci-dessus, nous avons implémenté les fonctions d'interaction de message et d'intégration de paiement du compte officiel WeChat. Les lecteurs peuvent étendre et optimiser en fonction de besoins spécifiques pour obtenir des fonctions plus intéressantes. 🎜🎜Conclusion : 🎜Grâce à l'introduction de cet article, nous avons appris le processus de base d'utilisation de PHP pour le développement et l'intégration d'applications WeChat. J'espère que les lecteurs pourront approfondir leur compréhension du développement de WeChat par la pratique et l'appliquer de manière flexible dans des projets réels. Je vous souhaite à tous plus de succès dans votre parcours de développement WeChat ! 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Expliquez le concept de liaison statique tardive en PHP. Expliquez le concept de liaison statique tardive en PHP. Mar 21, 2025 pm 01:33 PM

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Caractéristiques de sécurité du cadre: protection contre les vulnérabilités. Mar 28, 2025 pm 05:11 PM

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Comment envoyer une demande post contenant des données JSON à l'aide de la bibliothèque Curl de PHP? Apr 01, 2025 pm 03:12 PM

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Frameworks de personnalisation / d'extension: comment ajouter des fonctionnalités personnalisées. Mar 28, 2025 pm 05:12 PM

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.

Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Décrivez les principes solides et comment ils s'appliquent au développement de PHP. Apr 03, 2025 am 12:04 AM

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Comment fonctionne le détournement de session et comment pouvez-vous l'atténuer en PHP? Apr 06, 2025 am 12:02 AM

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

See all articles