VibeFox DPO for PrestaShop — Допомога
Вимоги
PrestaShop: 8.0–9.x.
PHP: 8.0 або новіша версія з розширенням SimpleXML. Без них модуль не встановлюється.
Обліковий запис DPO Pay: потрібні Company Token і Service Type ID вашого облікового запису мерчанта DPO. DPO видає їх під час відкриття облікового запису; запитайте їх у свого менеджера DPO або на dpogroup.com. DPO також може надати тестовий обліковий запис зі своїм токеном і типом сервісу. Окремого тестового сервера немає: DPO використовує одну й ту саму адресу API для тестових і робочих облікових записів, а обліковий запис вибирається за токеном.
Валюта: валюта магазину має підтримуватися вашим обліковим записом DPO. DPO приймає не більше 2 знаків після коми, тож суми кошика з 3 знаками (наприклад, KWD 12.345) оплатити не можна.
Cron на сервері: завдання cron, яке кожні 15 хвилин викликає URL повторної перевірки модуля (див. Configuration).
Ліцензійний ключ VibeFox: купується на vibefox.net. Один ключ працює на одному домені.
Встановлення
1. У бекофісі перейдіть до Modules > Module Manager і натисніть Upload a module. Оберіть ZIP-файл модуля.
2. Після завершення завантаження натисніть Configure або пізніше знайдіть VibeFox DPO Pay Gateway у списку модулів і натисніть Configure.
3. Вставте свій ліцензійний ключ VibeFox у License key у блоці ліцензії у верхній частині сторінки Configure і натисніть Activate (див. Ліцензійний ключ).
4. Введіть Company Token і Service Type тестового та/або робочого облікового запису (див. Configuration).
5. Надішліть URL push-сповіщення, який показано на сторінці Configure, у службу підтримки DPO і попросіть налаштувати його для вашого облікового запису. Додайте URL cron до завдань cron вашого сервера.
6. Увімкніть Enable/Disable і натисніть Save. Оформіть тестове замовлення в тестовому режимі, потім вимкніть Test mode, щоб приймати реальні платежі.
Під час встановлення модуль створює статус замовлення DPO payment on hold. PrestaShop пропонує новий платіжний модуль для всіх валют, країн і груп клієнтів. Їх можна обмежити в Payment > Preferences.
Configuration
Усі налаштування розташовані на сторінці модуля: Modules > Module Manager > VibeFox DPO Pay Gateway > Configure. Кожен розділ має власну кнопку Save, яка зберігає всю сторінку. Коли модуль увімкнено, але Company Token або Service Type обраного режиму порожній, сторінка попереджає, що платіжний метод приховано на оформленні замовлення, а під час збереження з'являється те саме попередження. Поки ввімкнено тестовий режим, сторінка показує Test mode is on: payments are created with the test account credentials.
DPO Pay
Enable/Disable: Enable DPO Pay вмикає або вимикає платіжний метод. За замовчуванням: вимкнено.
Title: назва платіжного методу, яку бачать клієнти на оформленні замовлення. Вона також зберігається в замовленні як назва платіжного методу. За замовчуванням: DPO Pay. Обов'язкове поле.
Description: текст, який відображається під платіжним методом на оформленні замовлення. За замовчуванням: Pay securely by card or mobile money on the DPO Pay payment page.
Облікові дані API
DPO видає Company Token і Service Type ID для вашого облікового запису мерчанта, а окремі — для тестового облікового запису. Отримайте їх у свого менеджера DPO або на dpogroup.com.
Test mode: коли увімкнено, нові платежі створюються з тестовими Company Token і Service Type. За замовчуванням: увімкнено. Вимкніть його, щоб приймати реальні платежі з робочими обліковими даними. Перевірки статусу та скасування наявних платежів завжди використовують той обліковий запис, у якому платіж було створено.
Test Company Token: Company Token вашого тестового облікового запису DPO.
Test Service Type: числовий Service Type ID вашого тестового облікового запису DPO.
Live Company Token: Company Token вашого робочого облікового запису мерчанта DPO.
Live Service Type: числовий Service Type ID вашого робочого облікового запису мерчанта DPO.
Збережені Company Token ніколи не показуються знову. Поле залишається порожнім і показує Saved — leave empty to keep it. Вводьте нове значення, лише якщо хочете його змінити. Service Type має бути числом. Будь-яке інше значення не зберігається: сторінка показує попередження й залишає попереднє значення.
Clear saved Company Tokens: позначте токен і натисніть Save, щоб видалити його. Порожнє поле зберігає збережене значення.
Сповіщення про оплату
Push notification URL: push-сповіщення одразу повідомляє ваш магазин, що платіж здійснено, навіть якщо покупець закрив браузер після оплати. URL не налаштовується в панелі: попросіть службу підтримки DPO встановити цей URL для вашого облікового запису. Із зрозумілими посиланнями він має такий вигляд: https://your-shop/module/wcp_dpo_pay/notify, можливо з кодом мови. Скопіюйте його точно так, як його показує сторінка. Він має бути доступним з інтернету, без режиму обслуговування, брандмауера чи базової автентифікації перед ним.
Push-сповіщення DPO не мають підпису, тому їхньому вмісту ніколи не довіряють. Модуль використовує їх лише для пошуку платежу за його токеном транзакції, а потім перевіряє результат у самої DPO. Токен, який ваш магазин не створював, відхиляється без жодного запиту до DPO.
Scheduled status re-check (cron): викликайте цей URL кожні 15 хвилин із завдання cron сервера, наприклад за допомогою curl. Непідтверджені платежі повторно перевіряються в DPO через 15 хвилин після переспрямування і знову після закінчення часу на оплату. URL містить секретний токен, тож тримайте його в таємниці. Без URL push-сповіщень і cron замовлення створюється лише тоді, коли покупець повертається до магазину після оплати.
Замовлення
Successful payment status: статус замовлення після перевіреної успішної оплати.
Розбіжності суми чи валюти, платежі лише з авторизацією та транзакції з переплатою або недоплатою завжди переходять у DPO payment on hold.
Додатково
Logging: записує виклики API та сповіщення у файл logs/dpo_p_debug.log.php у папці модуля. Файл не можна відкрити через веб. Помилки записуються завжди. Токени маскуються, дані покупців не записуються. За замовчуванням: вимкнено.
Log: показує розмір і останні записи журналу. Натисніть Clear log, щоб його очистити.
Delete data: коли увімкнено, видалення модуля стирає його налаштування та журнал. Дані DPO, збережені для замовлень, і статус замовлення DPO payment on hold завжди зберігаються. Видалення без цієї опції ніколи не стирає дані. За замовчуванням: вимкнено.
Оформлення замовлення
На етапі оплати покупець обирає платіжний метод (за замовчуванням DPO Pay) і бачить примітку You will be redirected to the secure DPO Pay payment page. Після підтвердження модуль створює транзакцію DPO на суму кошика у валюті кошика, з номером кошика та назвою вашого магазину як описом, і надсилає покупця на сторінку оплати DPO. Ім'я, e-mail, телефон та адресу для рахунку покупця передають для попереднього заповнення сторінки. Там покупець платить будь-яким способом, увімкненим у вашому обліковому записі DPO. Посилання на оплату дійсне 5 годин. На цьому етапі замовлення ще не існує.
Після оплати покупець повертається до вашого магазину. Замовлення позначається оплаченим лише після того, як DPO його підтвердить: модуль запитує в DPO результат транзакції, коли покупець повертається, коли надходить push-сповіщення та під час запланованих повторних перевірок. Тоді замовлення створюється, і покупець бачить стандартну сторінку підтвердження замовлення.
Якщо платіж не підтверджено, покупець повертається до оформлення замовлення з одним із цих повідомлень. Кошик зберігається.
Якщо покупець натискає на сторінці DPO кнопку повернення до магазину, транзакцію спочатку перевіряють. Якщо її оплачено, замовлення створюється. Інакше її скасовують у DPO, і покупець повертається до оформлення замовлення з кошиком.
Коли покупець знову платить за той самий кошик, спочатку перевіряють попередню транзакцію DPO. Якщо її оплачено, замовлення створюється без другого списання. Якщо її ще обробляють, покупець бачить Your previous payment for this order is still being processed by DPO. Please wait a few minutes before trying again. Інакше стару транзакцію скасовують у DPO і створюють нову.
Якщо DPO не може розпочати платіж, покупець залишається на оформленні замовлення з коротким повідомленням, обраним за кодом помилки DPO, наприклад DPO Pay does not support the currency of this order. Please choose another payment method. або The amount exceeds the limit allowed by DPO Pay. Please choose another payment method or contact us. Інші помилки показують DPO Pay is temporarily unavailable. Please try again or choose another payment method. Технічна причина записується в журнал.
Push-сповіщення та URL cron працюють, поки магазин перебуває в режимі обслуговування, і не блокуються обмеженням за країнами вашого магазину.
Модуль приймає лише одноразові платежі на сторінці DPO. Немає повернень із магазину, збережених карток, підписок чи періодичних платежів, полів картки на вашому сайті та захоплення платежів, які лише авторизовані.
Замовлення
Статуси замовлення
No order yet: покупця надіслали до DPO, і він не оплатив, платіж було відхилено або скасовано, або DPO ще не підтвердив платіж. Існує лише кошик.
Payment accepted, Delivered or DPO payment on hold: платіж перевірено. Статус відповідає Successful payment status. Платіж записується з токеном транзакції DPO як ID транзакції. Приватна примітка на сторінці замовлення показує суму, валюту, код схвалення та початок токена.
DPO payment on hold after payment: DPO підтвердив платіж, але сума чи валюта відрізняються від кошика, платіж лише авторизований і не захоплений, транзакція оплачена з переплатою чи недоплатою, або покупець скасував платіж чи замовлення вже було скасовано. Приватна примітка пояснює причину. Перевірте транзакцію в порталі DPO. Захопіть або анулюйте платіж, який лише авторизований, у порталі DPO, а потім оновіть статус замовлення.
Cancelled: коли ви скасовуєте неоплачене замовлення модуля (наприклад, таке, що очікує через платіж лише з авторизацією), його відкрита транзакція DPO також скасовується в DPO.
Пізніший результат відмови ніколи не змінює замовлення, а результати старих транзакцій ніколи не провалюють поточну спробу. Якщо DPO підтверджує другий успішний платіж за вже оплачене замовлення, замовлення не змінюється і отримує примітку про можливу подвійну оплату, щоб ви могли повернути кошти в порталі DPO. Оплачене чи повернене замовлення ніколи не відкривається знову.
Повернення коштів
Повернення коштів із магазину в цій версії недоступні. Поверніть платіж у порталі мерчанта DPO, а потім змініть статус замовлення в PrestaShop.
Ліцензійний ключ
Модуль працює з ліцензійним ключем VibeFox з vibefox.net. Блок ліцензії License — VibeFox DPO Pay Gateway є першим блоком на сторінці Modules > Module Manager > VibeFox DPO Pay Gateway > Configure, над налаштуваннями. Вставте ключ у License key і натисніть Activate. Після цього блок показує ключ у прихованому вигляді, статус (наприклад, дату, до якої діє ліцензія, і ваш домен) та кнопки Check now для повторної перевірки статусу, Change key для введення іншого ключа та Remove key для видалення ключа з цього магазину. Нижче розташовано рядок Product: presta-payment-dpo і посилання Manage licenses and domains in your account, яке відкриває ваш обліковий запис vibefox.net. Змінювати ключ можуть лише співробітники з правом Configure для модуля. Тексти блоку відповідають мові back office (включено англійську та російську).
Якщо ключ не прийнято, блок повідомляє причину, наприклад Key not found, This key belongs to another product, Domain limit reached або License expired on з датою. Після зміни адреси магазину або після звільнення слоту домену у вашому обліковому записі натисніть Check now. Якщо сервер ліцензій недоступний, модуль продовжує працювати за останнім відомим статусом.
Один ключ працює на одному домені: домені головного магазину, зокрема й за багатомагазинної конфігурації. Видалення ключа з магазину не звільняє слот домену. Звільніть слот у своєму обліковому записі vibefox.net.
Без активного ключа DPO Pay не показується клієнтам на оформленні замовлення. Якщо платіж усе ж розпочато, покупець бачить This payment method is not available. Please choose another one. Вітрина PrestaShop не знає, що ви ввійшли в back office, тому спосіб оплати приховано і для вас: модуль можна налаштувати до купівлі ключа, але перевірити його під час оформлення замовлення не можна. Нагадування з'являється в Modules > Module Manager на вкладці Alerts. Наявні замовлення не змінюються: платежі, які вже розпочато, і далі підтверджуються.
Коли ліцензія спливає, модуль продовжує працювати, але для оновлень і підтримки потрібне продовження. Статус автоматично перевіряється знову, поки ви працюєте в back office: раз на день протягом перших 14 днів після введення ключа, потім раз на тиждень. Cron-завдання не потрібне. Видалення або скидання модуля завжди видаляє ліцензійний ключ і статус ліцензії.
Усунення несправностей
DPO Pay does not appear at checkout: перевірте, що ліцензія активна, Enable/Disable увімкнено, а Company Token і Service Type обраного режиму заповнені: тестові поля в тестовому режимі, робочі — в інших випадках. Сторінка налаштувань показує попередження, якщо їх немає. У Payment > Preferences перевірте, що модуль дозволено для валюти кошика, країни покупця та групи покупця.
The payment went through, but no order was created: імовірно, URL push-сповіщення не встановлено для вашого облікового запису DPO, а покупець не повернувся до магазину. Попросіть службу підтримки DPO встановити URL, показаний у налаштуваннях, і перевірте, що cron викликає URL повторної перевірки кожні 15 хвилин. Увімкніть Logging і подивіться поле Log на сторінці модуля.
Push notification answers Unknown transaction: токен транзакції не належить до платежу DPO Pay цього магазину, наприклад коли сповіщення прийшло з іншого магазину на тому самому обліковому записі DPO.
Push notification answers Verification failed: не вдалося зв'язатися з DPO для перевірки платежу, кошик обробляв інший запит у той самий момент, або замовлення не вдалося створити (наприклад, модуль вимкнено). DPO повторює сповіщення, а запланована повторна перевірка також підтверджує замовлення. Причина є в журналі.
The push URL shows Method not allowed in the browser: це нормально. URL приймає лише запити від DPO.
The cron URL answers Forbidden: токен в URL неправильний. Скопіюйте URL знову зі сторінки Configure. Робочий виклик відповідає OK checked= і кількістю перевірених платежів.
The Service Type is not saved: він має бути числовим Service Type ID з DPO.
The customer sees DPO Pay is temporarily unavailable: DPO відмовився створити транзакцію, наприклад через неправильний Company Token чи Service Type або токен іншого режиму. Код результату DPO є в журналі.
The customer sees that DPO accepts at most 2 decimal places: сума кошика має 3 знаки після коми. DPO не може списати такі суми.
The customer sees This order has already been paid with DPO Pay: DPO відмовив у другому платежі за той самий кошик. Перевірте платіж у порталі DPO і замовлення в PrestaShop.
Order is DPO payment on hold after payment: прочитайте приватну примітку на сторінці замовлення (див. Статуси замовлення), а потім перевірте транзакцію в порталі DPO.
Розробники можуть змінювати дані покупця, які надсилаються до DPO, за допомогою хука actionWcpDpoPayCustomerData, а ліміт часу на оплату — за допомогою actionWcpDpoPayPaymentTimeLimit.
Видалення
Перейдіть до Modules > Module Manager, відкрийте меню поруч із VibeFox DPO Pay Gateway і виберіть Uninstall. Ключ ліцензії та статус ліцензії цього модуля завжди видаляються. Якщо Delete data увімкнено, налаштування модуля та журнал видаляються. Якщо вимкнено, усі налаштування зберігаються для повторного встановлення. Дані DPO, збережені для замовлень, і статус замовлення DPO payment on hold завжди зберігаються, тож запізнілі сповіщення щодо старих платежів працюють і після повторного встановлення. Наявні замовлення зберігають свої платіжні примітки та ID транзакцій.
DPO Pay є торговельною маркою її власника. Цей модуль не пов'язаний з DPO Pay і не схвалений нею.
