Skip to main content

Integrify API inteqrasiyalarını rahatlaşdıran sorğular kitabaxanasıdır. Bu kitabxana Azericard inteqrasiyası üçün nəzərdə tutulmuşdur.

Project description

Integrify Azericard

[!Caution] Bütün sorğular rəsmi dokumentasiyalara uyğun yazılsalar da, Integrify qeyri-rəsmi API klient-dir.

Integrify

Integrify API inteqrasiyalarını rahatlaşdıran sorğular kitabaxanasıdır. Bu kitabxana Azericard inteqrasiyası üçün nəzərdə tutulmuşdur.

Test Publish Package version Netlify Status

Downloads Supported Python versions Coverage


Dokumentasiya: https://integrify.mmzeynalli.dev/integrations/azericard/about/

Kod: https://github.com/Integrify-SDK/integrify-azericard-python


Rəsmi Dokumentasiya (v2024.11.6)

Azərbaycanca

İngliscə

Əsas özəlliklər

  • Kitabxana həm sync, həm də async sorğu dəyişimini dəstəkləyir.
  • Kitabaxanadakı bütün sinif və funksiyalar tamamilə dokumentləşdirilib.
  • Kitabaxanadakı bütün sinif və funksiyalar tipləndirildiyindən, "type hinting" aktivdir.
  • Sorğuların çoxunun məntiq axını (flowsu) izah edilib.

Kitabxananın yüklənməsi

pip install integrify-azericard

İstifadəsi

Bu sorğulardan istifadə etmək üçün, bu dəyərləri "environment variable"-larına əlavə etməlisiniz: AZERICARD_KEY_FILE_PATH.

Bu sorğulardan rahat istifadə etmək üçün, qeyd olunan dəyərləri "environment variable"-larına əlavə etməyiniz məsləhət görülür: AZERICARD_MERCHANT_ID (Terminal ID), AZERICARD_MERCHANT_NAME, AZERICARD_MERCHANT_URL, AZERICARD_CALLBACK_URL (backref). Əks halda bu dəyərləri funksiyaları istifadə edərkən parametr kimi göndərməlisiniz.

AzeriCardClientClass interfeysinin dilini dəyişmək istəyirsinizsə, AZERICARD_INTERFACE_LANG "environment variable"-na dəyər verin, və ya hər sorğuda dil parametrini göndərin. Default olaraq, Azərbaycan dili olacaq.

Sorğular listi

Sorğu metodu Məqsəd Azericard API
[authorization][integrify.azericard.client.AzeriCardClientClass.authorization] Ödəniş/Bloklama https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='1')
[auth_and_save_card][integrify.azericard.client.AzeriCardClientClass.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][integrify.azericard.client.AzeriCardClientClass.auth_with_saved_card] Saxlanılan kartla ödəniş/bloklama https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='1')
[finalize][integrify.azericard.client.AzeriCardClientClass.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][integrify.azericard.client.AzeriCardClientClass.get_transaction_status] Ödəniş statusunun yoxlanılması https://mpi.3dsecure.az/cgi-bin/cgi_link (TRTYPE='90')
[transfer_start][integrify.azericard.client.AzeriCardClientClass.transfer_start] Müştəriyə pul köçürülmə prosesinin başladılması https://mt.azericard.com/payment/view
[transfer_confirm][integrify.azericard.client.AzeriCardClientClass.transfer_confirm] Müştəriyə pul köçürülmə prosesini təsdiqləmə https://mt.azericard.com/api/confirm
[transfer_decline][integrify.azericard.client.AzeriCardClientClass.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][integrify.azericard.schemas.callback.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

Dəstəklənən başqa API inteqrasiyaları

Servis Əsas sorğular Bütün sorğular Dokumentləşdirilmə Real mühitdə test Əsas developer
EPoint loading Tam Miradil Zeynallı
KapitalBank Tam Zaman Kazımov
LSIM Tam Miradil Zeynallı
Posta Guvercini Tam Zaman Kazımov
Azericard loading Tam loading Miradil Zeynallı
Payriff loading loading loading loading Vahid Həsənzadə

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

integrify_azericard-1.0.0.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

integrify_azericard-1.0.0-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file integrify_azericard-1.0.0.tar.gz.

File metadata

  • Download URL: integrify_azericard-1.0.0.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for integrify_azericard-1.0.0.tar.gz
Algorithm Hash digest
SHA256 95a5a7ef2bf8068911b37eebfaba236ca1a0bd4ce6f097d987a2a65583813cd5
MD5 e3ce8655a90bf8f8d9eb468b5e1eb1bd
BLAKE2b-256 c5109cbfa0ce67b2c7f3521422ee2e15db2c9ebdc13c68dee1c055362f004ea0

See more details on using hashes here.

Provenance

The following attestation bundles were made for integrify_azericard-1.0.0.tar.gz:

Publisher: publish.yml on Integrify-SDK/integrify-azericard-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file integrify_azericard-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for integrify_azericard-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 946789aac071705f7ef0b93068b8228eca2690947661c61f7006271b4490f9ce
MD5 150b50044a985503073af8234badc31e
BLAKE2b-256 c0b4ea41182c6baabe840bbf2bed64e64dfc6383340f894f5b26d164f1d3ee18

See more details on using hashes here.

Provenance

The following attestation bundles were made for integrify_azericard-1.0.0-py3-none-any.whl:

Publisher: publish.yml on Integrify-SDK/integrify-azericard-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page