Maison Tutoriel CMS WordPresse Comment implémenter le paiement WeChat dans WordPress

Comment implémenter le paiement WeChat dans WordPress

Jul 15, 2019 pm 02:35 PM

Comment implémenter le paiement WeChat dans WordPress

Pour appeler le paiement WeChat, WeChat fournit le SDK JS pour nous aider à implémenter la fonction d'appel du paiement WeChat dans WeChat. Voici les étapes spécifiques de mise en œuvre,

La première étape consiste à installer les packages requis pour mettre en œuvre le paiement WeChat

Nous utilisons toujours le package Omnipay Wechat Pay pour nous aider La mise en œuvre du paiement WeChat est en fait similaire au précédent mode de paiement par code QR natif, sauf que l'interface utilisée est différente. Vous trouverez ci-dessous les bibliothèques utilisées dans le site Web WeChat que j'ai développé. Inutile de dire que les deux premiers sont évidemment la bibliothèque Omnipay utilisée pour le paiement WeChat. WordPress Dispatcher est un système de routeur WordPress utilisé pour implémenter des URL personnalisées et Valitron est principalement utilisé pour vérifier les données soumises par les utilisateurs.

"require": {
    "omnipay/omnipay": "~2.0",
    "lokielse/omnipay-wechatpay": "^1.0",
    "thefold/wordpress-dispatcher": "^1.0",
    "vlucas/valitron": "^1.2",
    },
Copier après la connexion

Exécutez la commande composer install. Une fois l'installation terminée, introduisez le fichier à chargement automatique dans le thème ou le plug-in.

require_once( get_template_directory() . '/vendor/autoload.php' );
Copier après la connexion

Implémentation frontale : configurez le SDK WeChat JS et implémentez le paiement WeChat

Le jssdk.php ici est fourni par le responsable WeChat et est utilisé pour initialiser le SDK WeChat JS Forfait signature disponible. Introduisez ce fichier sur la page où le paiement WeChat doit être implémenté, puis initialisez la classe JSSDK.

require_once( get_template_directory() . '/inc/jssdk.php' );
$jssdk       = new JSSDK( "xxxxx", "xxxxxxxxxxxxxxxx" );
$signPackage = $jssdk->GetSignPackage();
Copier après la connexion

Initialisez le SDK WeChat JS, appelez le mode de paiement WeChat pour implémenter le paiement WeChat

Tout d'abord, assurez-vous que le fichier JavaScript du SDK WeChat JS est dans l'en-tête du page : jweixin-1.0 .0.js. Sur la base du $signPackage obtenu ci-dessus, nous avons effectué les opérations suivantes dans le code ci-dessous.

Utilisez wx.config pour initialiser js sdk et utilisez wx.ready pour détecter si js sdk est initialisé avec succès. Si l'initialisation réussit, nous pouvons utiliser l'interface fournie par WeChat js sdk pour fonctionner. Lorsque vous cliquez sur le bouton de paiement, une requête Ajax est envoyée au serveur pour obtenir la commande WeChat, puis wx.chooseWXPay est utilisé pour lancer le paiement WeChat, qui est l'interface contextuelle que nous voyons dans WeChat pour saisir le mot de passe WeChat.

