Skip to content

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)

  1. Mijoz mahsulot/xizmatni tanlagan;
  2. Savatda "To'lash" tugmasini bosing;
  3. Hamkor sayti prepare_payment metodi orqali tranzaksiyani boshlaydi;
  4. Bizning Back-end (BE) to‘lov uchun Front-end (FE)ga havola yuboradi;
  5. Hamkor havolani mijozga yuboradi, u bizning FEga o‘tadi;
  6. Mijoz to‘lov usulini tanlaydi;
  7. Bizning FE bank kartasi ma’lumotlarini kiritish uchun ekranga forma yuboradi;
  8. Mijoz karta ma’lumotlarini to‘ldirib yuboradi;
  9. Bizning FE OTP kodni kiritish uchun ekranga forma yuboradi;
  10. Protsessing markazi (PM) mijozga OTP kod yuboradi;
  11. Mijoz OTP kodni kiritadi*;
  12. Tekshiruvlardan so‘ng BE protsessing markaziga hisobdan chiqarish so‘rovini yuboradi;
  13. Protsessing markazi hisobdan chiqarishni tasdiqlaydi yoki rad etadi;
  14. Biz hamkorni muvaffaqiyatli yoki muvaffaqiyatsiz hisobdan chiqarish haqida xabardor qilamiz;
  15. 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 formasi orqali to‘lash - Humo/Uzcard (PM)

OCTO to‘lov sahifasi orqali to‘lash - Visa/MC (PM)

  1. Mijoz mahsulot/xizmatni tanladi;
  2. Savatchada "To'lash" tugmasini bosing;
  3. Hamkor tranzaksiyani prepare_payment usuli yordamida boshlaydi;
  4. Bizning Back-end (BE) to'lov uchun bizning Front-end (FE) ga havola yuboradi;
  5. Hamkor mijozni to'lov uchun bizning FEga yo'naltiradi;
  6. Mijoz to'lov usulini tanlaydi;
  7. Bizning FE bank kartasi ma'lumotlarini kiritish uchun ekrandagi shaklni yuboradi;
  8. Mijoz bank kartasi rekvizitlarini to‘ldiradi va jo‘natadi;
  9. Bizning FE mijozga OTP kodini kiritish uchun ekrandagi shaklni ko'rsatadi;
  10. Mijoz Visa/MC PC dan olingan OTP kodini kiritadi;
  11. Visa/MC PC bizning BE ga hisobdan chiqarilganligi haqidagi tasdiqnomani yuboradi;
  12. Bizning BE hamkorni muvaffaqiyatli/muvaffaqiyatsiz hisobdan chiqarish haqida xabardor qiladi;
  13. Bizning BE mijozni Hamkor veb-saytiga yo'naltiradi.

Логотип

OCTO formasi orqali to‘lash - Visa/MC (PM)

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

