tural / epoint
The library provides convenient access to the Epoint API from applications written in the PHP language. It includes a pre-defined set of static class functions for API resources that initialize themselves dynamically from Tural/Epoint class which makes it easier without writing repetitive configurat
Requires
- php: >=7.0.0
- php-http/guzzle6-adapter: 1.1
This package is auto-updated.
Last update: 2024-03-29 04:46:17 UTC
README
The library provides convenient access to the Epoint.az API from applications written in the PHP language. It includes a pre-defined set of static class functions for API resources that initialize themselves dynamically from Tural/Epoint class which makes it easier without writing repetitive configuration.
Requirements
PHP 7 and later
Installation
composer require tural/epoint
To include use Composer's autoload:
require_once("vendor/autoload.php");
Dependencies
Getting started
Payment by typing card number
$response = Epoint::typeCard(PRIVATE_KEY, PUBLIC_KEY, "your_order_id", "0.01", "Test payment"); if ($response->status == "success") { // if successful it redirects to bank's payment page, // when user pays successfully, epoint will call the success webhook you provided $this->flashSuccess()->redirect($response->redirect_url); } else { // handle failure }
Cancel payment
$response = Epoint::cancel("write epoint transaction id"); if ($response->status == "success") { // handle success } else { // handle failure }
Check payment
// if false, it will check by order_id, if true, // it will check by epoint transaction id $epoint_transaction = false; $response = Epoint::checkPayment("order or transaction id", $epoint_transaction); // handle response dd($response);
Save card for payment
$response = Epoint::saveCardForPayment("Kartı yadda saxla"); if ($response->status == "success") { // save it to db $card_uid=$response->card_id; $this->flashSuccess()->redirect($response->redirect_url); } else { // handle failure }
Save card for refund
$response = Epoint::saveCardForRefund("Kartı yadda saxla"); if ($response->status == "success") { // save it to db $card_uid = $response->card_id; $this->flashSuccess()->redirect($response->redirect_url); } else { // handle failure }
Pay with saved card
// if successful it returns success $response = Epoint::payWithSaved("card_uid", "order_id", "amount for ex. 0.01", "write description"); if ($response->status == "success") { $epoint_transaction = $response->transaction; $bank_transaction = $response->bank_transaction; } else { // handle failure }
Refund action
$response = Epoint::refund("card_uid", "order_id", "amount 0.05", "write description"); if ($response->status == "success") { // handle success $this->redirect($response->redirect_url, true); } else { // handle failure }
Webhook called by Epoint on success or failure
$data = $this->req("data"); if (!empty($data)) { $epoint = new Epoint([ "data" => $_POST["data"], "signature" => $_POST["signature"] ]); // verify the response is really coming from epoint if ($epoint->isSignatureValid()) { $json_string = $epoint->getDataAsJson(); $json = $epoint->getDataAsObject(); // handle them for your needs $json->order_id ?? null, $json->status ?? null, $json->code ?? null, $json->transaction ?? null, $json->bank_transaction ?? null, $json->card_id ?? null, $json->card_name ?? null, $json->card_mask ?? null, $json->operation_code ?? null, // json as string $json_string ?? null; // if payment is successful if ($json->status == "success") { // if card_id is set it means it is save_card response if (!empty($json->card_id)) { // handle } } } }
All the parameters of the class are inline-documented inside class.
You can have a look at Api documentation in Azerbaijani, English and Russian.