Checkout Workflow UZ
Kirish
Ushbu yoʻriqnoma “Global Solutions” OAJ tomonidan ishlab chiqilgan boʻlib, xizmat koʻrsatuvchi provayder va toʻlov shlyuzi oʻrtasida Backend ulanishi doirasida yagona toʻlov shaklidan foydalangan holda elektron pul operatsiyalarini amalga oshirish maqsadida GLOBAL PAY CHECKOUT toʻlov xizmati bilan oʻzaro hamkorlik qilish tartibini tavsiflaydi.
Shartlar va ta'riflar
Operator - "Global Solutions" OAJ
Yetkazib beruvchi - o'z xizmatlarini onlayn to'lovlar (do'konlar, kinoteatrlar, telekommunikatsiyalar, kommunal/soliq xizmatlari va boshqalar) orqali ko'rsatuvchi yuridik shaxs.
"GLOBAL PAY CHECKOUT" to'lov xizmati - "Global Solutions" OAJga tegishli avtomatlashtirilgan to'lov xizmati, etkazib beruvchilar foydasiga to'lovlarni qabul qilishni avtomatlashtiradi.
Foydalanuvchi - nomidan to‘lov amalga oshirilgan shaxs
Toʻlov tizimi - Uzcard, Humo, Visa, Mastercard va boshqalar protsessing markazlari.
{{base_checkout_url}} - To‘lov tokenini yaratish kabi HTTP so‘rovlarini yuborish uchun Checkout tizimi URL manzilining asosiy qismi.
Test muhiti uchun qiymat https://checkout-api-dev.globalpay.uz/checkout hisoblanadi.
Staging uchun - https://checkout-api-staging.globalpay.uz/checkout
Production muhiti uchun - https://checkout-api.globalpay.uz/checkout
Integratsiyani boshlashdan oldin qadamlar va shartlar
“Global Solutions” AJ so‘rov oladi”;
Yetkazib beruvchining GLOBAL PAY CHECKOUT to'lov shlyuziga ulanish uchun ko'rib chiqish so'rovi ma'qullangandan so'ng shartnoma tuziladi.
"Global Solutions" OAJ texnik mutaxassislari yetkazib beruvchini GLOBAL PAY GATE tizimida ro'yxatdan o'tkazadi va unga "service_id" va "client_id" ni, shuningdek to'lov xizmati bilan keyingi hamkorlik qilish uchun zarur bo'lgan autentifikatsiya ma'lumotlarini beradi.
Yetkazib beruvchiga barcha kerakli ma'lumotlarni taqdim etgandan so'ng, etkazib beruvchi sinov muhitida ishlab chiqish va sinovdan o'tkazishni boshlaydi.
O'zaro ta'sirning qisqacha diagrammasi:
Amallar ketma-ketligi:
Nolinchi bosqich - bu Operator tizimidagi savdogarning autentifikatsiyasi. Bu o'zaro ta'sirning har qanday bosqichida amalga oshirilishi mumkin.
- createServiceToken - Merchant tizimidan to'lov tokenini yaratish so'rovi
- serviceTokenResponse - Operator tizimidan token yaratish so'roviga javob
- redirectUrl - foydalanuvchi brauzerini to'lov sahifasiga yo'naltiradi
- cardDetails - to'lov kartasi ma'lumotlarini foydalanuvchi kiritishi
- requestOtp - Protsessing markazidagi Operatordan OTP kodini so'rash
- SMS - to'lov kartasining SMS-xabarnoma raqamiga OTP kodli SMS yuborish
- OTP kod - foydalanuvchi tomonidan qabul qilingan OTP kodini kiritish
- verifyOtp - Operator tomonidan protsessing markaziga OTP kodini yuborish
- javob - OTP kodini tekshirish va to'lov so'roviga javob
- qayta qo'ng'iroq - Yetkazib beruvchi tizimidan Savdogar tizimiga sotuvchi bilan kelishilgan manzilga operatsiya natijasi to'g'risidagi ma'lumotlar bilan so'rov (qayta qo'ng'iroq)
- paymentResponse - foydalanuvchini tranzaktsiya natijasi haqida xabardor qilish va foydalanuvchini Savdogar sahifasiga yo'naltirish (agar to'lov belgisini yaratishda ko'rsatilgan bo'lsa)
- getPayment - tranzaksiya ma'lumotlarini so'rash. Savdogar to'lov belgisini yuboradi
- paymentResponse - Operator tizimi tranzaksiya haqidagi ma'lumotlarni, agar mavjud bo'lsa, tizimga qaytaradi.
Avtorizatsiya va to'lovni amalga oshirish bo'yicha harakatlarning batafsil tavsifi
Avtorizatsiya tokenini olish
POST so'rovi {{base_checkout_url}}/v1/merchant/auth
so'rov tanasi bilan
bu yerda oauth_username va oauth_password sotuvchiga berilgan login va paroldir. Javob quyidagi turdagi tuzilma bo'ladi:
access_token - keyingi so'rovlar uchun avtorizatsiya sifatida ishlatilishi kerak bo'ladi: so'rov sarlavhasi sifatida tashuvchi tokeni. Uning amal qilish muddati expires_in maydonida soniyalarda ko'rsatilgan.
refresh_token - tokenni POST so'rovi orqali {base_checkout_url}/v1/merchant/auth.ga yangilash uchun foydalanish mumkin. Yangilash tokenining amal qilish muddati refresh_expires_in maydonida soniyalarda ko'rsatilgan.
To'lov tokenini olish
Savdogar tizimi quyidagi tuzilma manziliga POST so'rovi yuboradi:
name - token nomi. Global miqyosda noyob bo'lishi kerak. Foydalanuvchi bilan chalkashmaslik uchun talab qilinadi.
desciption- Toʻlov tavsifi
externalId- Savdogar tizimidagi tranzaksiya identifikatori
account- Yetkazib beruvchi (Savdogar) tizimidagi oluvchi identifikatori
tokenLifespan - ixtiyoriy maydon. To'lov belgisining ishlash muddati soniyalarda. Standart 900, minimal 300, maksimal 86400. Belgilangan qiymat 300 dan (5 daqiqa) kam bo'lsa, 300 o'rnatiladi. Belgilangan qiymat 86400 (24 soat) dan ortiq bo'lsa, u holda 86400 o'rnatiladi.
externalServiceId - To'lovni amalga oshirish uchun to'lov identifikatorini ifodalovchi sotuvchiga taqdim etilgan xizmat identifikatori
itemsDavlat soliq qo'mitasi uchun mahsulot ma'lumotlari. Yagona to'lov (mahsulot) doirasida bo'sh bo'lishi mumkin, aks holda etkazib beruvchi (savdogar) qonun hujjatlariga muvofiq uni to'ldirishga majburdir.
requestFields - toʻlov boʻyicha qoʻshimcha maʼlumot berish uchun maydonlar. Miqdori va valyutasi koʻrsatilgan maydonlar toʻlov summasini mos ravishda minimal valyuta qiymatida (oʻzbek soʻmi uchun tiyin) va valyutada koʻrsatishi shart.
successRedirectUrl - to‘lov muvaffaqiyatli amalga oshirilgan taqdirda foydalanuvchi brauzeri yo‘naltiriladigan havola.
failRedirectUrl - to‘lov muvaffaqiyatsiz bo‘lgan taqdirda foydalanuvchi brauzeri yo‘naltiriladigan havola.
Bunga javoban quyidagi qurilish qaytariladi:
Bu yerda yangilik id maydoni – bu to‘lov belgisi bo‘lib, keyinchalik foydalanuvchini to‘lov kartasi ma’lumotlarini kiritish va to‘lovni amalga oshirish sahifasiga yo‘naltirish uchun ishlatiladi.
Ushbu tuzilmadan javob olgach, foydalanuvchini manzili userRedirectUrl maydonida ko'rsatilgan veb-sahifaga yo'naltirish kerak.
Foydalanuvchi harakatlari va OTP kodi
To'lovni amalga oshirish uchun foydalanuvchi to'lov kartasi ma'lumotlarini kiritishi va "To'lash" tugmasini bosishi kerak. Agar karta UZCARD yoki Humo toʻlov tizimlariga tegishli boʻlsa, ular OTP kodini soʻrashadi va SMSdan olingan kodni kiritish uchun shakl ochiladi. Agar karta Visa/Mastercard toʻlov tizimlariga tegishli boʻlsa, bu bosqichda OTP kodi soʻralmaydi.
Agar karta Visa/Mastercard toʻlov tizimlariga tegishli boʻlsa, foydalanuvchiga 3DSecure tekshiruvidan oʻtish uchun OTP kodini kiritish shakli koʻrsatiladi. Shakl bankka tegishli va uning mazmuni bank tomonidan nazorat qilinadi.
Barcha ma'lumotlarni kiritgandan so'ng, foydalanuvchi tugallangan to'lov haqida bildirishnoma oladi va brauzerda muvaffaqiyatli yoki muvaffaqiyatsiz to'lov sahifasi ochiladi. Agar to'lov belgisini yaratishda muvaffaqiyatRedirectUrl va failRedirectUrl maydonlari ko'rsatilgan bo'lsa, muvaffaqiyatli yoki muvaffaqiyatsiz to'lovdan so'ng brauzer ushbu maydonlarda ko'rsatilgan sahifalarga yo'naltiriladi.
Agar token uchun toʻlov allaqachon amalga oshirilgan boʻlsa yoki token yaratilganidan beri 15 daqiqadan koʻproq vaqt oʻtgan boʻlsa, bu token uchun toʻlovni amalga oshirish mumkin boʻlmaydi.
Toʻlov holati olinmoqda
To'lovni amalga oshirgandan so'ng, Operator tizimi to'langan to'lov to'g'risidagi ma'lumotlar bilan Savdogar tizimiga formatda qayta qo'ng'iroq qilish so'rovini bajarishi mumkin.
Muvaffaqiyatli tranzaksiya uchun APPROVED yoki muvaffaqiyatsiz uchun FAILED qiymatlarni qabul qilish mumkin. Agar tranzaksiya muvaffaqiyatsiz bo'lsa, xato maydoni to'ldiriladi (masalan, mablag' yetishmaganligi sababli muvaffaqiyatsiz tranzaksiyalar uchun "INSUFFICIENT_FUNDS" qiymati bilan).
gnkDetail - Davlat soliq qo‘mitasida kvitansiyani fiskalizatsiya qilish to‘g‘risidagi ma’lumotlar bilan muvaffaqiyatli amalga oshirilgan operatsiyalar uchun to‘ldiriladi, bunda qrCodeUrl elektron chekni olish uchun havola bo‘ladi.
Shuningdek, ishning istalgan bosqichida manzilga GET so'rovi orqali to'lov haqidagi dolzarb ma'lumotlarni so'rash mumkin. {{base_checkout_url}}/v1/payment/servicetoken/{{user_service_token}}
Bu erda user_service_token to'lov tokeni identifikatorining qiymatini olishi kerak (yuqoridagi POST user-service-tokens so'roviga javobdagi "id" maydoni).
Javob xuddi shu ma'lumotlarga ega qayta qo'ng'iroq so'rovining asosiy qismidagi kabi tuzilishni o'z ichiga oladi.
Agar token yaratilganidan beri tokenLifespan maydonida koʻrsatilganidan koʻproq soniyalar oʻtgan boʻlsa (sukut boʻyicha 900 yoki 15 daqiqa) va tizim karta maʼlumotlarini yoki foydalanuvchidan toʻlovni amalga oshirish soʻrovini olmagan boʻlsa, toʻlov xato maydonida = “PAYMENT_EXPIRED” holatini oladi.
Xatolar qabul qilindi.
Quyidagi HTTP xato kodlari mumkin:
400 - so'rovda noto'g'ri ma'lumotlar
401 - so'rov ruxsat etilmagan
404 - Tizimda ob'ekt topilmadi yoki chaqirilayotgan URL mavjud emas
500 - kutilmagan server xatosi.
Xato tanasi quyidagi formatda keladi:
detail - xato tavsifi.
code - xato kodi.
path - xatoga sabab bo'lgan so'rovning manzili.
timestamp – xatolik yuz bergan vaqt.
trace - diagnostika uchun so'rov identifikatori.