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ətrisignature— Sorğunun doğrulanması üçün Base64-kodlanmış SHA1 heşi
data Parametrinin Yaradılması
- 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}- JSON sətrini Base64 ilə kodlayın:
Encode & Sign
1data = base64_encode(json_string)Nəticə:
Encode & Sign
1eyJwdWJsaWNfa2V5IjoiaTAwMDAwMDAwMSIsImFtb3VudCI6IjMwLjc1IiwiY3VycmVuY3kiOiJBWk4iLCJkZXNjcmlwdGlvbiI6InRlc3QgcGF5bWVudCIsIm9yZGVyX2lkIjoiMSJ9signature Parametrinin Yaradılması
- Birləşdirin:
private_key + data + private_key
Encode & Sign
1sgn_string = d3hjsl38sd8kdfhbcea0be04eafde9e8e2bad2fb092d + eyJwdWJsaWN... + d3hjsl38sd8kdfhbcea0be04eafde9e8e2bad2fb092d- 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));