Dans cette série, nous allons envisager de construire un système de paiement Bitcoin dans notre installation d’OpenCart. Avant de commencer, je vous recommande de vous exercer au développement de base des modules OpenCart si vous n'êtes pas familiarisé avec la construction de vos propres modules..
Une fois cela fait, vous devriez avoir suffisamment de connaissances pour continuer à développer des modules plus avancés. Dans cette série, c'est exactement ce que nous visons.
Avant de commencer à créer l'extension, configurez OpenCart sur votre ordinateur local. Ensuite, téléchargez la bibliothèque d'API BitPay à partir de la pièce jointe de l'article et placez-la dans la racine de votre magasin, comme indiqué dans la capture d'écran suivante:
Pour configurer et configurer notre module de paiement Bitcoin, nous avons besoin d'une interface d'administration. Pour ce faire, nous suivrons le modèle MVC pour l'implémentation de notre panneau d'administration.
admin / contrôleur / paiement
. bitpay.php
. la classe ControllerPaymentBitpay étend Controller
. indice
une fonction. $ this-> language-> load ('paiement / bitpay'); $ this-> load-> model ('localisation / statut_ordre'); // chargement du modèle pour obtenir les statuts de commande du système
Pour définir le titre de la page du document, nous utilisons le code suivant:
$ this-> document-> setTitle ($ this-> language-> get ('text_title')); // Définition du titre de l'en-tête du document
/ * Assignation et analyse des valeurs from * / $ this-> data ['heading_title'] = $ this-> language-> get ('text_title'); $ this-> data ['text_enabled'] = $ this-> language-> get ('text_enabled'); // récupère le texte de langue par défaut $ this-> data ['text_disabled'] = $ this-> language-> get ('text_disabled'); // récupère le texte de langue par défaut $ this-> data ['text_high'] = $ this-> language-> get ('text_high'); $ this-> data ['text_medium'] = $ this-> language-> get ('text_medium'); $ this-> data ['text_low'] = $ this-> language-> get ('text_low'); $ this-> data ['api_key'] = $ this-> language-> get ('text_api_key'); $ this-> data ['installed_status'] = $ this-> language-> get ('text_confirmed_status'); $ this-> data ['invalid_status'] = $ this-> language-> get ('text_invalid_status'); $ this-> data ['transaction_speed'] = $ this-> language-> get ('text_transaction_speed'); $ this-> data ['test_mode'] = $ this-> language-> get ('text_test_mode'); $ this-> data ['status'] = $ this-> language-> get ('text_status'); $ this-> data ['sort_order'] = $ this-> language-> get ('text_sort_order'); $ this-> data ['button_save'] = $ this-> language-> get ('button_save'); // récupère le texte de langue par défaut $ this-> data ['button_cancel'] = $ this-> language-> get ('button_cancel'); // récupère le texte de langue par défaut $ this-> data ['tab_general'] = $ this-> language-> get ('tab_general'); // récupère le texte en langue par défaut / * Assignation de texte de fin * /
Le code suivant permet d'affecter des déclencheurs Action / Save & Cancel URL:
$ this-> data ['action'] = HTTPS_SERVER. 'index.php? route = payment /'.$ this-> payment_module_name.' & token = '. $ this-> session-> data ['token']; $ this-> data ['cancel'] = HTTPS_SERVER. 'index.php? route = extension / payment & token ='. $ this-> session-> data ['token'];
Le code suivant obtient tous les statuts de commande du modèle de localisation (qui est pré-codé dans OpenCart) et les analyse pour la vue:
$ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Notre processus d'épargne viendra dans la section modèle. Cependant, le code suivant est chargé d'extraire ces données de module (le cas échéant) et de les analyser pour les afficher..
/ * Récupération des valeurs de champ enregistrées dans la base de données * / $ this-> data ['bitpay_api_key'] = $ this-> config-> get ('bitpay_api_key'); $ this-> data ['bitpay_confirmed_status_id'] = $ this-> config-> get ('bitpay_confirmed_status_id'); $ this-> data ['bitpay_invalid_status_id'] = $ this-> config-> get ('bitpay_invalid_status_id'); $ this-> data ['bitpay_transaction_speed'] = $ this-> config-> get ('bitpay_transaction_speed'); $ this-> data ['bitpay_test_mode'] = $ this-> config-> get ('bitpay_test_mode'); $ this-> data ['bitpay_status'] = $ this-> config-> get ('bitpay_status'); $ this-> data ['bitpay_sort_order'] = $ this-> config-> get ('bitpay_sort_order'); / * Fin des champs de la base de données * /
Le code suivant ajoute des enfants à notre modèle de vue et le rend pour la vue utilisateur..
$ this-> template = 'payment / bitpay.tpl'; // Template Assigning $ this-> children = array ('common / header', 'common / footer'); // Fournit la liste des modèles de modèle $ this-> response-> setOutput ($ this-> render (TRUE), $ this-> config-> get ('config_compression')); // Rendu de la sortie du modèle
admin / view / template / payment
. bitpay.tpl
. Pour charger l'en-tête que nous avons transmis en tant qu'enfant à 1,6:
Warning Block est une section div qui affiche les avertissements de l'utilisateur, le cas échéant:
Le code HTML complet ressemblera à quelque chose comme ci-dessous:
'; ">
À ce stade, nous en avons terminé avec la mise en page du module. Il est maintenant temps d’enregistrer les données du module dans la base de données. Nous allons donc mettre un petit code à l'intérieur du contrôleur à cet effet.
Dans la fonction par défaut de votre contrôleur, placez un code de sérialisation comme indiqué ci-dessous:
if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && ($ this-> validate ())) // Vérifie si les données arrivent par la poste et validez-le $ this- > model_setting_setting-> editSetting ($ this-> payment_module_name, $ this-> request-> post); // sauvegarde de toutes les données dans la base de données $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); // Identifiant de la réussite $ this-> redirect (HTTPS_SERVER. 'Index.php? Route = extension / payment & token ='. $ This-> session-> data ['token']); // Redirection vers la liste des modules de paiement
Voici la fonction de validation qui valide les données requises:
private $ error = array (); // Toutes les erreurs seront enregistrées dans ce tableau, fonction privée validate () // Vérification de la permission du module utilisateur si (! $ This-> user-> hasPermission ('modify', 'payment /'.$ this-> payment_module_name)) $ this-> error ['warning'] = $ this-> language-> get ('error_permission'); // La vérification des autorisations du module utilisateur se termine // Vérifiez si la clé API n'est pas vide si (! $ This-> request-> post ['bitpay_api_key']) $ this-> erreur ['api_key'] = $ this- > language-> get ('error_api_key'); // Api Check se termine ici // S'il n'y a pas d'erreur, la fonction renvoie True, sinon False if (! $ This-> error) return TRUE; else return FALSE; // La vérification booléenne se termine ici
Nous avons terminé la création de la structure du module de paiement pour le tableau de bord et vous devriez pouvoir tester le panneau d'administration. N'oubliez pas d'accorder la permission à l'utilisateur d'administration avant de tester.
Dans cet article, nous avons introduit la partie administrative du module de paiement. Notez que c’est une bonne idée de donner plus de contrôle à l’administrateur du site via une interface que, par exemple, d’exiger qu’ils écrivent du code..
Dans le prochain article, nous allons implémenter le module de paiement en ce qui concerne le front-end. En attendant, n'hésitez pas à répondre à vos questions ou commentaires via le formulaire ci-dessous.