Skip to Content
docs
Autentifikasiya

Autentifikasiya

Bütün Epoint API sorğuları data + signature autentifikasiya mexanizmindən istifadə edir. Bu, sorğunun bütövlüyünü təmin edir və taciri doğrulayır.

Necə işləyir

Hər bir API sorğusu iki POST parametri tələb edir:

  • data — API parametrlərini ehtiva edən Base64-kodlanmış JSON sətri
  • signature — Sorğunun doğrulanması üçün Base64-kodlanmış SHA1 heşi

data Parametrinin Yaradılması

  1. API parametrləriniz ilə JSON sətri yaradın:
Request Body
1{
2 "public_key": "i000000001",
3 "amount": "30.75",
4 "currency": "AZN",
5 "description": "test payment",
6 "order_id": "1"
7}
  1. JSON sətrini Base64 ilə kodlayın:
Encode & Sign
1data = base64_encode(json_string)

Nəticə:

Encode & Sign
1eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwMSIsImFtb3VudCI6IjMwLjc1IiwiY3VycmVuY3kiOiJBWk4iLCJkZXNjcmlwdGlvbiI6InRlc3QgcGF5bWVudCIsIm9yZGVyX2lkIjoiMSJ9

signature Parametrinin Yaradılması

  1. Birləşdirin: private_key + data + private_key
Encode & Sign
1sgn_string = d3hjsl38sd8kdfhbcea0be04eafde9e8e2bad2fb092d + eyJwdWJsaWN... + d3hjsl38sd8kdfhbcea0be04eafde9e8e2bad2fb092d
  1. SHA1 heşini tətbiq edin və Base64 ilə kodlayın:
Encode & Sign
1signature = base64_encode(sha1(sgn_string, 1))

Nəticə:

Encode & Sign
1a76GNudqblZtV8qF199hctA+cG0=

Sorğunun Göndərilməsi

Variant 1: API Sorğusu (server-server arası)

PHP
1$postfields = http_build_query([
2 'data' => $data,
3 'signature' => $signature,
4]);
5
6$ch = curl_init();
7curl_setopt($ch, CURLOPT_URL, $url);
8curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
9$server_output = curl_exec($ch);

Variant 2: Forma Yönləndirməsi (checkout)

HTML
1<form method="POST" action="***" accept-charset="utf-8">
2 <input type="hidden" name="data" value="BASE64_ENCODED_DATA"/>
3 <input type="hidden" name="signature" value="SIGNATURE_VALUE"/>
4 <button type="submit">Pay Now</button>
5</form>

Cavab Trace ID-si

Hər bir API cavabı trace_id sahəsini ehtiva edir — həmin sorğu üçün unikal identifikator. Əməliyyat problemi ilə bağlı Epoint dəstək xidmətinə müraciət edərkən, trace_id təqdim etmək komandamıza loglarımızda tam sorğu/cavab dövrünü tez tapmağa və təhlil etməyə imkan verir.

Request Body
1{
2 "status": "success",
3 "transaction": "te_0000000001",
4 "trace_id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
5}

trace_id həmçinin X-Request-ID cavab başlığında qaytarılır.

PHP Nümunəsi

PHP (Laravel)
1$payload = [
2 'public_key' => 'your_public_key',
3 'amount' => 30.75,
4 'currency' => 'AZN',
5 'description' => 'test payment',
6 'order_id' => '1',
7];
8
9$data = base64_encode(json_encode($payload));
10$private_key = 'your_private_key';
11$signature = base64_encode(sha1($private_key . $data . $private_key, 1));