VibeFox EveryPay for PrestaShop — Допомога
Вимоги
PrestaShop: 8.0–9.x.
PHP: 8.0 або новіша версія. Модуль не встановлюється на старіших версіях PHP.
Обліковий запис EveryPay: потрібні ім'я користувача API, API secret і назва процесингового облікового запису вашого магазину. Їх можна знайти в EveryPay Merchant Portal, у налаштуваннях вашого магазину: демо-портал для тестового режиму і робочий портал для реальних платежів. Тестове та робоче середовища мають окремі облікові дані. Також ви вказуєте URL callback вашого магазину в обох порталах (див. розділ «Налаштування»).
Валюта магазину: процесинговий обліковий запис визначає валюту списання, наприклад EUR3D1 списує в EUR. Спосіб оплати пропонується лише для кошиків у цій валюті.
Ліцензійний ключ VibeFox: купується на vibefox.net. Один ключ працює на одному домені.
Встановлення
1. В адмін-панелі перейдіть до Modules > Module Manager і натисніть Upload a module. Оберіть ZIP-файл модуля.
2. Після завершення завантаження натисніть Configure або пізніше знайдіть VibeFox EveryPay Payment у списку модулів і натисніть Configure.
3. Введіть ліцензійний ключ VibeFox у поле License key у блоці ліцензії вгорі сторінки Configure і натисніть Activate (див. розділ «Ліцензійний ключ»).
4. Введіть тестове ім'я користувача API, тестовий API secret і назву процесингового облікового запису з демо-порталу Merchant Portal. Залиште ввімкненим Test Mode.
5. Скопіюйте URL callback, який відображається на сторінці налаштувань, у поле Callback notification URL вашого магазину в Merchant Portal.
6. Увімкніть Enable/Disable, натисніть Save і зробіть тестове замовлення. Коли все працює, введіть робочі облікові дані, також вкажіть URL callback у робочому порталі і вимкніть Test Mode.
Під час встановлення модуль створює статус замовлення EveryPay payment on hold. PrestaShop пропонує новий платіжний модуль для всіх валют, країн і груп клієнтів. Їх можна обмежити в Payment > Preferences.
Налаштування
Усі налаштування розміщені на сторінці модуля: Modules > Module Manager > VibeFox EveryPay Payment > Configure. Кожен розділ має власну кнопку Save, яка зберігає всю сторінку. Над полями сторінка показує Тестовий режим увімкнено: платежі надсилаються в демо-середовище EveryPay, реальні кошти не списуються., поки тестовий режим увімкнено. Вона попереджає, коли спосіб оплати увімкнено, але для поточного режиму не заповнено ім'я користувача API, API secret або процесинговий обліковий запис (тоді спосіб оплати приховується на етапі оформлення), а також коли процесинговий обліковий запис списує валюту, відмінну від валюти магазину за замовчуванням. Пробіли та розриви рядків, вставлені разом з обліковими даними, видаляються під час збереження.
EveryPay
Enable/Disable: Enable EveryPay payment gateway вмикає або вимикає спосіб оплати. За замовчуванням: off.
Title: назва способу оплати, яку бачать покупці під час оформлення. Вона також зберігається в замовленні як назва способу оплати. За замовчуванням: EveryPay.
Description: текст, що відображається під способом оплати на етапі оформлення. За замовчуванням: Pay securely by card or bank link on the EveryPay payment page.
Обліковий запис EveryPay
Ім'я користувача API, API secret і назва процесингового облікового запису відображаються в EveryPay Merchant Portal (налаштування магазину): демо-портал для тестового режиму і робочий портал для реальних платежів. Розділ містить посилання на обидва портали.
Test Mode: коли увімкнено, платежі надсилаються в демо-середовище EveryPay з тестовими обліковими даними. Реальні кошти не списуються. За замовчуванням: on. Поки він увімкнений, покупці бачать під способом оплати напис ТЕСТОВИЙ РЕЖИМ: демо-середовище EveryPay, реальні кошти не списуються.
Test API Username: ім'я користувача API демо-середовища.
Test API Secret: API secret демо-середовища.
Live API Username: ім'я користувача API робочого середовища.
Live API Secret: API secret робочого середовища.
Збережені секрети більше не показуються. Поле залишається порожнім і показує Збережено — залиште порожнім, щоб зберегти. Вводьте нове значення, лише якщо хочете його змінити.
Clear saved API secrets: позначте секрет і натисніть Save, щоб видалити його. Порожнє поле зберігає збережене значення.
Processing Account Name: процесинговий обліковий запис EveryPay, наприклад EUR3D1. Обліковий запис визначає валюту списання: спосіб оплати пропонується лише для кошиків у цій валюті. Той самий обліковий запис використовується в обох режимах.
Сповіщення про платежі (callback)
Callback повідомляє вашому магазину, що платіж завершено, тож замовлення створюються, навіть якщо покупець закриє браузер. Скопіюйте URL, який відображається в полі Callback notification URL, у поле Callback notification URL вашого магазину в EveryPay Merchant Portal, як для демо, так і для робочого середовища. З SEO-дружніми URL він виглядає так: https://your-shop/module/wcp_everypay_payment/callback. Копіюйте URL точно так, як він показаний у налаштуваннях. Запит на оплату не передає URL callback, тому його потрібно вказати в порталі.
Callback містить лише посилання на платежі. Коли він надходить, модуль запитує в API EveryPay статус платежу з обліковими даними середовища, де платіж було створено, і перевіряє, що відповідь належить цьому кошику. Callback для платежу, який створив не ваш магазин, відхиляється без запиту до EveryPay. Без callback замовлення створюється, коли покупець повертається до магазину після оплати, або коли EveryPay повторює callback.
Додатково
Debug log: записує події платежів у logs/wc_evp_debug.log.php у папці модуля. Файл не можна відкрити з веб-браузера. Помилки та попередження записуються завжди, навіть коли опцію вимкнено. Секрети API, дані картки та електронні адреси покупців ніколи не записуються в журнал. За замовчуванням: off.
Log: показує розмір і останні записи журналу. Натисніть Clear log, щоб його очистити.
Uninstall: видаляє налаштування шлюзу та журнали, коли модуль видаляється. Дані платежів EveryPay за замовленнями завжди зберігаються. За замовчуванням: off.
Оформлення замовлення
На етапі оплати покупець обирає спосіб оплати (за замовчуванням EveryPay) і підтверджує вибір. Модуль створює разовий платіж EveryPay на суму кошика у валюті кошика з електронною поштою та платіжною адресою покупця і надсилає покупця на сторінку оплати EveryPay. Мова цієї сторінки відповідає мові магазину (англійська, естонська, російська, латвійська, литовська, фінська або німецька; інакше англійська). Там покупець платить одним із способів, увімкнених для вашого облікового запису EveryPay. На цьому етапі замовлення ще не існує.
Після оплати покупець повертається до вашого магазину. Замовлення позначається оплаченим лише після підтвердження EveryPay: модуль запитує в API EveryPay статус платежу під час повернення та при callback. Потім замовлення створюється, і покупець бачить стандартну сторінку підтвердження замовлення. Якщо EveryPay ще обробляє платіж або її API в цей момент недоступний, з'являється сторінка Payment confirmation з повідомленням Ваш платіж підтверджується EveryPay. Ви отримаєте електронний лист, щойно замовлення буде підтверджено. та кнопкою Check again; callback створює замовлення, щойно EveryPay підтверджує платіж.
Якщо платіж не вдався, покупець повертається до оформлення з повідомленням Ваш платіж EveryPay не був успішним. Спробуйте ще раз або оберіть інший спосіб оплати. Якщо покупець покинув сторінку оплати, не заплативши, повідомлення таке: Платіж EveryPay не було завершено. Ви можете спробувати ще раз або обрати інший спосіб оплати. Кошик зберігається. Кожна нова спроба створює новий платіж EveryPay; попередні спроби розпізнаються, тож платіж за старішим посиланням також буде враховано.
Якщо EveryPay не може розпочати платіж, покупець залишається на оформленні з коротким повідомленням, наприклад EveryPay тимчасово недоступний. Спробуйте ще раз за мить або оберіть інший спосіб оплати. Деталі записані в журнал.
Callback працює, навіть коли магазин перебуває в режимі обслуговування, і не блокується обмеженням за країнами вашого магазину.
Модуль приймає лише разові платежі. Він не має повернень чи списання коштів із PrestaShop, збережених карток або оплати в один клік, підписок чи регулярних платежів, вбудованих полів картки та підтримки кількох валют.
Замовлення
Статуси замовлення
No order yet: покупець був надісланий до EveryPay і не оплатив, платіж не вдався або був перерваний, або EveryPay ще не підтвердила платіж. Існує лише кошик.
Payment accepted: EveryPay повідомила, що платіж проведено або авторизовано. Платіж записується з референсом платежу EveryPay як ID транзакції, а примітка показує суму, валюту та референс. Для авторизованого платежу примітка повідомляє, що кошти зарезервовано: якщо ваш обліковий запис не списує кошти автоматично, спишіть платіж в EveryPay Merchant Portal. Коли платіж пізніше буде проведено, окрема примітка про це повідомить.
EveryPay payment on hold: платіж потребує ручної перевірки. Оплачені сума або валюта відрізняються від кошика (наприклад, кошик було змінено після початку платежу), замовлення було скасовано до надходження платежу, або замовлення тепер використовує інший спосіб оплати. Примітка пояснює це і повідомляє, що замовлення не було позначено оплаченим. Перевірте платіж у Merchant Portal і потім виконайте або поверніть кошти вручну. Подальші callback щодо цього платежу не завершують замовлення автоматично.
Якщо для вже оплаченого замовлення завершується другий платіж, замовлення не змінюється. Примітка просить вас повернути дубльований платіж в EveryPay Merchant Portal.
Блок оплати EveryPay
На сторінці замовлення відображається блок EveryPay payment з усіма спробами оплати EveryPay за замовленням: дата, референс платежу (з позначкою Test mode для тестових платежів), референс замовлення, сума, статус EveryPay та результат. Нижче розміщені EveryPay notes замовлення, спочатку найновіші.
Check EveryPay payment status: кнопка в блоці перевіряє через API кожен платіж EveryPay за замовленням, від найновішого до найстарішого, застосовує результат, як описано вище, і додає одну примітку зі статусом кожного платежу. Результат відображається в блоці. Потрібне право редагувати замовлення; доступ до сторінок модулів не потрібен. Використовуйте її, коли callback так і не надійшов, наприклад щоб побачити пізніше списання або повернення.
Повернення коштів
Повернення коштів із PrestaShop не підтримуються. Виконайте повернення в EveryPay Merchant Portal, а потім оновіть статус замовлення в PrestaShop. Коли EveryPay повідомляє, що платіж повернено або опротестовано, модуль лише додає примітку до замовлення; статус замовлення не змінюється. Стандартні кнопки повернення PrestaShop на сторінці замовлення не повертають кошти через EveryPay.
Ліцензійний ключ
Модуль працює з ліцензійним ключем VibeFox з vibefox.net. Блок ліцензії License — VibeFox EveryPay Payment — це перший блок на сторінці Modules > Module Manager > VibeFox EveryPay Payment > Configure, над налаштуваннями. Введіть ключ у License key і натисніть Activate. Після цього блок показує ключ у прихованому вигляді, статус (наприклад, дату, до якої ліцензія активна, і ваш домен) та кнопки Check now, щоб перевірити статус знову, Change key, щоб ввести інший ключ, і Remove key, щоб видалити ключ із цього магазину. Нижче розміщені рядок Product: presta-payment-everypay і посилання 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.
Без активного ключа EveryPay не показується покупцям на етапі оформлення. Якщо платіж все ж розпочато, покупець бачить Цей спосіб оплати недоступний. Будь ласка, оберіть інший. Вітрина PrestaShop не знає, що ви увійшли в back office, тож спосіб оплати приховано і для вас: модуль можна налаштувати до купівлі ключа, але не можна перевірити під час оформлення замовлення. Нагадування з'являється в Modules > Module Manager на вкладці Alerts. Наявні замовлення не змінюються: платежі, які вже почалися, як і раніше підтверджуються, а перевірка статусу працює.
Коли ліцензія закінчується, модуль продовжує працювати, але для оновлень і підтримки потрібне продовження. Статус автоматично перевіряється знову, поки ви працюєте в back office: раз на день протягом перших 14 днів після введення ключа, потім раз на тиждень. Cron-завдання не потрібне. Видалення або скидання модуля завжди видаляє ліцензійний ключ і статус ліцензії.
Усунення несправностей
EveryPay не з'являється під час оформлення: перевірте, що ліцензія активна, що Enable/Disable увімкнено, що ім'я користувача API, API secret і Processing Account Name поточного режиму заповнені, і що валюта кошика збігається з валютою процесингового облікового запису. У таких випадках на сторінці налаштувань з'являється попередження. У Payment > Preferences перевірте, чи дозволено модуль для валюти кошика, країни покупця та групи покупця.
Платіж пройшов, але замовлення не створено: callback не працює. Перевірте, що URL callback з налаштувань вказано як Callback notification URL у Merchant Portal того режиму, який ви використовуєте (демо або робочий). Замовлення також створюється, коли покупець повертається до магазину після оплати. Перегляньте поле Log на сторінці модуля: помилки записуються завжди.
Callback відповідає Unknown payment, Unknown payment reference або Payment does not belong to this order: платіж створено не цим магазином або не цим кошиком, або відповідь EveryPay не збігається з ним. Нічого не змінюється.
Callback відповідає Not configured: бракує облікових даних середовища, де створено платіж, наприклад для тестового платежу після видалення тестових облікових даних. Введіть їх знову; EveryPay повторить callback.
Callback відповідає Payment status unavailable, Busy, please retry або Order could not be created: не вдалося звернутися до API EveryPay, замовлення в цей момент створював інший запит, або замовлення не вдалося створити (наприклад, модуль вимкнено). EveryPay повторить callback. Причина є в журналі.
Покупець бачить «EveryPay тимчасово недоступний»: EveryPay відхилила облікові дані або до неї не вдалося достукатися. Перевірте ім'я користувача API та API secret поточного режиму.
Покупець бачить «Цей спосіб оплати не підтримує валюту замовлення»: валюта кошика відрізняється від валюти процесингового облікового запису.
Покупець залишається на сторінці Payment confirmation: EveryPay ще не завершила платіж. Замовлення створює callback або коли покупець натискає Check again після того, як EveryPay підтвердить платіж.
Замовлення має статус EveryPay payment on hold: прочитайте EveryPay notes у блоці замовлення. Сума або валюта відрізнялися, або замовлення було скасовано до надходження платежу. Перевірте платіж у Merchant Portal і потім виконайте або поверніть кошти вручну.
Для розробників: README модуля перелічує хуки actionWcpEverypayOneoffRequest (змінити запит на оплату) і actionWcpEverypayLocale (змінити мову сторінки оплати).
Видалення
Перейдіть до Modules > Module Manager, відкрийте меню поруч із VibeFox EveryPay Payment і оберіть Uninstall. Ліцензійний ключ і статус ліцензії цього модуля завжди видаляються. Якщо в налаштуваннях увімкнено Uninstall (видалити налаштування шлюзу та журнали), налаштування шлюзу та журнал буде видалено. Якщо вимкнено, усі налаштування зберігаються для повторного встановлення. Дані платежів EveryPay за замовленнями та статус замовлення EveryPay payment on hold завжди зберігаються. Наявні замовлення зберігають свої примітки про оплату та ID транзакцій.
EveryPay — торгова марка її власника. Цей модуль не пов'язаний з EveryPay і не схвалений нею.