jQuery(document).ready(function ($) {
    
   // 配置 js sdk
   wx.config({
      debug: false,
      appId: &#39;<?php echo $signPackage[ "appId" ];?>&#39;,
      timestamp: <?php echo $signPackage[ "timestamp" ];?>,
      nonceStr: &#39;<?php echo $signPackage[ "nonceStr" ];?>&#39;,
      signature: &#39;<?php echo $signPackage[ "signature" ];?>&#39;,
      jsApiList: [&#39;chooseWXPay&#39;]
      // 这里的 jsApiList 需要什么就填写什么
   });

   // 一定要检查 js sdk 是否已经准备好了
   wx.ready(function () {
      $("#topay").click(function () {
         $.ajax({
            url: &#39;/order/&#39;,
            type: &#39;POST&#39;,
            dataType: &#39;json&#39;,
            data: $("#wepay").serialize(),
            success: function (order) {
               var params = {
                  &#39;timestamp&#39;: order.timeStamp,
                  &#39;nonceStr&#39;: order.nonceStr,
                  &#39;package&#39;: order.package,
                  &#39;signType&#39;: order.signType,
                  &#39;paySign&#39;: order.paySign               };
               wx.chooseWXPay(params);
            },
            error: function (order) {
               c-alert(order.message);
            }
         });
         return false;
      });
   });});
Copier après la connexion

La fenêtre de paiement clignote et disparaît dans les situations suivantes

Lorsque nous testons le paiement WeChat sur WeChat, nous constatons souvent que la fenêtre de paiement WeChat clignote et disparaît, vous. Je ne vois pas l'interface de saisie du mot de passe de paiement. Les raisons possibles sont les suivantes, veuillez vérifier attentivement.

jssdk n'est pas configuré. Vérifiez que les données renvoyées par wx.config et wx.readyAjax dans le code ci-dessus sont incorrectes. Vérifiez que les données de retour de la requête Ajax ont un paramètre de nom de domaine incorrect. Le nom de domaine de test est défini dans l'arrière-plan de gestion WeChat. Ajouté au nom de domaine sécurisé

Implémentation back-end : vérifier et envoyer les données de commande

L'implémentation back-end. est très simple, il s'agit de recevoir les données soumises par Ajax ci-dessus, puis de traiter WeChat Pay les données Json requises et d'enregistrer la commande dans la base de données du site pour des requêtes ultérieures et des rappels de notification ultérieurs.

// 获取微信支付网关的函数function get_wechat_gateway() {
   $gateway = Omnipay::create( &#39;WechatPay_Js&#39; );
   $gateway->setAppId( &#39; xxxxxxxx&#39; );
   $gateway->setMchId( &#39;xxxxxxxx&#39; );
   $gateway->setApiKey( &#39;xxxxxxxx&#39; ); //注意这里的 ApiKey 是我们在微信商户后台设置的一个32位的随机字符串,和微信公众号里面的 App Secrit 不是一回事。

   return $gateway;}/**
 * 处理订单信息, 跳转到微信支付
 */new Dispatch( [

   &#39;wepay/order&#39; => function ( $request ) {

      // 检查用户提交的数据是否有错,如果有错误,返回错误信息
      $v = new Validator( $_POST );
      $v->rule( &#39;required&#39;, [ &#39;count&#39;, &#39;buyer_name&#39;, &#39;buyer_phone&#39;, &#39;buyer_address&#39; ] );

      if ( ! $v->validate() ) {
         $msg = [
            &#39;success&#39; => &#39;0&#39;,
            &#39;message&#39; => &#39;下单失败, 请检查所有必填项。&#39;,
         ];
         wp_send_json( $msg );
      }

      $user = wp_get_current_user();
      $req = Request::createFromGlobals();
      $pid     = $req->get( &#39;pid&#39; );
      $count   = $req->get( &#39;count&#39; );
      $open_id = $req->cookies->get( &#39;open_id&#39; );
      $prod  = get_post( $pid );
      $price = get_post_meta( $pid, &#39;_prod_price&#39;, true );
      $total_fee = $price * $count * 100;
      $tn        = date( &#39;YmdHis&#39; ) . mt_rand( 1000, 9999 );

      // 在实际开发过程中,我们需要把用户提交的订单数据保存到数据库一份
      // 订单参数
      $order = [
         &#39;body&#39;             => $prod->post_title&#39;,
         &#39;out_trade_no&#39;     => $tn,
         &#39;total_fee&#39;        => $total_fee,
         &#39;spbill_create_ip&#39; => wizhi_get_real_ip(),
         &#39;fee_type&#39;         => &#39;CNY&#39;,
         &#39;open_id&#39;          => $open_id,
      ];
      // 发送支付请求到微信并获取返回信息
      $gateway = get_wechat_gateway();
      $gateway->setNotifyUrl( &#39;https://www.wpzhiku.com/order/return&#39; );
      $response = $gateway->purchase( $order )->send();
      $wechat_return = $response->getJsOrderData();

      wp_send_json( $wechat_return );

   },] );
Copier après la connexion

Acceptez la notification de réussite du paiement WeChat pour terminer automatiquement la commande ou recharger automatiquement

Une fois le paiement terminé, WeChat renverra une notification de réussite du paiement à l'URL de notification que nous avons fournie. au Contenu restitué, effectuer des opérations telles que la finalisation automatique des commandes ou la recharge automatique. Il y a deux points à noter ici.

L'URL de notification doit être accessible. Si elle n'est pas accessible, WeChat n'enverra pas la notification. Il doit être dans le même répertoire que l'URL de paiement

Les données du SDK et de l'interface fournies par WeChat sont très non standard. Lors de son utilisation, vous devez faire attention à la majuscule dans le code. problème, contactez soigneusement l'équipe de développement fournie par WeChat. Selon la documentation, si le langage ou le cadre de développement que vous utilisez fournit des bibliothèques utilisées pour le développement de WeChat, il est recommandé d'utiliser ces bibliothèques directement pour le développement. Ces bibliothèques peuvent nous aider à contourner les différentes. les grandes et petites fosses que WeChat a creusées pour nous réduisent les difficultés de débogage et accélèrent le développement.

Pour plus d'articles techniques liés à WordPress, veuillez visiter la colonne tutoriel WordPress pour apprendre !

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.

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)

WordPress est-il facile pour les débutants? WordPress est-il facile pour les débutants? Apr 03, 2025 am 12:02 AM

WordPress est facile pour les débutants de commencer. 1. Après se connecter à l'arrière-plan, l'interface utilisateur est intuitive et le tableau de bord simple fournit tous les liens de fonction nécessaires. 2. Les opérations de base incluent la création et l'édition de contenu. L'éditeur WYSIWYG simplifie la création de contenu. 3. Les débutants peuvent étendre les fonctions du site Web via des plug-ins et des thèmes, et la courbe d'apprentissage existe mais peut être maîtrisée par la pratique.

À quoi sert WordPress? À quoi sert WordPress? Apr 07, 2025 am 12:06 AM

WordPressisGoodForvirontuallyAnyWebprojectDuetOtsSversatityAsacms.itexcelsin: 1) une convivialité, permettant à la manière

Puis-je apprendre WordPress en 3 jours? Puis-je apprendre WordPress en 3 jours? Apr 09, 2025 am 12:16 AM

Peut apprendre WordPress dans les trois jours. 1. Master les connaissances de base, telles que les thèmes, les plug-ins, etc. 2. Comprenez les fonctions principales, y compris les principes d'installation et de travail. 3. Apprenez l'utilisation de base et avancée à travers des exemples. 4. Comprendre les techniques de débogage et les suggestions d'optimisation des performances.

Combien coûte WordPress? Combien coûte WordPress? Apr 05, 2025 am 12:13 AM

WordPress lui-même est gratuit, mais il en coûte supplémentaire à utiliser: 1. WordPress.com propose un package allant du gratuit à payant, avec des prix allant de quelques dollars par mois à des dizaines de dollars; 2. WordPress.org nécessite l'achat d'un nom de domaine (10-20 dollars américains par an) et des services d'hébergement (5-50 dollars américains par mois); 3. La plupart des plug-ins sont gratuits, et le prix payant se situe entre des dizaines et des centaines de dollars; En choisissant le bon service d'hébergement, en utilisant des plug-ins et des thèmes raisonnablement, et en maintenant et en maintenant régulièrement, le coût de WordPress peut être efficacement contrôlé et optimisé.

Dois-je utiliser Wix ou WordPress? Dois-je utiliser Wix ou WordPress? Apr 06, 2025 am 12:11 AM

Wix convient aux utilisateurs qui n'ont aucune expérience de programmation, et WordPress convient aux utilisateurs qui souhaitent plus de capacités de contrôle et d'extension. 1) Wix fournit des éditeurs de glisser-déposer et des modèles riches, ce qui facilite la création d'un site Web rapidement. 2) En tant que CMS open source, WordPress possède un énorme écosystème communautaire et plug-in, soutenant la personnalisation et l'expansion approfondies.

WordPress est-il toujours gratuit? WordPress est-il toujours gratuit? Apr 04, 2025 am 12:06 AM

La version principale de WordPress est gratuite, mais d'autres frais peuvent être engagés pendant l'utilisation. 1. Les noms de domaine et les services d'hébergement nécessitent un paiement. 2. Des thèmes et des plug-ins avancés peuvent être facturés. 3. Les services professionnels et les fonctionnalités avancées peuvent être facturés.

Comment commencer un blog WordPress: un guide étape par étape pour les débutants Comment commencer un blog WordPress: un guide étape par étape pour les débutants Apr 17, 2025 am 08:25 AM

Les blogs sont la plate-forme idéale pour que les gens expriment leurs opinions, opinions et opinions en ligne. De nombreux débutants sont impatients de créer leur propre site Web, mais hésitent à s'inquiéter des obstacles techniques ou des problèmes de coûts. Cependant, comme la plate-forme continue d'évoluer pour répondre aux capacités et aux besoins des débutants, il commence maintenant à devenir plus facile que jamais. Cet article vous guidera étape par étape comment créer un blog WordPress, de la sélection de thème à l'utilisation des plugins pour améliorer la sécurité et les performances, vous aidant facilement à créer votre propre site Web. Choisissez un sujet et une direction de blog Avant d'acheter un nom de domaine ou d'enregistrer un hôte, il est préférable d'identifier les sujets que vous prévoyez de couvrir. Les sites Web personnels peuvent tourner autour des voyages, de la cuisine, des critiques de produits, de la musique ou de tout passe-temps qui suscite vos intérêts. Se concentrer sur les domaines qui vous intéressent vraiment peuvent encourager l'écriture continue

Pourquoi quelqu'un utiliserait-il WordPress? Pourquoi quelqu'un utiliserait-il WordPress? Apr 02, 2025 pm 02:57 PM

Les gens choisissent d'utiliser WordPress en raison de son pouvoir et de sa flexibilité. 1) WordPress est un CMS open source avec une forte facilité d'utilisation et une évolutivité, adaptée à divers besoins en site Web. 2) Il a des thèmes et des plugins riches, un énorme écosystème et un fort soutien communautaire. 3) Le principe de travail de WordPress est basé sur des thèmes, des plug-ins et des fonctions de base, et utilise PHP et MySQL pour traiter les données, et prend en charge l'optimisation des performances.

See all articles