ampeco / omnipay-fibank
Omnipay plugin for fibank ECOMM recurring payments
Installs: 25 999
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: ^7.2|^8.0
- ext-curl: *
- omnipay/common: ^3
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.0
README
Omnipay plugin for fibank ECOMM recurring payments
Installation
composer require ampeco/omnipay-fibank
Getting started
Create the gateway
$gateway = Omnipay::create('\Ampeco\OmnipayFibank\Gateway'); $gateway->initialize([ 'merchantCertificate' => '... The PEM certificate you got from the bank', 'merchantCertificatePassword' => 'The Certificate Password', 'createCardAmount' => 1.00, // The amount and currency to use for the create account initial payment 'createCardCurrency' => 'BGN', 'testMode' => true, ]);
Add a new credit card
try{ $response = $gateway->createCard([ 'clientIp' => 'CLIENT IP ADDRESS', 'expiry' => date('Y-m-d', strtotime('+10 years')), 'description' => 'Register a new payment method. The amount will be credited to your account', ])->send(); } catch (EcommException $e) { abort(422, $e->getMessage()); } if (!$response->isSuccessful()) { abort(422, $response->getMessage()); } // You must redirect the client to: echo $response->getRedirectUrl(); echo $response->getTransactionId(); // The transaction ID assigned by the bank
Check if the client completed the card registration
$transactionReference = '1234567890'; // Fetched from above - $response->getTransactionId() try { $result = $gateway->transactionResult([ 'transactionId' => $transactionReference, 'clientIp' => 'CLIENT IP ADDRESS', ])->send(); } catch (EcommException $e) { abort(422, $e->getMessage()); } if (!$result->isSuccessful()){ abort(422, $result->getMessage()); } // The card reference echo $result->getCardReference(); // recurring_test_reference1234`
Charge the saved credit card reference
try { $cardReference = 'recurring_test_reference1234'; // saved from above - $result->getCardReference(); $response = $gateway->purchase([ 'cardReference' => $cardReference, 'amount' => 3, 'currency' => 'BGN', 'description' => 'Purchase #1234', ])->send(); } catch (EcommException $e) { abort(422, $e->getMessage()); } if ($response->isSuccessful()) { echo $response->getTransactionReference(); } else { abort(422, $response->getMessage()); }