Qut Pay Сайт Кабинет Білім базасы Нұсқаулықтар API құжаттамасы ҚАЗРУС
Басты бетБілім базасы → Анықтамалық

OpenCart 4 кеңейтуі

Жаңартылды: 2026-09-14 · Markdown нұсқасы

Қысқаша

Кеңейту OpenCart 4 дүкеніне «Оплата через Kaspi (QR)» әдісін қосады: сатып алушы тапсырысты растайды → Qut Pay төлем бетіне өтеді (QR + Kaspi сілтемесі) → Kaspi қосымшасында төлейді. Тапсырыс күйі webhook арқылы автоматты жаңарады, ақша тікелей сіздің Kaspi Pay шотыңызға түседі.

Жүктеу: https://api.qut.kz/downloads/qutpay.ocmod.zip

Архивтің атауы маңызды: OpenCart кеңейту кодын (qutpay) файл атынан алады. Атын өзгертпеңіз.

Талаптар

НеМәні
OpenCart4.0.2.0 және жоғары
PHP8.0 және жоғары, curl мен json кеңейтулерімен
Дүкен валютасыKZT (₸). Басқа валютада әдіс кассада көрінбейді
СайтИнтернеттен https арқылы қолжетімді болуы керек, әйтпесе продакшенде webhook жетпейді
Qut PayKaspi кассирі қосылған ұйым (sandbox-та сынау үшін кассир керек емес)

1-қадам. Орнату

  1. Әкімшілік панель → Extensions → InstallerUploadqutpay.ocmod.zip файлын таңдаңыз. Жүктелген соң «Qut Pay (Kaspi QR)» жолының қасындағы жасыл Install батырмасын басыңыз.
  2. Extensions → Extensions → Payments тізімінен «Qut Pay (Kaspi QR)» жазбасын тауып, жасыл плюс батырмасын басыңыз. Осы сәтте oc_qutpay_invoice кестесі жасалады.
  3. Сол жерден Edit басып, баптауға көшіңіз.

2-қадам. Кілт пен webhook

Кабинет: https://qut.kz/app

  1. Интеграциялар → API кілттері → атауы ретінде дүкеніңізді жазып, Жасау. Кілт бір рет көрсетіледі, бірден көшіріп алыңыз.
  2. Кеңейту баптауындағы «Адрес webhook» өрісі оқуға ғана арналған — оны көшіріңіз. Ол мынадай түрде болады:

`` https://ДҮКЕНІҢІЗ/index.php?route=extension/qutpay/payment/qutpay.webhook ``

  1. Кабинет → Интеграциялар → Webhook → сол адресті қосыңыз, «Кілт» тізімінен жаңа кілтті таңдаңыз → Жасау. Көрсетілген құпияны көшіріп, кеңейтудегі «Секрет webhook» өрісіне қойыңыз.

Құпия болмаса тапсырыстар автоматты түрде төленген деп белгіленбейді — кеңейту 503 қайтарады да, біз жеткізуді қайталай береміз.

3-қадам. Баптау

ӨрісНе қою керек
API-ключ2-қадамдағы кілт. Қасындағы «Проверить ключ» батырмасы API-ге сұрау жіберіп, кілттің жарамдылығын тексереді
Адрес webhookОқуға ғана. Кабинетке көшіріңіз
Секрет webhookКабинетте адрес қосқанда бір рет көрсетілген мән
Адрес APIhttps://api.qut.kz — өзгертпеңіз
Ожидание оплатыТапсырыс расталып, сатып алушы төлем бетіне жіберілген сәттегі күй
ОплаченТөлем расталған сәттегі күй. Цифрлық тауарға әдетте «Выполнен»
Счёт истёк / Счёт отменён / ВозвратСәйкес күйлер. Қажет болмаса «не менять статус» таңдауға болады
Геозона, Статус, Порядок сортировкиБасқа төлем әдістеріндегідей
Лог отладкиСынау кезінде қосыңыз: жазбалар storage/logs/qutpay.log файлына түседі

