Skip to content

Hisob-kitob qilish

Kalit ro‘yxatdan o‘tkazilgandan so‘ng, tashabbuskor qo‘lda yoki mijozlarga hisob-kitob qilish uchun avtomatlashtirishning bir qismi sifatida ishlatilishi mumkin.

Qo‘l amaliyoti

Qo‘lda bajarilgan operatsiya tabiatan HyPe tashabbuskorining kalitni yaratish va ro‘yxatdan o‘tish kabi ma’muriy operatsiyalariga o‘xshash bo‘lib, standart kiritish uchun JSON so‘rovini yuborishda operatorlar guruhi a’zosi sifatida buyruq berishni talab qiladi:

sh
cat src/examples/invoice_simple.json | aelucrative-hype-initiator invoice

Shuning uchun yangi hisob berish imkoniyatiga ega bo‘lish uchun hisob ma’lumotlarini o‘z ichiga olgan JSON faylini soxtalashtirish kerak.

JSON hisobiga so‘rov

Hisobvaraq-faktura so‘rovi - bu yaratilishi kerak bo‘lgan hisobvaraq tavsiflangan hujjat. Masalan:

json
{
        "version":1,
        "document": "aehype_invoice",
        "payload" : {
                "invoice" : "TEST-2024",
                "store": "testingstore",
                "total": 600000,
                "fiscals": [
                        {
                                "name": "Услуги по размещению рекламы и объявлений в программном обеспечении, предоставляемые клиентом",
                                "amount" : 1,
                                "code_mxik": "10305008004000000",
                                "vat": 0,
                                "vat_price": 0,
                                "price_total": 600000,
                                "price_per_unit": 600000,
                                "code_mxik_package": "1546606"
                        }
                ]
        }
}

U "version":1 ", " "document":"aehype_invoice" " va "payload": {... } " maydonlaridan iborat sarlavhani o‘z ichiga oladi, ular o‘zgarmas va mavjud bo‘lishi kerak. Ularning funksiyasi Giper Tashabbuskor versiyasiga mos kelmaydigan yomon qabul qilish so‘rovini yubormaslik kafolatidir.

payload maydoni quyidagi afsonaga muvofiq invoys spetsifikatsiyasi bilan to‘ldirilishi kerak:

MaydonTurTavsifRemarkalar
invoiceUTF-8 QatorHisob identifikatori Siderik yilda o‘ziga xos bo‘lishi kerak (Yerning qo‘zg‘almas yulduzlarga nisbatan Quyosh atrofidagi orbitasi).izohlarga qarang
storeUTF-8 Qator (Aleff raqamli ASCII quyi paketi)Do‘kon identifikatori kalit bilan birga. Ma’muriy registratsiya bo‘yicha ma’lum.
totalUInt64"Tiyin" shaklida to‘lash uchun so‘m miqdori. Masalan, 100 so‘m = 10000.
fiscalsMassiv: FiscalItemHar bir to‘lov tizimi provayderining cheklovlariga muvofiq har bir band bo‘yicha fiskal ma’lumotlarni taqdim etadiizohlarga qarang

Легенда для FiscalItem:

ПолеТипОписаниеРемарки
nameUTF-8 QatorFiskal kvitansiyani ko‘rsatish punktining nomi
amountUInt32Fiskal kvitansiyada ko‘rsatiladigan band summasi
code_mxikUTF-8 Qator (raqamli ASCII qism to‘plami)Tasnif tizimidan kod
vatUInt8QQS foizi ("QQSsiz" va "QQS 0%" o‘rtasida farq yo‘q)
vat_priceUInt64O‘zbek so‘mida QQS (Tiyn)
price_totalUInt64O‘zbek so‘midagi yakuniy summa (Tiyin)
price_per_unitUInt64"amount" maydonining bir birligi narxi O‘zbekiston so‘mida (Tiyin)
code_mxik_unitsUInt64Tasnif tizimidagi birlik kodi (La’nat)izohlarga qarang
code_mxik_packageUTF-8 Qator (raqamli ASCII qism to‘plami)Tasnif tizimida qadoqlash kodiizohlarga qarang

Izohlar

invoice

Hisobvaraq-fakturaning noyob identifikatorini abadiy saqlash tavsiya etiladi, ammo bu har doim ham mumkin emasligini taxmin qilish oqilona bo‘ladi. Giperpiron hisobvaraq-faktura ma’lumotlarini kamida bitta siderik yil +/- joriy etish xususiyati chegarasi davomida saqlaydi. Shuning uchun quyidagilarni kafolatlash muhim:

  • Alohida buyurtmalar uchun invoyslar bir xil bo‘lishi mumkin emas.
  • Alohida mijozlar uchun hisoblar bir xil bo‘lishi mumkin emas.
  • Noyoblik kafolatlari siderik yil davomida saqlanib qolishi kerak.

Agar foydalanuvchi ushbu kafolatlarga rioya qilmasa, Giperpiron to‘lov holati ushbu buyurtmalarga mos kelishini kafolatlamaydi.

INFO

Quyidagi misol, agar so‘ralgan kafolatlarga rioya qilinmasa, lekin eng kutilmagan tarzda buzilsa, u nima uchun ishlayotgandek tuyulishini tushuntiruvchi gipotetik ssenariydir.

Normal ishlashda Giperpiron har bir invoys so‘rovi noyob ekanligidan kelib chiqadi. Tarmoq buzilgan va ma’lumotlar shikastlangan taqdirda, Giperpiron invoys identifikatori yordamida ma’lumotlarni muvofiqlashtirishga urinishi mumkin.

