Maison >développement back-end >tutoriel php >Méthode d'implémentation PHP liée au paiement du mini-programme WeChat

Méthode d'implémentation PHP liée au paiement du mini-programme WeChat

WBOY
WBOYoriginal
2023-05-31 21:10:342895parcourir

Avec l'utilisation généralisée des mini-programmes WeChat, le paiement par mini-programme WeChat est devenu un moyen de paiement nécessaire pour de plus en plus de commerçants. Afin de faciliter l'accès des commerçants à la fonction de paiement de l'applet WeChat, cet article présentera une méthode d'implémentation basée sur PHP.

1. Préparation
Avant d'accéder au paiement du mini programme WeChat, vous devez préparer les étapes suivantes :

1.1 Obtenir le numéro de commerçant et l'API du paiement WeChat La clé #🎜 🎜Le numéro de commerçant est l'identifiant unique appliqué par le commerçant sur la plateforme de paiement WeChat. La clé API est la clé de paiement générée lors de la demande du commerçant et est utilisée pour la vérification de la signature.
1.2 Configurer le certificat de paiement WeChat
Le commerçant doit placer le certificat de paiement WeChat dans le répertoire de sécurité du serveur et fournir le chemin du certificat.
1.3 Créer un serveur HTTPS
WeChat Pay exige que les commerçants utilisent le protocole HTTPS pour la transmission des données, un certificat HTTPS doit donc être configuré sur le serveur.

2. Processus de paiement du mini-programme WeChat

Le processus de paiement du mini-programme WeChat comprend généralement les étapes suivantes :

2.1 Les utilisateurs passent des commandes

Les utilisateurs passent des commandes via le mini programme Le programme sélectionne les produits et passe une commande, et le mini programme envoie les informations de commande au serveur marchand pour traitement.
2.2 Commande du serveur marchand
Après avoir reçu la demande de commande de l'utilisateur, le serveur marchand génère une commande prépayée et la renvoie au mini programme.
2.3 Le mini programme active le paiement
Après réception de l'ordre de prépaiement, le mini programme active la fonction de paiement via l'API de paiement WeChat.
2.4 Notification du résultat du paiement
Une fois le paiement terminé, le serveur WeChat informera le serveur marchand du résultat du paiement et le serveur marchand enverra une réponse au serveur WeChat après avoir traité la commande.

3.Méthode d'implémentation PHP

Ce qui suit est la méthode d'implémentation de paiement de l'applet WeChat basée sur PHP :

3.1 Commandes du serveur marchand

Le serveur marchand reçoit après l'utilisateur passe une demande de commande, il doit générer une commande de prépaiement et renvoyer les informations de commande de prépaiement au mini-programme. Voici l'implémentation du code PHP pour passer une commande :

<?php
public function unifiedOrder($data)
{
    $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder';
    $data['appid'] = $this->appId;
    $data['mch_id'] = $this->mchId;
    $data['nonce_str'] = $this->getNonceStr();
    $data['notify_url'] = $this->notifyUrl;
    $data['trade_type'] = 'JSAPI';
    $data['openid'] = $openid;
    $data['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'];
    $data['sign'] = $this->sign($data);

    $xml = $this->arrayToXml($data);
    $response = $this->postXmlCurl($xml, $url);
    $result = $this->xmlToArray($response);
    return $result;
}

3.2 Le mini-programme appelle le paiement

Une fois que le mini-programme a reçu la commande de prépaiement, il doit appeler l'API de paiement WeChat pour paiement. Voici l'implémentation du code PHP de l'appel de paiement :

<?php
public function getPayParams($prepayId)
{
    $data['appId'] = $this->appId;
    $data['timeStamp'] = time();
    $data['nonceStr'] = $this->getNonceStr();
    $data['package'] = 'prepay_id=' . $prepayId;
    $data['signType'] = 'MD5';
    $data['paySign'] = $this->sign($data);

    return $data;
}

3.3 Notification du résultat du paiement

Une fois le paiement WeChat terminé, le serveur WeChat informera le serveur marchand du résultat du paiement. Voici l'implémentation du code PHP de la notification du résultat du paiement :

<?php
public function notify()
{
    $xml = file_get_contents("php://input");
    $data = $this->xmlToArray($xml);

    if ($this->checkSign($data)) {
        //处理支付结果
        $orderNo = $data['out_trade_no'];
        $transactionId = $data['transaction_id'];
        //返回成功信息
        return $this->arrayToXml(['return_code' => 'SUCCESS', 'return_msg' => 'OK']);
    } else {
        return $this->arrayToXml(['return_code' => 'FAIL', 'return_msg' => '签名验证失败']);
    }
}

4 Résumé

Grâce à la mise en œuvre des étapes ci-dessus, nous pouvons facilement accéder à la fonction de paiement du mini programme WeChat pour offrir plus de commodité. pour les utilisateurs du mini programme, mode de paiement. Il convient de noter que la sécurité et l’exactitude des données doivent être garanties pendant le processus de paiement, tandis que les risques potentiels liés au paiement doivent être évités.

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:
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