Статус ауыстырғышын қосып, сақтаңыз.

Әдепкі күй идентификаторлары стандартты OpenCart орнатуына сай қойылған (1 Pending, 2 Processing, 14 Expired, 7 Canceled, 11 Refunded). Дүкеніңізде күйлер өзгертілген болса, тізімнен қолмен таңдаңыз.

Тапсырыс күйі қалай ауысады

  1. Растау қадамында сатып алушы батырманы басады. Кеңейту POST /api/v1/invoices шақырады: сома, «Дүкен атауы — заказ №N» сипаттамасы, externalOrderId — тапсырыс нөмірі, customer (телефон 7XXXXXXXXXX пішіміне келтіріледі), metadata ішінде дүкен мен тапсырыс белгілері, Idempotency-Keyoc-{тапсырыс}-….
  2. Счёт oc_qutpay_invoice кестесіне жазылады, тапсырысқа «Ожидание оплаты» күйі қойылады, сатып алушы payUrl бетіне бағытталады. Сатып алушы қайтып келіп, батырманы қайта бассa, ал ескі счёт әлі ашық және сома өзгермеген болса — сол payUrl қайта пайдаланылады.
  3. Webhook келгенде қолтаңба өзгертілмеген дене бойынша тексеріледі, 5 минуттан ескі белгі қабылданбайды. Өңдеу (счёт, күй) жұбы бойынша идемпотентті.
ОқиғаНе болады
paid«Оплачен» күйі, тарихқа чек нөмірі мен сілтемесі жазылады. Счёт сомасы тапсырыс сомасына сәйкес келмесе — күй өзгермейді, тарихқа ескерту түседі
expired / cancelledСәйкес күй, бірақ тапсырысты менеджер processing/complete етіп қойған болса — тимейді
refunded«Возврат» күйі
partially_refundedТек тарихқа жазба
Кеш төлем (late: true)Счёт өтіп кеткен болса да тапсырыс төленген деп белгіленеді
  1. Сатып алушы қайтқанда кеңейту GET /api/v1/invoices/{id}?live=1 сұрайды. Счёт төленген болса — стандартты checkout/success бетіне жібереді (себет тазарады). Әйтпесе күту беті көрсетіледі: «Проверить ещё раз» (8 секунд сайын өзі жаңарады), «Открыть страницу оплаты Kaspi», «Вернуться к оформлению».

Webhook жауаптары: 200 — қабылданды, 401 — қолтаңба жарамсыз, 400 — дене бұзылған, 503 — кеңейту өшірулі немесе құпия қойылмаған.

Қайтару

Әкімшілік панельден қайтару жасалмайды. Қайтаруды Qut Pay кабинетінен жасаңыз: Счёттар → счётты ашу → Қайтару. Содан кейін invoice.refunded оқиғасы келіп, OpenCart тапсырысы сіз таңдаған «Возврат» күйіне ауысады.

Ішінара қайтару жасасаңыз, тапсырыс күйі өзгермейді — тарихқа жазба ғана түседі. Қайтару туралы толығырақ: Қайтару API.

Сынау

Sandbox кілтімен (qp_test_…) тапсырыс жасаңыз. Төлем бетінде «[Sandbox] төлеу» батырмасы болады, ол төлемді имитациялайды — webhook бұл кезде шынайы жіберіледі, күйлердің дұрыс ауысқанын толық тексере аласыз.

Live-қа көшкенде qp_live_… кілтін қойып, шағын сомаға бір тапсырыс жасап тексеріңіз.

Жиі кездесетін мәселелер

