Tashqi tizimlar (ICAN)
ICAN kredit tizimi va hamkor tizimlari Wasyt ga to‘g‘ridan-to‘g‘ri, server → server, foydalanuvchi tokeni o‘rniga maxfiy kalit bilan murojaat qiladi.
Sarlavhalar
| Sarlavha | Kim yuboradi | Qiymati |
|---|---|---|
External-System-Secret-Key | hammasi | Tashqi tizim kaliti. Noto‘g‘ri yoki bo‘sh bo‘lsa, istalgan metod 404 qaytaradi |
Company-Ican-Uuid | ICAN | Kompaniyaning ICAN dagi UUID si |
Company-Wasyt-Uuid | ICAN, hamkor | Kompaniyaning Wasyt dagi UUID si (wasyt_uuid) |
Company-Partner-Uuid | hamkor (/external/partner/*) | Kompaniyaning hamkordagi UUID si |
Accept | hammasi | application/json |
Accept-Language | hammasi | ru, uz yoki oz — nomlar va xatolar tili |
- Kompaniya sarlavhasi so‘rov kimning nomidan ketayotganini belgilaydi: tizim shu kompaniya direktori sifatida ishlaydi va uning filiallarini ko‘radi. Avval
Company-Ican-Uuid(hamkorda —Company-Partner-Uuid), keyinCompany-Wasyt-Uuidtekshiriladi. - Kompaniya o‘chirilganlari bilan birga qidiriladi. Kredit metodlari (
trade-sale,trade-sale-transaction,seller-cart,external-credit-payment) o‘chirilgan kompaniya yoki filial uchun ham to‘liq ishlaydi.
Kalit faqat serverda
Kalit brauzer yoki mobil ilovaga tushmasligi kerak: u bilan istalgan kompaniya nomidan ish ko‘rish mumkin.
Kredit shartnomasi bosqichma-bosqich
- Ma’lumotnomalar.
GET /external/credit/records/{type}cashbox,stockvaproductbilan (filter[stock_id],filter[name_or_barcode]) — sotuv uchun kassa, ombor va tovarlar ID lari. - Hisob-kitob.
POST /external/credit/trade-sale/products-total-priceqatorlarni tekshiradi va hech narsani saqlamaydi:products_total_priceva har bir qatorning minimal narxiproducts[].effective_min_priceni qaytaradi. - Sotuv.
POST /external/credit/trade-sale/createcompany_wasyt_uuid, har bir qator narxi,source_data(shartnoma nusxasi) vasold_amountbilan. Tovar ombordan chiqariladi, sotuvin_progressholatida yaratiladi; uningidsi keyingi barcha bosqichlarda kerak. - To‘lovlar. Mijozning har bir to‘lovi —
POST /external/credit/trade-sale-transaction/createsale_id,credit_transaction_idvacredit_statusbilan. To‘lovlarsold_amountni qoplaganda sotuvcompletedbo‘ladi. Javobdagiidniwasyt_payment_idsifatida saqlang. - Pulni qaytarish.
POST /external/credit/trade-sale-transaction/refund-informationpayment_idbilan to‘lov kassasi,paid_amountva kassaning to‘lov turlari bo‘yicha nolga teng bo‘lmagan qoldiqlarini qaytaradi. Qaytarishning o‘zini kredit tizimi o‘zida o‘tkazadi. - Bekor qilish.
POST /external/credit/trade-sale/cancelinvoice_idbilanin_progressholatidagi sotuvni bekor qiladi: tovar omborga qaytadi, to‘langan summa sotuv kassasidan yechiladi.
Bitta to‘lov — bir marta
credit_transaction_id kompaniya doirasida yagona. Xuddi shu to‘lov qayta yuborilsa, 422 qaytadi va ikkinchi marta o‘tkazilmaydi, shuning uchun tarmoq xatosidan keyin so‘rovni xavfsiz takrorlash mumkin.
ICAN to‘lov turlari
Kredit tizimining to‘lov turlarini o‘zgartirmasdan yuborish mumkin — Wasyt ularni o‘z turlariga o‘giradi:
| ICAN turi | Wasyt turi |
|---|---|
cash | cash |
bank, terminal, mib, blacklist | bank |
auto_payment, auto_payment_my_uzcard, auto_payment_uniaccess, auto_payment_prizma | bank |
card, card_client, card_click, card_payme, card_uzum | card |
discount, system | system — to‘lovga hisoblanadi, kassa o‘zgarmaydi |
trade-sale-transaction/create da auto_payment* avtoyechimlari kompaniyaning asosiy kassasiga (agar bo‘lsa), qolganlari — cashbox_id kassasiga, u bo‘lmasa — sotuv kassasiga tushadi. Kredit sotuvlarida debt (qarzga) taqiqlangan, external-credit-payment esa faqat cash, card va bank ni qabul qiladi.
Wasyt da sotuvi yo‘q shartnomalar
Ombor ulanishidan oldin tuzilgan shartnomalarning Wasyt da sotuvi yo‘q. Ularning to‘lovlarini POST /external/credit/external-credit-payment/create o‘tkazadi: shartnoma so‘rovning o‘zida tavsiflanadi (credit_id, credit_number, mijoz), pul kassaga tushadi, lekin sotuv tushumiga kirmaydi. Qaytarish — xuddi shu metod type = outcome va qaytariladigan to‘lovning payment_id si bilan; qaytarish oynasi ma’lumotlarini o‘sha refund-information beradi.
Sotuvchi tanlovlari
GET /external/credit/records/seller—filter[creator_id]filtri uchun sotuvchilar.GET /external/credit/seller-cart— tanlovlar; sotiladiganlari:filter[status][]=picking&filter[status][]=sentvafilter[stock_id].GET /external/credit/seller-cart/{model}/cheque— tanlov chek sifatida, joriy narxlar va qoldiqlar bilan.trade-sale/createseller_cart_idbilan: tanlovcompletedholatini oladi, sotuv (va sozlangan bo‘lsa, bonus) uning sotuvchisiga yoziladi.
Sinxronlash
ICAN o‘z kompaniyalari va manzil ma’lumotnomalarini /external/sync/* ga yuboradi: company, region, region-district, region-mfy. Yozuv ican_uuid bo‘yicha aniqlanadi: yangisi yaratiladi, mavjudi yangilanadi, shuning uchun bir xil so‘rovni qayta yuborish mumkin.
Hamkorlar
GET /external/partner/records/{type}region,region_district,region_mfybilan —wasyt_uuidli manzil ma’lumotnomalari; faqat kalit kerak.POST /external/partner/companyhamkor kompaniyasini yaratadi (tuman —district_wasyt_uuid) va uningwasyt_uuidsini qaytaradi. Shuwasyt_uuidbilan qayta so‘rov kompaniyani yangilaydi.- So‘ng kompaniya ma’lumotlari
records/{type}orqaliCompany-Wasyt-Uuid(yokiCompany-Partner-Uuid) sarlavhasi bilan o‘qiladi: filiallar, kassalar, omborlar, qoldiqlar, tovarlar.
POST /external/partner/find-by-url kalitsiz ishlaydi: sayt manzili bo‘yicha hamkorni va uning bezagini qaytaradi.

