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 response
dd($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 = 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.