БелгісіСебебі және шешімі
Кассада әдіс көрінбейдіВалюта KZT емес; кеңейту Payments тізімінде орнатылмаған; Статус өшірулі; геозона сәйкес емес
Тапсырыс «Ожидание оплаты» күйінде қаладыWebhook кабинетте тіркелмеген, адрес қате немесе құпия сәйкес емес. Кабинеттегі жеткізу журналын қараңыз
Журналда 503Кеңейту өшірулі немесе «Секрет webhook» өрісі бос
Журналда 401Құпия дұрыс емес. Кабинетте адресті қайта қосып, жаңа құпияны қойыңыз
Webhook мүлде келмейдіДүкен Maintenance режимінде тұр — ол кіріс сұрауларды бөгейді. Режимнен шыққан соң күй сатып алушы қайтқанда да түзеледі
«Проверить ключ» қате бередіКілт қате көшірілген немесе режимі сәйкес емес: sandbox ұйымға qp_test_…, live-қа qp_live_…
Webhook адресі дұрыс емесАдрес әкімшіліктегі HTTP_CATALOG мәнінен құралады. Дүкен прокси артында немесе бөлек доменде болса, адресті қолмен түзетіп, кабинетке дұрысын тіркеңіз
Кеңейту Installer-де көрінбейдіАрхив атауы өзгертілген. Файл qutpay.ocmod.zip деп аталуы керек

Толық диагностика: Плагин істемей жатыр.

Жиі қойылатын сұрақтар

OpenCart 3-те жұмыс істей ме? Жоқ. Кеңейту OpenCart 4.0.2.x бойынша жазылған. 3-нұсқада API-ді тікелей шақыруға болады: PHP SDK.

Бір API кілтпен екі дүкен жұмыс істей ме? Иә, бірақ кеңейту тапсырыс белгісін счёт metadata ішінде сақтап, webhook-та салыстырады: бөтен дүкеннің счёты бойынша келген оқиға еленбейді. Дегенмен әр дүкенге бөлек кілт беру ыңғайлырақ.

Логты қайдан қараймын? «Лог отладки» қосулы болса — storage/logs/qutpay.log.

Сатып алушы төлемей кетсе не болады? Счёт өз мерзімінде expired болады, тапсырыс сіз таңдаған күйге көшеді. Сатып алушы тапсырысты қайта ашып, жаңа счёт ала алады.

WordPress дүкені үшін не бар? WooCommerce плагині: WooCommerce плагині.

Байланысты мақалалар

WooCommerce немесе OpenCart плагині істемей жатырПлагин счёт жасамаса немесе тапсырыс күйі өзгермесе, тексеретін төрт нәрсе бар: кілт, режим сәйкестігі, webhook адресінің жариялығы және дүкен журналы. Қай симптом нені білдіреді.Webhook баптауКабинетте webhook адресін қосу, оқиғаларды таңдау, құпияны сақтау, тақырыптар мен дене пішімі, 11 рет қайталау кестесі, журналды оқу, адресті сынау және қайта бағыттау ережесі.API кілттер — жасау, сақтау, ауыстыруqp_live_ және qp_test_ кілттерінің айырмашылығы, кілтті кабинетте жасау, қайда сақтау керек және қайда мүлдем сақтамау керек, әр интеграцияға бөлек кілт, үзіліссіз ауыстыру реті және жою салдары.Қайтару API — толық және ішінара қайтаруPOST /invoices/{id}/refund әдісінің толық анықтамасы: сұрау өрістері, толық және ішінара қайтару, сома шектеуі, барлық қате коды, refund_unknown келгенде не істеу керек және қандай оқиғалар жіберіледі.Интернет-дүкенге Kaspi төлемін қосуСебеттен «төленді» күйіне дейінгі толық схема: счёт, төлем беті, webhook. Tilda, WooCommerce, OpenCart және өзі жазылған сайт үшін кодсыз жол мен API жолы.

Сұрағыңыз қалды ма? WhatsApp +77788813333 · kazprose@gmail.com
Кабинеттен де жазуға болады: Қолдау.

Qut Pay — тәуелсіз сервис, «Kaspi Bank» АҚ-мен аффилирленбеген. Kaspi және Kaspi Pay — құқық иесінің тауар белгілері.