La création d'une nouvelle passerelle de paiement en ligne nécessitera des connaissances php plus avancées ainsi qu'une connaissance de la passerelle de paiement et des exigences.
Parce que Fenekio CRM utilise le framework Codeigniter pour intégrer la passerelle de paiement, vous devrez créer 1 bibliothèque de passerelle (configuration de passerelle et méthode de traitement) et 1 contrôleur de passerelle (pour les requêtes HTTP, le formulaire d'affichage, etc.), vous pouvez également consulter le d'autres fichiers de passerelles afin d'avoir une idée.
Dans la zone HTML de la facture, lorsqu'un client clique sur le bouton PAYER MAINTENANT, nous appelons 1 méthode de la bibliothèque de passerelle qui traitera tout ce qui est requis pour cette passerelle eq redirige vers le site Web de la passerelle et transmet les paramètres ou redirige vers le contrôleur et affiche le formulaire, etc. …
Nous avons un peu simplifié le processus de création de nouvelles passerelles, la passerelle sera automatiquement affichée dans Configuration-> Paramètres-> Passerelles de paiement, champs de cryptage, 1 fonction unique de chaque bibliothèque de passerelle à appeler, etc. a débuté.
Les principaux dossiers que vous utiliserez lors de la création d'une nouvelle passerelle sont :
- application/libraries/gateways – Ce fichier contient la logique principale des paramètres de l'eq de la passerelle, ajoutant la passerelle au système, la fonction principale process_payment qui est appelée chaque fois qu'un client clique sur le bouton PAYER MAINTENANT .
- application/gateways/controllers – Ce dossier est utilisé au cas où vous auriez besoin de créer des URL valides pour votre passerelle eq. webhook ou pour prendre la réponse HTTP de la requête de passerelle. Dans ce cas, vous devez y créer un contrôleur Codeigniter.
La classe PHP
Supposons pour cet exemple que votre nom de passerelle est Exemple
Dans application/libraries/gateways /créez le fichier Example_gateway.php avec le contenu suivant :
<?php
defined('BASEPATH') or exit('No direct script access allowed');
class Example_gateway extends App_gateway
{
public function __construct()
{
/**
* Call App_gateway __construct function
*/
parent::__construct();
/**
* Gateway unique id - REQUIRED
*
* * The ID must be alphanumeric
* * The filename (Example_gateway.php) and the class name must contain the id as ID_gateway
* * In this case our id is "example"
* * Filename will be Example_gateway.php (first letter is uppercase)
* * Class name will be Example_gateway (first letter is uppercase)
*/
$this->setId('example');
/**
* REQUIRED
* Gateway name
*/
$this->setName('Example');
/**
* Add gateway settings
* You can add other settings here to fit for your gateway requirements
*
* Currently only 2 field types are accepted for gateway
*
* 'type'=>'yes_no'
* 'type'=>'input'
*/
$this->setSettings(array(
array(
'name' => 'api_secret_key',
'encrypted' => true,
'label' => 'API KEY',
'type'=>'input',
),
array(
'name' => 'api_publishable_key',
'label' => 'SECRET KEY',
'type'=>'input'
),
array(
'name' => 'currencies',
'label' => 'settings_paymentmethod_currencies',
'default_value' => 'USD,CAD'
),
));
/**
* REQUIRED
* Hook gateway with other online payment modes
*/
hooks()->add_filter('app_payment_gateways', [ $this, 'initMode' ]);
}
/**
* Each time a customer click PAY NOW button on the invoice HTML area, the script will process the payment via this function.
* You can show forms here, redirect to gateway website, redirect to Codeigniter controller etc..
* @param array $data - Contains the total amount to pay and the invoice information
* @return mixed
*/
public function process_payment($data)
{
var_dump($data);
die;
}
}
Il y a des commentaires sur les fonctions et les variables, vous devriez prendre le temps de les lire car elles sont importantes si vous voulez vous aider à démarrer.
De plus, vous pouvez jeter un œil à l'autre exemple de passerelle dans application/libraries/gateways ou application/controllers/gateways .
Maintenant, après avoir créé et enregistré le fichier, accédez à Configuration-> Paramètres-> Passerelles de paiement, vous pourrez voir la liste des exemples de passerelle. tout dépend des exigences de la passerelle de paiement.