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.
PHP 7 and later
composer require tural/epointTo include use Composer's autoload:
require_once("vendor/autoload.php");$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
}$response = Epoint::cancel("write epoint transaction id");
if ($response->status == "success") {
// handle success
} else {
// handle failure
}// 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 responsedd($response);$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
}$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
}// 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
}$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
}$data = $this->req("data");
if (!empty($data)) {
$epoint = newEpoint([
"data" => $_POST["data"], "signature" => $_POST["signature"]
]);
// verify the response is really coming from epointif ($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 successfulif ($json->status == "success") {
// if card_id is set it means it is save_card responseif (!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.