Bir bosqichli to'lov
Bir bosqichli to'lov prepare_payment
usulida parametr yordamida ko'rsatilgan auto_capture = true
, bu so'rov matnida sukut bo'yicha o'rnatiladi. Bunda to'lov jarayoni, mablag'lar keraksiz darhol, debet qilinadi Hamkordan miqdorni qo'shimcha tasdiqlash.
Ishlash jarayoni
OCTO to‘lov sahifasi orqali to‘lash - Humo/Uzcard (PM)
- Mijoz mahsulot/xizmatni tanlagan;
- Savatda "To'lash" tugmasini bosing;
- Hamkor sayti
prepare_payment
metodi orqali tranzaksiyani boshlaydi; - Bizning Back-end (BE) to‘lov uchun Front-end (FE)ga havola yuboradi;
- Hamkor havolani mijozga yuboradi, u bizning FEga o‘tadi;
- Mijoz to‘lov usulini tanlaydi;
- Bizning FE bank kartasi ma’lumotlarini kiritish uchun ekranga forma yuboradi;
- Mijoz karta ma’lumotlarini to‘ldirib yuboradi;
- Bizning FE OTP kodni kiritish uchun ekranga forma yuboradi;
- Protsessing markazi (PM) mijozga OTP kod yuboradi;
- Mijoz OTP kodni kiritadi*;
- Tekshiruvlardan so‘ng BE protsessing markaziga hisobdan chiqarish so‘rovini yuboradi;
- Protsessing markazi hisobdan chiqarishni tasdiqlaydi yoki rad etadi;
- Biz hamkorni muvaffaqiyatli yoki muvaffaqiyatsiz hisobdan chiqarish haqida xabardor qilamiz;
- Mijoz hamkorning saytiga qayta yo‘naltiriladi.
Muhim!
Uzcard uchun noto‘g‘ri OTP kodlarini kiritishda cheklov mavjud. Agar mijoz OTP kodini kiritishda 3 marta xato qilsa, operatsiya bekor qilinadi va yangi to‘lovni qayd etish talab qilinadi.
OCTO to‘lov sahifasi orqali to‘lash - Visa/MC (PM)
- Mijoz mahsulot/xizmatni tanladi;
- Savatchada "To'lash" tugmasini bosing;
- Hamkor tranzaksiyani
prepare_payment
usuli yordamida boshlaydi; - Bizning Back-end (BE) to'lov uchun bizning Front-end (FE) ga havola yuboradi;
- Hamkor mijozni to'lov uchun bizning FEga yo'naltiradi;
- Mijoz to'lov usulini tanlaydi;
- Bizning FE bank kartasi ma'lumotlarini kiritish uchun ekrandagi shaklni yuboradi;
- Mijoz bank kartasi rekvizitlarini to‘ldiradi va jo‘natadi;
- Bizning FE mijozga OTP kodini kiritish uchun ekrandagi shaklni ko'rsatadi;
- Mijoz Visa/MC PC dan olingan OTP kodini kiritadi;
- Visa/MC PC bizning BE ga hisobdan chiqarilganligi haqidagi tasdiqnomani yuboradi;
- Bizning BE hamkorni muvaffaqiyatli/muvaffaqiyatsiz hisobdan chiqarish haqida xabardor qiladi;
- Bizning BE mijozni Hamkor veb-saytiga yo'naltiradi.
Metodlar
prepare_payment
- URL:
https://secure.octo.uz/prepare_payment
- Method:
POST
- Content-type:
application/json
Test operatsiyalari
Test operatsiyasini o'tkazish uchun prepare_payment
usulini ishga tushirish kerak test
parametrini so'rov tanasida true
qiymati bilan belgilang. Ushbu parametr ixtiyoriy. Agar u ko'rsatilmagan bo'lsa, haqiqiy tranzaksiya yaratiladi.
Sinov operatsiyasini o'tkazish uchun belgilang - test: true
{
"auto_capture": true,
"test": true,
"init_time": "2024-05-02 09:17:00"
}
So‘rov namuna
Muhim!
Bir bosqichli to'lov - auto_capture: true
Ikki bosqichli to'lov - auto_capture: false
{
"octo_shop_id": 123,
"octo_secret": "537da54b-835a-4968-9864-c2ae02c5902e",
"shop_transaction_id": "0000_0000_0000_0000_0010",
"auto_capture": true,
"test": false,
"init_time": "2024-05-02 09:17:00",
"user_data": {
"user_id": "Johnny Depp",
"phone": "998901234567",
"email": "octo@mail.com"
},
"total_sum": 1000.0,
"currency": "UZS",
"description": "TEST_PAYMENT",
"basket": [
{
"position_desc": "Йогурт MANON клубничный",
"count": 2,
"price": 10.0,
"spic": "special_information_for_position"
},
{
"position_desc": "Йогурт MANON банановый",
"count": 1,
"price": 20.0,
"spic": "special_information_for_position"
}
],
"payment_methods": [
{
"method": "bank_card"
},
{
"method": "uzcard"
},
{
"method": "humo"
}
],
"tsp_id": 18,
"return_url": "https://octo.uz" // (URL har doim to'liq bo'lishi kerak),
"notify_url": "https://notify-url.uz",
"language": "uz",
"ttl": 15
}
So‘rov parametrlari
Parametr | Turi | Majburiylik | Tavsif |
---|---|---|---|
octo_shop_id | Integer | Ha | Do‘konning noyob identifikatori (do‘konning Shaxsiy kabinetida mavjud). |
octo_secret | String | Ha | Do‘konning Shaxsiy kabinetida yaratiladigan shaxsiy maxfiy kalit. Saytning xavfsiz hududida saqlanishi kerak. |
shop_transaction_id | String | Ha | Do‘kon tomonidagi tranzaksiya uchun noyob identifikator. Takroriy tranzaksiyalarni oldini olish uchun ishlatiladi. |
auto_capture | Bool | Ha | true bo‘lsa, Octo avtomatik ravishda xaridor hisobidan mablag‘ni chiqarishni tasdiqlaydi. false bo‘lsa, qo‘shimcha tasdiq talab etiladi. |
test | Bool | Ha | Test rejimi to‘lovi yoki yo‘qligini bildiradi. |
init_time | Datetime | Ha | To‘lov yaratilgan vaqt (yyyy-MM-dd HH:mm:ss formatida). |
user_data | Object | Yo‘q | Xaridor haqidagi ma’lumotlar. |
user_data.user_id | String | Ha | Do‘kon ma’lumotlar bazasidagi foydalanuvchi identifikatori. |
user_data.phone | String | Ha | Xaridor telefon raqami. |
user_data.email | String | Ha | Xaridor elektron pochtasi. |
total_sum | Double | Ha | To‘lovning yakuniy miqdori. |
currency | String | Ha | Valyuta: USD, UZS, RUB. |
description | String | Ha | Mahsulot yoki xizmat tavsifi. |
basket | Array | Ha | Savat haqidagi ma’lumotlar. |
basket.position_desc | String | Ha | Pozitsiya nomi. |
basket.count | Int | Ha | Pozitsiya soni. |
basket.price | Double | Ha | Pozitsiya narxi. |
basket.spic | String | Yo‘q | Pozitsiya haqidagi qo‘shimcha ma’lumotlar. |
payment_methods | Array | Yo‘q | To‘lov usullari (bank_card, uzcard, humo). |
payment_methods.method | String | Ha | To‘lov usuli nomi. |
tsp_id | Int | Yo‘q | Savdo va xizmat ko‘rsatish korxonasi identifikatori. |
return_url | String | Ha | Xaridor to‘lov tugagandan so‘ng yo‘naltiriladigan URL. URL noyob identifikatorni o‘z ichiga olishi kerak. |
notify_url | String | Yo‘q | Octo serveri tomonidan yuboriladigan bildirishnomalar uchun URL. Agar belgilangan bo‘lmasa, umumiy URL ishlatiladi. |
language | String | Ha | To‘lov sahifasi tili (oz - lotincha o‘zbek, uz - kirill o‘zbek, en - ingliz, ru - rus). |
ttl | Int | Yo‘q | To‘lov amal qilish muddati (daqiqalarda). |
Muvaffaqiyatli javob namuna
{
"error": 0,
"data": {
"shop_transaction_id": "c9211e0f-c6ba-4d97-b8be-fb230ef3985b",
"octo_payment_UUID": "e3f40dc3-4955-412a-853a-2ddd28d3201f",
"status": "created",
"octo_pay_url": "https://pay2.octo.uz/pay/e3f40dc3-4955-412a-853a-2ddd28d3201f?language=uz",
"refunded_sum": 0,
"total_sum": 1000.0
},
"apiMessageForDevelopers": "",
"shop_transaction_id": "c9211e0f-c6ba-4d97-b8be-fb230ef3985b",
"octo_payment_UUID": "e3f40dc3-4955-412a-853a-2ddd28d3201f",
"status": "created",
"octo_pay_url": "https://pay2.octo.uz/pay/e3f40dc3-4955-412a-853a-2ddd28d3201f?language=uz",
"refunded_sum": 0,
"total_sum": 1000.0
}
Muvaffaqiyatli javob parametrlari
Parametr | Turi | Majburiyligi | Tavsif |
---|---|---|---|
error | int | Ha (agar error=0 bo'lsa) | Xatolik kodi (0 — xatolik yo'q). |
data | object | Ha (agar error=0 bo'lsa) | To'lov haqidagi ma'lumotlarni o'z ichiga olgan asosiy obyekt. |
data.shop_transaction_id | string | Ha (agar error=0 bo'lsa) | Do'kon tomonidan berilgan tranzaksiyaning unikallik identifikatori. |
data.octo_payment_UUID | string | Ha (agar error=0 bo'lsa) | Octo tizimidagi to'lovning unikallik identifikatori. |
data.status | string | Ha (agar error=0 bo'lsa) | To'lov holati. |
data.octo_pay_url | string | Ha (agar error=0 bo'lsa) | Octo tizimida to'lovga o'tish uchun URL. |
data.refunded_sum | double | Yo'q | Qaytarilgan summa (agar qaytim bo'lsa). |
data.total_sum | double | Ha (agar error=0 bo'lsa) | To'lovning umumiy summasi. |
apiMessageForDevelopers | string | Yo'q | API tomonidan taqdim etilgan dasturchilar uchun xabar (muvaffaqiyatli holatda bo'sh bo'ladi). |
shop_transaction_id | string | Ha (agar error=0 bo'lsa) | data obyektidagi shop_transaction_id ning dublikati. |
octo_payment_UUID | string | Ha (agar error=0 bo'lsa) | data obyektidagi octo_payment_UUID ning dublikati. |
status | string | Ha (agar error=0 bo'lsa) | data obyektidagi status ning dublikati. |
octo_pay_url | string | Ha (agar error=0 bo'lsa) | data obyektidagi octo_pay_url ning dublikati. |
refunded_sum | double | Ha (agar error=0 bo'lsa) | data obyektidagi refunded_sum ning dublikati. |
total_sum | double | Ha (agar error=0 bo'lsa) | data obyektidagi total_sum ning dublikati. |
Muvaffaqiyatsiz javob namuna
{
"error": 2,
"errMessage": "Wrong secret",
"data": null,
"errorMessage": "Wrong secret",
"apiMessageForDevelopers": "Maydon errorMessage eskirgan, iltimos, javoblarni unifikatsiyalash uchun errMessage ga o'ting. Shuningdek, kelajakda error va errMessage dan tashqari barcha maydonlar data ichida uzatiladi. Batafsil ma'lumot uchun xizmat texnik yordami bilan bog'laning."
}
Muvaffaqiyatsiz javob namuna
Parametr | Turi | Majburiyligi | Tavsif |
---|---|---|---|
error | int | Ha | Xatolik kodi (0 xatolik yo'qligini bildiradi). |
errMessage | string | Ha | Xatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa). |
data | object | Yo'q | Tranzaksiyaning asosiy ma'lumotlari (xatolik yuz berganda null bo'lishi mumkin). |
errorMessage | string | Ha | Xatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa). |
apiMessageForDevelopers | string | Yo'q | Texnik xabar (qo'shimcha ma'lumot uchun maydon). |
Muhim!
errorMessage
maydoni eskirgan, javoblarni unifikatsiya qilish uchun errMessage
-ga o'tishni so'raymiz. Iltimos, shuni yodda tutingki, kelajakda error
va errMessage
-dan tashqari barcha maydonlar data-ga yuboriladi. Agar javoblar tuzilmasi haqida savollaringiz bo‘lsa, Octo texnik yordam xizmatiga murojaat qiling.