fiscals

Bu maydon tashabbuskor versiyasiga xos bo‘lib, agar farqlar sezilarli bo‘lsa, tashabbuskorni API bilan muloqot qila olmasligiga olib kelishi mumkin. Tashabbuskorni qo‘llash darajasini ko‘rib chiqishda har doim ushbu tuzilishga rioya qilish muhimdir.

code_mxik_units & code_mxik_package

Ushbu kodlar quyi ta’minotchilarda joriy etishda ma’lum muammolarga ega. Hozirda birliklar maydoni ixtiyoriy, qadoqlash maydoni esa hatto qadoqlash mumkin bo‘lmagan holatlar (xizmatlar) uchun ham majburiy hisoblanadi. Bu jumboqning yechimi keyinroq e’lon qilinadi. Agar bu sizning holatingiz uchun majburiy bo‘lmasa, code_mxik_units ni e’tiborsiz qoldirish haqida o‘ylab ko‘ring. Agar bunday bo‘lmasa, Elukrit bilan oldindan bog‘laning.

Javob

Javoblar dasturida so‘rov yuklamasini o‘z ichiga olgan autofeed JSON taqdim etiladi. Qo‘lda ishlatilganda, bu material tekshirilishi va mazmuniga qarab harakatlar qabul qilinishi kerak.

Asosiy rad etish holati

Agar GiPe xizmati bilan aloqa o‘rnatilmasa, asosiy nosozlik yuz berishi mumkin. Bunday holda, standart chiqishda haqiqiy JSON bo‘lmaydi (lekin inson o‘qishi mumkin bo‘lgan ma’lumotlarni o‘z ichiga olishi mumkin).

Standart xatolar oqimi odatda bu turdagi xato nima uchun sodir bo‘lganining batafsil tushuntirishini o‘z ichiga oladi.

Rad etish holati

{"version":1,"document":"aehype_status_container","payload":{"store":"testingstore","invoice":"TEST-2024","remote":{"fault":"bad_signature"}}}

Xatolikni ./payload/remote/fault yo‘li orqali aniqlash mumkin. Muayyan holatda bu bad signature ni ko‘rsatadi. Bu yoki Tashabbuskor tomonidan Gipening eskirgan tarzda amalga oshirilishi natijasida yaratilgan noto‘g‘ri imzo yoki ro‘yxatdan o‘tkazishning rad etilishi tufayli yuzaga keladi.

Muvaffaqiyat holati

{"version":1,"document":"aehype_status_container","payload":{"store":"testingstore","invoice":"TEST-2024","remote":{"actions":{"gateway":"https://darvoza.hyperpyron.uz/v1/tolov/testingstore/1030023913-TEST-2024/"},"identifier":"1030023913-TEST-2024"}}}

Ko‘rinib turibdiki, bizda muvaffaqiyatli hisob-kitob mavjud. Mijozni to‘lov orqali to‘g‘ri yo‘naltirish imkoniyatiga ega bo‘lish uchun, keyinchalik uni qaytarish orqali hisob-kitob holatini so‘rash imkoniyatiga ega bo‘lish uchun barcha javobni faylda saqlash muhimdir. Demak, nomi autofeed.

./payload/remote/actions/gateway bo‘limida taqdim etilgan havola mijozga to‘lovlarni qayta yo‘naltirish shlyuziga kirish uchun yuborilishi kerak. U har bir invoys so‘rovi chaqiruvi uchun tasodifiy ravishda yaratiladi va unikal hisoblanadi.

Keltirilgan misolda bu quyidagicha bo‘ladi:

https://darvoza.hyperpyron.uz/v1/tolov/testingstore/1030023913-TEST-2024/

INFO

Quyidagi muhim ma’lumotlar yo‘qolgan bo‘lsa, invoys holatini so‘rash imkonsiz:

  • invoice ID(so‘rovdan)
  • store name(so‘rovdan)
  • identifier(autofeed -dan)

Agar autofeed yo‘qolgan bo‘lsa, uni yuqoridagi komponentlardan qo‘lda qayta tiklash mumkin, ularni javob namunasidan tayyorlanishi mumkin bo‘lgan shablonga ulash orqali, lekin bu tavsiya etilmaydi.

Amalga oshirish bo‘yicha maslahatlar

Har doim JSON hujjatining yuqori darajasidagi versiyani tekshirish va uning kutilgan holatga mos kelishini ta’minlash tavsiya etiladi. Ushbu hujjatda 1 versiyasi bo‘yicha qo‘llanma mavjud.

Shundan so‘ng, har doim aehype_status_container bo‘yicha hujjat turini tekshirish tavsiya etiladi. Buni protokolning qo‘shimcha yaxshilanishlaridan farqlash kerak, ular hatto o‘sha versiya uchun ham qo‘shimcha turdagi hujjatlar ko‘rinishida kommutatsiya usuli bilan qo‘shilishi mumkin. Ushbu qo‘shimcha hujjatlar dasturiy ta’minot bilan avtomatlashtirishni yaxshilash uchun nosozlik turini aniqroq uzatish uchun ishlatilishi mumkin, chunki foydalanish andozalarini oldindan bashorat qilish mumkin emas.

Dasturiy ta’minotingiz tushunmagan narsani har doim muhandislik aralashuvini talab qiladigan xato deb hisoblang.