AzeriCard¶
Danger
Azericard inteqrasiyası tamamilə dokumentasiyaya uyğun yazılsa da, test mühiti olmadığından real testlər edilə bilinməyib. Ona görə istifadə edərkən, ehtiyatlı olun, göndərilən və alınan sorğuları bir daha yoxlamağınız tövsiyyə olunur. Əgər sizdə test mühiti varsa, və bizə yardımçı olmaq istəyirinizsə, əlaqə saxlamağınız xahiş olunur.
Warning
Bu sorğulardan istifadə edə bilmək üçün, düzgün "environment variable"-ları quraşdırmalısınız. Daha ətraflı burdan oxuya bilərsiniz.
Rəsmi Dokumentasiya (v2024.11.6)¶
Sorğular listi¶
| Sorğu metodu | Məqsəd | Azericard API |
|---|---|---|
authorization |
Ödəniş/Bloklama | https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='1') |
auth_and_save_card |
Ödəniş/Bloklama və kartı yadda saxlamaq | https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='1') |
auth_with_saved_card |
Saxlanılan kartla ödəniş/bloklama | https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='1') |
finalize |
Blok olunmuş məbləği qəbul ETMƏMƏK (offline) sorğusu | https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='24') |
get_transaction_status |
Ödəniş statusunun yoxlanılması | https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='90') |
transfer_start |
Müştəriyə pul köçürülmə prosesinin başladılması | https://mt.azericard.com/payment/view |
transfer_confirm |
Müştəriyə pul köçürülmə prosesini təsdiqləmə | https://mt.azericard.com/api/confirm |
transfer_decline |
Müştəriyə pul köçürülmə prosesini imtina etmə | https://mt.azericard.com/api/decline |
Sorğu göndərmək axını¶
Nəzərə alsaq ki, Azericard form submission qəbul edərək, sizə redirectsiz səhifəni açır, form-u backend-dən submit etmık mümkün deyil, məhz front tərəfdən olmalıdır. Ona görə, başqa inteqrasiyalardan fərqli olaraq, Azericard-da kitabxana sorğu atmır, form-da göndərilməli olan data-nı qaytarır. Format JSON olsa da, köməkçi funksiyadan istifadə edərək, HTML formu alın, front-a response kimi göndərə bilərsiniz:
from integrify.azericard.client import AzericardClient
from integrify.azericard.helpers import json_to_html_form
req = AzericardClient.pay(
amount=1,
currency='AZN',
order='12345678',
desc='test',
country='AZ',
)
form = json_to_html_form(req)
print(form) # <form action="https://testmpi.3dsecure.az/cgi-bin/cgi_link" method="POST">
# <input type="hidden" name="ORDER" value="12345678"> ...
Callback Sorğusu¶
Bəzi sorğular müştəri məlumat daxil etdikdən və arxa fonda bank işləmləri bitdikdən sonra, tranzaksiya haqqında məlumat sizin mühit dəyişənində (və ya sorğuda) qeyd etdiyiniz callback URL-ə POST sorğusu göndərilir. Hər datada PSIGN field-i vardır ki, sizin server tərəfindən scamming-in qarşısını almaq üçün düzgün olub-olmadığını yoxlamalısınız.
Qeyd
FastAPI istifadəçiləri kiçik "shortcut"-dan istifadə edə bilərlər:
from fastapi import Fastapi, APIRouter, Depends from integrify.azericard.schemas.callback import AuthCallbackWithCardDataSchema router = APIRouter() @router.post('/azericard/callback') async def azericard_callback(data: AuthCallbackWithCardDataSchema): ...
Callback Data formatı¶
Nə sorğu göndərməyinizdən asılı olaraq, callback-ə gələn data biraz fərqlənə bilər. AuthCallbackWithCardDataSchema bütün bu dataları özündə cəmləsə də, hansı fieldlərin gəlməyəcəyini (yəni, decode-dan sonra None olacağını) bilmək yaxşı olar. Ümumilikdə, mümkün olacaq datalar bunlardır:
| Dəyişən adı | İzahı |
|---|---|
terminal |
Sorğudan əks etdirilməsi Terminal ID |
trtype |
Sorğudan əks etdirilməsi Transaction Type |
order |
Sorğudan əks etdirilməsi order id |
amount |
İcazə verilən məbləğ. Adətən, orijinal məbləğə və alıcının haqqına bərabər olacaq. |
currency |
Sorğudan əks etdirilməsi ödəniş məzənnəsi |
action |
EGateway fəaliyyət kodu |
rc |
Əməliyyat cavab kodu (ISO-8583 Sahə 39) |
approval |
Müştəri bankının təsdiq kodu (ISO-8583 Sahə 38). Kart idarəetmə sistemi tərəfindən təmin edilmədikdə boş ola bilər. |
rrn |
Müştəri bankının axtarış istinad nömrəsi (ISO-8583 Sahə 37) |
int_ref |
Elektron ticarət şlüzünün daxili istinad nömrəsi |
timestamp |
GMT-də e-ticarət şlüzünün vaxt damğası:: YYYYMMDDHHMMSS |
nonce |
E-Commerce Gateway qeyri-dəyərlidir. Hexadecimal formatda 8-32 gözlənilməz təsadüfi baytla doldurulacaq. MAC istifadə edildikdə mövcud olacaq. |
card |
123456******1234 formatında əks edilən kart maskası |
token |
Saxlanılacaq kartın TOKEN parametri |
p_sign |
Onaltılıq formada E-Commerce Gateway MAC (Message Authentication Code). MAC istifadə edildikdə mövcud olacaq. |
Sorğudan asılı olaraq, bu data-lar callback-də GƏLMİR (yəni, avtomatik None dəyəri alır):
| Sorğu metodu | None field-lər |
|---|---|
authorization |
card, token |
auth_and_save_card |
- |
auth_with_saved_card |
- |
finalize |
card, token |
Qeyd
Qalan bütün data-lar sorğu success olduqda gəlir, əks halda, onlar da
Nonedəyəri alır.