json
{
    "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

json
{
    "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

ParametrTuriMajburiylikTavsif
octo_shop_idIntegerHaDo‘konning noyob identifikatori (do‘konning Shaxsiy kabinetida mavjud).
octo_secretStringHaDo‘konning Shaxsiy kabinetida yaratiladigan shaxsiy maxfiy kalit. Saytning xavfsiz hududida saqlanishi kerak.
shop_transaction_idStringHaDo‘kon tomonidagi tranzaksiya uchun noyob identifikator. Takroriy tranzaksiyalarni oldini olish uchun ishlatiladi.
auto_captureBoolHatrue bo‘lsa, Octo avtomatik ravishda xaridor hisobidan mablag‘ni chiqarishni tasdiqlaydi. false bo‘lsa, qo‘shimcha tasdiq talab etiladi.
testBoolHaTest rejimi to‘lovi yoki yo‘qligini bildiradi.
init_timeDatetimeHaTo‘lov yaratilgan vaqt (yyyy-MM-dd HH:mm:ss formatida).
user_dataObjectYo‘qXaridor haqidagi ma’lumotlar.
user_data.user_idStringHaDo‘kon ma’lumotlar bazasidagi foydalanuvchi identifikatori.
user_data.phoneStringHaXaridor telefon raqami.
user_data.emailStringHaXaridor elektron pochtasi.
total_sumDoubleHaTo‘lovning yakuniy miqdori.
currencyStringHaValyuta: USD, UZS, RUB.
descriptionStringHaMahsulot yoki xizmat tavsifi.
basketArrayHaSavat haqidagi ma’lumotlar.
basket.position_descStringHaPozitsiya nomi.
basket.countIntHaPozitsiya soni.
basket.priceDoubleHaPozitsiya narxi.
basket.spicStringYo‘qPozitsiya haqidagi qo‘shimcha ma’lumotlar.
payment_methodsArrayYo‘qTo‘lov usullari (bank_card, uzcard, humo).
payment_methods.methodStringHaTo‘lov usuli nomi.
tsp_idIntYo‘qSavdo va xizmat ko‘rsatish korxonasi identifikatori.
return_urlStringHaXaridor to‘lov tugagandan so‘ng yo‘naltiriladigan URL. URL noyob identifikatorni o‘z ichiga olishi kerak.
notify_urlStringYo‘qOcto serveri tomonidan yuboriladigan bildirishnomalar uchun URL. Agar belgilangan bo‘lmasa, umumiy URL ishlatiladi.
languageStringHaTo‘lov sahifasi tili (oz - lotincha o‘zbek, uz - kirill o‘zbek, en - ingliz, ru - rus).
ttlIntYo‘qTo‘lov amal qilish muddati (daqiqalarda).

Muvaffaqiyatli javob namuna

json
{
    "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

ParametrTuriMajburiyligiTavsif
errorintHa (agar error=0 bo'lsa)Xatolik kodi (0 — xatolik yo'q).
dataobjectHa (agar error=0 bo'lsa)To'lov haqidagi ma'lumotlarni o'z ichiga olgan asosiy obyekt.
data.shop_transaction_idstringHa (agar error=0 bo'lsa)Do'kon tomonidan berilgan tranzaksiyaning unikallik identifikatori.
data.octo_payment_UUIDstringHa (agar error=0 bo'lsa)Octo tizimidagi to'lovning unikallik identifikatori.
data.statusstringHa (agar error=0 bo'lsa)To'lov holati.
data.octo_pay_urlstringHa (agar error=0 bo'lsa)Octo tizimida to'lovga o'tish uchun URL.
data.refunded_sumdoubleYo'qQaytarilgan summa (agar qaytim bo'lsa).
data.total_sumdoubleHa (agar error=0 bo'lsa)To'lovning umumiy summasi.
apiMessageForDevelopersstringYo'qAPI tomonidan taqdim etilgan dasturchilar uchun xabar (muvaffaqiyatli holatda bo'sh bo'ladi).
shop_transaction_idstringHa (agar error=0 bo'lsa)data obyektidagi shop_transaction_id ning dublikati.
octo_payment_UUIDstringHa (agar error=0 bo'lsa)data obyektidagi octo_payment_UUID ning dublikati.
statusstringHa (agar error=0 bo'lsa)data obyektidagi status ning dublikati.
octo_pay_urlstringHa (agar error=0 bo'lsa)data obyektidagi octo_pay_url ning dublikati.
refunded_sumdoubleHa (agar error=0 bo'lsa)data obyektidagi refunded_sum ning dublikati.
total_sumdoubleHa (agar error=0 bo'lsa)data obyektidagi total_sum ning dublikati.

Muvaffaqiyatsiz javob namuna

json
{
    "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

ParametrTuriMajburiyligiTavsif
errorintHaXatolik kodi (0 xatolik yo'qligini bildiradi).
errMessagestringHaXatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa).
dataobjectYo'qTranzaksiyaning asosiy ma'lumotlari (xatolik yuz berganda null bo'lishi mumkin).
errorMessagestringHaXatolik haqida xabar (agar xatolik sodir bo'lgan bo'lsa).
apiMessageForDevelopersstringYo'qTexnik 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.