A kezdés előtt feltételezzük, hogy már ismeri a modulok alapjait, létrehozott egy üres modult az összes szükséges fejléccel, és a modul aktiválva van, és megjelenik a modulok listájában.
- A modules/[module_name] / könyvtárak nevű mappát hozzon létre.
- A modules/[module_name]/libraries menüpontban hozzon létre egy osztálynevet pl. Example_gateway.php, a fájlnévnek _gateway.php-ra kell végződnie.
- Lásd alább Minta végrehajtás
- A modul init fájljában regisztrálja a fizetési átjárót a következő kóddal:
register_payment_gateway('example_gateway', '[module_name]');
Cserélje ki a címet. [module_name] a tényleges modulrendszer nevével és a example_gateway-t a modulosztály nevével (kisbetűvel).
Ha mindent megfelelően konfiguráltál, navigálj a Beállítások->Beállítások->Fizetési átjárók menüpontba, és ott láthatod a Példa átjárót az általad megadott beállításokkal.
Ezenkívül az átjáró API-tól függően létrehozhat egy vezérlőt a process_payment átjáró osztály metódusából történő átirányításhoz.
Minta végrehajtás #
Mivel a RevTec CRM a Codeigniter keretrendszert használja a fizetési átjáró integrálásához, 1 átjáró könyvtárat (átjáró konfiguráció és feldolgozási módszer) és 1 átjáró vezérlőt (HTTP kérésekhez, űrlap megjelenítéséhez
A számla HTML területén, amikor egy ügyfél rákattint a gombra PAY NOW, hívjuk 1 módszer az átjáró könyvtár, amely feldolgozza minden további, hogy szükséges az átjáró eq átirányítás átjáró weboldal és átadni paraméterek vagy átirányítás vezérlő és mutasd űrlap stb….
Egy kicsit leegyszerűsítettük az új átjárók létrehozásának folyamatát, pl. az átjáró automatikusan megjelenik a Setup->Settings->Payment Gateways, a mezők titkosítása, 1 egyedi funkció minden egyes átjáró könyvtárból, amelyet meg kell hívni.
Tegyük fel, hogy ebben a példában az átjáró neve Example
<. defined="" or="" exit="" direct="" script="" access="" allowed="" example_gateway="" extends="" app_gateway="" public="" function="" __construct="" call="" parent::__construct="" gateway="" unique="" id="" required="" the="" must="" be="" alphanumeric="" filename="" and="" class="" name="" contain="" as="" id_gateway="" in="" this="" case="" our="" is="" will="" example_gateway.php="" letter="" uppercase="">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 3 field types are accepted for gateway
*
* 'type'=>'yes_no'
* 'type'=>'input'
* 'type'=>'textarea'
*
*/
$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'
),
)); } /**
* 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;
}
}
A függvényekhez és változókhoz megjegyzéseket találsz, érdemes egy kis időt szánnod az elolvasásukra, mert fontosak, ha segíteni akarsz az elindulásban.
Ezenkívül megnézheti a másik gateway példát is az application/libraries/gateways vagy az application/controllers/gateways könyvtárakban.
URL kizárása a CSRF-ből #
Ha a modul fizetési átjárója webhookokat használ, és POST-kérést küld a RevTec CRM egy URL-címére a fizetési frissítésekről való értesítéshez, akkor ezt az URL-címet ki kell zárnia a CSRF-ből, hogy a kérés átmenjen.
Ennek eléréséhez követheti ezt az útmutatót.