1 İcmal
Təlimatda proqramçıların ödəniş sisteminin şlüz interfeysi ilə tanışlığı və məsuliyyətləri qeyd olunub. Proses satıcı sisteminin e-com sistemi vasitəsi ilə kart ödənişlərinin CGI/WWW forms posting method əsaslarında icra edilməsini təsvir edir.Bu interfeys kart istifadəçilərinin şəffaf şəkildə idendifikasiya protokolları vasitəsi ilə (3D-secure və Secure Code SSL) dəstəkləməsinə imkan verir.
1.1 Əməliyyat axını ssenarisi
Aşağıda qeyd olunmuş diaqrammada Müştəri(kart sahibi), Satıcı və Prosessing (AZC/Elektron Ödəniş sistemi) arasındaaparılan proseslər təsvir edilib.
Şlüz (Gateway) daxil olan mesajların təsdiqlənməsini, qeri qayıtmış natamam, başa çatmış tranzaksiyaların Way4 kart sistemindən sorğulanmasını təmin edir.
2 E-com inteqrasiya
Ödənişi həyata keçirtmək üçün satıcı (merchant) aşağıdaki siyahıda qeyd olunmuş parametrlər doldurulmalıdır və test məlumatlar aşağıdakı linkə göndərilməlidir:
https://testmpi.3dsecure.az/cgi-bin/cgi_link
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 1-12 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
DESC | 1-50 | Sifarişin açıqlaması |
MERCH_NAME | 1-50 | Satıcının (merchan) adı (kart istifadəçisinin anladığı formada olmalıdır) |
MERCH_URL | 1-250 | Satıcının web site URL-ı |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
80 | Bildirişlər üçün Email ünvan. Qeyd olunmuş sahə doldurulduğu halda Gateway email ünvanı müəyyən etmək üçün əməliyyat nəticəsi haqqında bildiriş göndərə bilər. | |
TRTYPE | 1 | Tranzaksiya növü = 0 (Avtorizasiya əməliyyatı) |
COUNTRY | 02 | Merchant shop 2 simvollu ölkə kodu. Merchant sistemi Gateway serverin yerləşdiyi ölkədən fərqli ölkədə yerləşirsə qeyd olunmalıdır. |
MERCH_GMT | 1-5 | Merchant-ın UTC/GMT vaxt zonası. Merchant sistemi Gateway serverin yerləşdiyi vaxt zonasından fərqli vaxt zonasında yerləşirsə qeyd olunmalıdır. |
BACKREF | 1-250 | Avtorizasiya nəticəsinin yerləşdirilməsində(post) istifadə olunan Merchant URL. |
TIMESTAMP | 14 | Tarix formatı GMT (0): YYYYMMDDHHMMSS. merchant server-lə e-Gateway server arasında zaman fərqi 1 saatı aşmamalıdır, əks halda Gateway tranzaksiyaya imtina verəcək. |
NONCE | 1-64 | Merchant nonce. 8-32 təsadüfi random baytlar vasitəsi ilə 16-lıq formatda doldurulmalıdır. MAC istifadə olunduğu halda nəzərə alınmalıdır. |
LANG | 2 | Dil seçimi |
P_SIGN | 1-256 | 16-lıq formatda Merchant MAC |
NAME | 2-45 | Müştərinin adı (kartda göstərildiyi kimi) |
M_INFO | 35000 | JSON formatlı Base64 kodlu sətir olmalıdır - "parameter": "value data". |
Aşağıda M_INFO sahəsi üçün hazırlanmış məlumat nümunəsi verilmişdir:
"M_INFO"="ewoiYnJvd3NlclNjcmVlbkhlaWdodCI6IjE5MjAiLAoiYnJvd3NlclNjcmVlbldpZHRoIjoiMTA4MCIsCiJicm93c2VyVFoiOiIwIiwKIm1vYmlsZVBob25lIiA6eyAiY2MiOiI5OTQiLCAic3Vic2NyaWJlciI6IjU1Nzc3Nzc3Nzc3IiB9Cn0=",
M_INFO Parametrlərin təsviri:
Sorğu aşağıda qeyd olunmuş formada olmalıdır:
"AMOUNT"="xx", "CURRENCY"="AZN", "ORDER"="xxxxxxxxxxxx", "DESC"="xxxxxxxxxxx xxxx", "MERCH_NAME"="xxxxx.xxx", "MERCH_URL"="https://xxxxxxxxxx.xx/xxxx", "MERCH_GMT"="+4", "TERMINAL"="xxxxxxxxx", "EMAIL"="[email protected]", "TRTYPE"="x", "COUNTRY"="AZ", "TIMESTAMP"="xxxxxxxxxxxxxx", "NONCE"="xxxxxxxxxxxxxxx", "BACKREF"="https://xxxxxxxxxxx/xxxxxxxxxxx/xxxxxx", "LANG=xx", "NAME"="xxxxxx", "M_INFO"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "P_SIGN"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Cavab formatı
Sahə | Uzunluq | Açıqlama |
---|---|---|
TERMINAL | 8 | Sorğudan əks etdirilməsi |
TRTYPE | 2 | Sorğudan əks etdirilməsi |
ORDER | 6-32 | Sorğudan əks etdirilməsi |
AMOUNT | 12 | İcazə verilən məbləğ. Adətən, orijinal məbləğə və alıcının haqqına bərabər olacaq. |
CURRENCY | 3 | Sorğudan əks etdirilməsi |
ACTION | 1 | EGateway fəaliyyət kodu |
§0 – Tranzaksiya uğurla tamamlandı | ||
§1 – Dublikat əməliyyat aşkar edildi | ||
§2 – Tranzaksiya rədd edildi | ||
§3 – Tranzaksiya emal xətası | ||
RC | 02 | Əməliyyat cavab kodu (ISO-8583 Sahə 39) |
APPROVAL | 06 | 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 | 12 | Müştəri bankının axtarış istinad nömrəsi (ISO-8583 Sahə 37) |
INT_REF | 1-128 | Elektron ticarət şlüzünün daxili istinad nömrəsi |
TIMESTAMP | 14 | GMT-də e-ticarət şlüzünün vaxt damğası:: YYYYMMDDHHMMSS |
NONCE | 1-64 | 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. |
P_SIGN | 1-256 | Onaltılıq formada E-Commerce Gateway MAC (Message Authentication Code). MAC istifadə edildikdə mövcud olacaq. |
2.1 Ödənişin təsdiqlənməsi və geri qaytarılması
Psign yaradılış qaydalarına riayyət edərək eyni formada callback-dən gələn P-sign-i MPİ-dan gələn public key ilə yoxlamaq lazımdır. Yoxlanış uğurlu olduğu halda ödəməni tamamlamaq üçün trtype = 21, geri qaytarmaq üçün isə trtype = 22 və ya trtype = 24 paraqrafında qeyd olunan sahələri aşağıdakı test linkə göndərmək lazımdır: Keçid linki
https://testmpi.3dsecure.az/cgi-bin/cgi_link
2.1.1 TRTYPE = 21
Sahə | Uzunluq | Sifarişin açıqlaması |
---|---|---|
AMOUNT | 1-12 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 21 (Satışın tamamlanması) |
TIMESTAMP | 14 | Tarix formatı GMT (0): YYYYMMDDHHMMSS. merchant server-lə e-Gateway server arasında zaman fərqi 1 saatı aşmamalıdır, əks halda Gateway tranzaksiyaya imtina verəcək. |
NONCE | 16 | Merchant nonce. 8-32 təsadüfi random baytlar vasitəsi ilə 16-lıq formatda doldurulmalıdır. MAC istifadə olunduğu halda nəzərə alınmalıdır. |
P_SIGN | 1-256 | 16-lıq formatda Merchant MAC |
Sorğu aşağıda qeyd olunmuş formada olmalıdır:
"AMOUNT"="xx", "CURRENCY"="AZN", "ORDER"="xxxxxxxxxxxx", "RRN"="xxxxxxxxx", "INT_REF"="xxxxxxxxx", "TERMINAL"="xxxxxxxxx", "TRTYPE"="x", "TIMESTAMP"="xxxxxxxxxxxxxx", "NONCE"="xxxxxxxxxxxxxxx", "LANG=xx", "P_SIGN"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2.1.2 TRTYPE = 22
Sahə | Uzunluq | Sifarişin açıqlaması |
---|---|---|
AMOUNT | 1-12 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 22 (Online reversal) |
TIMESTAMP | 14 | Tarix formatı GMT (0): YYYYMMDDHHMMSS. merchant server-lə e-Gateway server arasında zaman fərqi 1 saatı aşmamalıdır, əks halda Gateway tranzaksiyaya imtina verəcək. |
NONCE | 16 | Merchant nonce. 8-32 təsadüfi random baytlar vasitəsi ilə 16-lıq formatda doldurulmalıdır. MAC istifadə olunduğu halda nəzərə alınmalıdır. |
P_SIGN | 1-256 | 16-lıq formatda Merchant MAC |
Sorğu aşağıda qeyd olunmuş formada olmalıdır:
"AMOUNT"="xx", "CURRENCY"="AZN", "ORDER"="xxxxxxxxxxxx", "RRN"="xxxxxxxxx", "INT_REF"="xxxxxxxxx", "TERMINAL"="xxxxxxxxx", "TRTYPE"="x", "TIMESTAMP"="xxxxxxxxxxxxxx", "NONCE"="xxxxxxxxxxxxxxx", "LANG=xx", "P_SIGN"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2.1.3 TRTYPE = 24
Sahə | Uzunluq | Sifarişin açıqlaması |
---|---|---|
AMOUNT | 1-12 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 24 (Offline reversal) |
TIMESTAMP | 14 | Tarix formatı GMT (0): YYYYMMDDHHMMSS. merchant server-lə e-Gateway server arasında zaman fərqi 1 saatı aşmamalıdır, əks halda Gateway tranzaksiyaya imtina verəcək. |
NONCE | 16 | Merchant nonce. 8-32 təsadüfi random baytlar vasitəsi ilə 16-lıq formatda doldurulmalıdır. MAC istifadə olunduğu halda nəzərə alınmalıdır. |
P_SIGN | 1-256 | 16-lıq formatda Merchant MAC |
Sorğu aşağıda qeyd olunmuş formada olmalıdır:
"AMOUNT"="xx", "CURRENCY"="AZN", "ORDER"="xxxxxxxxxxxx", "RRN"="xxxxxxxxx", "INT_REF"="xxxxxxxxx", "TERMINAL"="xxxxxxxxx", "TRTYPE"="x", "TIMESTAMP"="xxxxxxxxxxxxxx", "NONCE"="xxxxxxxxxxxxxxx", "LANG=xx", "P_SIGN"="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
2.2 P_SIGN yaradılması
MAC –ın hesablanma qaydası müvafiq format cədvəlində müəyyən edilmiş sahələrin (görünən və şifrələnmiş sahələr) generasiyası əsasında müəyyən edilir, istisna Mac sahəsi (“P_SIGN”).
Mesajin autentifikasiyası sahəsini yaratmaq və ya yoxlamaq üçün merchant sistemi MAC mənbə sətrini yığmalıdır, ASCII-də format cədvəllərindəki bütün sahə dəyərlərinə uzunluqları onluq say sistemi şəklində prefiks olaraq əlavə edilir və müəyyən edilmiş qaydada birləşdirilir.
The MAC mənbəsi string nümunəsi:
81720078010511.48142003010515302116IT Books. Qty: 2
MAC mənbə sətri yarandıqdan sonra, merchant system kriptoqrafik alqoritm əsasında autentifikasiya kodunu generasiya etməlidir.
SHA256 formatda imza yaradılır, mac mənbəsi imzaya əlavə olunur, gizli açar vasitəsi ilə 16-lıq formatda şifrələnir
Merchant systemi seçilmiş alqoritmla implementasiyanı texniki və proqram təminatı üzrə həyata keçirdir, müvafiq yaddaş qurğularının təhlükəsizliyini təmin adib və uyğun kriptoqrafiya açarlarının istifadəsini təmin etməlidir. Effektif açar uzunluğu RSA alqoritm üzrə1024 bit olmalıdır.
Test terminalında istifadə olunan sahələrin ardıcıllığı (terminal id: 17200780) aşağıdadır:
2.2.1 TRTYPE = 0, TRTYPE = 1
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 5 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 1 | Tranzaksiya növü = 1 (Maliyyə sənədi) |
TIMESTAMP | 14 | Tarix formatı GMT (0): YYYYMMDDHHMMSS. merchant server-lə e-Gateway server arasında zaman fərqi 1 saatı aşmamalıdır, əks halda Gateway tranzaksiyaya imtina verəcək. |
NONCE | 1-64 | Merchant nonce. 8-32 təsadüfi random baytlar vasitəsi ilə 16-lıq formatda doldurulmalıdır. MAC istifadə olunduğu halda nəzərə alınmalıdır. |
MERCH_URL | 1-250 | Satıcının web site URL-ı |
2.2.2 TRTYPE = 21
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 5 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 21 (Satışın tamamlanması) |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
2.2.3 TRTYPE = 22
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 5 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 22 (Online reversal) |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
2.2.4 TRTYPE = 24
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 5 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
CURRENCY | 03 | Sifariş valyutası: 3 simvollu valyuta kodu |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
TRTYPE | 2 | Tranzaksiya növü = 24 (Offline reversal) |
ORDER | 6-32 | Satıcı sifariş ID-si, rəqəmsal. Son 6 rəqəm sistem izi audit nömrəsi kimi istifadə olunur, terminal id üçün bir gün ərzində unikal olmalıdır |
RRN | 1 | Merchant bank üzrə axraş sorğu nömrəsi (ISO-8583 Field 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
3 Test məlumatları
Burada Siz test mühitdə test əməliyyatlar edib, əməliyyatların nəticələrini simulyasiya edə bilərsiniz (təsdiq və imtina nəticəsi). Sandbox istifadəsinin əsas məqsədi inteqrasiya prosesinin tətbiqi və testləşməsidir. Production məlumatlarının əldə olunması üçün satıcı və Bank/AZC arasında müqavilə rəsmiləşdirilməlidir. Test əməliyyatların aparılması üçün Siz test mühitdə test açarlardan və test rekvezitlərdən istifadə etməlisiniz.
3.1 Test kartı
Test kart vasitəsi ilə əməliyyat etmək üçün aşağıda qeyd olunmuş kart məlumatları istifadə olunmalıdır.
PAN | 4105110411935581 |
EXP_MONTH | 11 |
EXP_YEAR | 25 |
CVV | 626 |
SMS One Time Password | 1111 |
3.2 Test terminalı
Test əməliyyatın aparılması üçün aşağıda qeyd olunmuş test terminal istifadə olunmalıdır.
Terminal ID | İnteqrasiya zamanı təqdim olunacaq |
3.3 Test açarları
Test mühitində sizə 1 Azericard açıq açar(Public RSA) təqdim olunacaq. Açarların yaradılması paraqraf 4-də qeyd olunub. Keçid linki
MPI Public Key | İnteqrasiya zamanı təqdim olunacaq |
3.4 Sandbox
Müştərilərimizə dəstək olmaq üçün yaradılmış sandbox səhifəsi onların inteqrasyalarını yoxlamaq üçün nəzərdə tutulub. Aşağıdaki linkdən istifadə edərək siz yeni funksionallıqların yaradılmasını, yaranmış boşluqların müəyyən edilməsi və aradan qaldırılmasını, düzəlişlərin yoxlanılmasını proseslərini icra edə bilərsiniz.
P_SIGN Check:
3.5 Callback P_SIGN hesablanması
Callback P_SIGN hesablanması üçün aşağıdakı dəyişənlər istifadə edilir. Əlavə olaraq əgər göstərilmiş dəyişənlərdən hər hansı birinin dəyəri boş göndərilərsə bu zaman həmin dəyərin əvəzinə “-” (tire) işarəsi əlavə edilir və P_SİGN hissədə onun uzunluğu nəzərə alınmır.
Sahə | Uzunluq | Açıqlama |
---|---|---|
AMOUNT | 5 | Sifarişin ümumi məbləği sürüşkən nöqtəli formatda qeyd olunur |
TERMINAL | 8 | Bank tərəfindən təyin edilmiş Merchant Terminal ID |
APPROVAL | 6 | 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 | 12 | Müştəri bankının axtarış istinad nömrəsi (ISO-8583 Sahə 37) |
INT_REF | 1-32 | Daxili E-Commercegateway sorğu nömrə |
4 Açarların yaradılma prosesi
Prod sistem üçün Merchant öz açıq açarını Azericard prosesinq mərkəzinə, Azericard isə öz açıq açarını Merchant tərəfə təqdim etməlidir. Hər iki tərəfin gizli açarı özündə qalmalıdır. Merchant tərəfindən açıq və gizli RSA açarlarının yaradılması prosesi aşağıdakı şəkildə həyata keçməlidir:
Qeyd olunmuş əməliyyatın icrası üçün Windows və ya Linux cihazlarında OpenSSL sistemi quraşdırılmalıdır.
4.1 Gizli açarın yaradılması(Windows)
1. Command Prompt açın və qeyd olunmuş addımları edin:
2. Aşağıdakı qovluğa keçin:
3. Aşağıda qeyd olununları daxil edin:
4. ENTER düyməsini klikləyin
Gizli açar 'merchant_name_private_key.pem' adlı fayl generasiya olunub, yadda saxlanır və eyni folder-də yerləşdirilir.
4.2 Açıq açarın yaradılması(Windows)
1. prompt komandasında aşağıdaki məlumat qeyd olunmalıdır:
2. ENTER düyməsini klikləyin.
Açıq açar merchant_name_public_key.pem adlı faylda eyni adlı qovluqda saxlanılır.
4.3 Gizli açarın yaradılması(Linux)
1. Terminal-ı açın.
2. Aşağıda qeyd olununları daxil edin:
4. ENTER düyməsini klikləyin
Gizli açar 'merchant_name_private_key.pem' adlı fayl generasiya olunub, yadda saxlanır və eyni folder-də yerləşdirilir.
4.4 Açıq açarın yaradılması(Linux)
1. Terminal-ı açın.
2. Aşağıdakıları qeyd edin:
3. ENTER düyməsini klikləyin.
Açıq açar 'merchant_name_public_key.pem' adlı faylda eyni adlı qovluqda saxlanılır.