Інтеграція сервісу з cms modx revolution

Цей сервіс агрегує багато з доступних на сьогоднішній день засобів оплати. Гроші надходять на ваш внутрішній рахунок в системі, з якого щодня відбувається перерахування на ваш розрахунковий рахунок юридичної особи.

Зараз спробую описати алгоритм підключення сервісу, з урахуванням того, що інтеграція відбувалася на систему управління CMS MODx Revolution

Підключення до сервісу починається з заповнення анкети.

Інтеграція сервісу з cms modx revolution

Після заповнення заявки приходить повідомлення від служби підтримки про те, що вони можуть розглядати заявку до 7 робочих днів

Інтеграція сервісу з cms modx revolution

Фактично в цей же день прийшло повідомлення про те, що можна зайти в Особистий кабінет, скачати договір, підписати його та надіслати копію, назад через Особистий кабінет

Інтеграція сервісу з cms modx revolution

З Особистого кабінету, завантажуєте і підписуєте оферту (contract.pdf), сформовану на підставі даних заповненої вами раніше анкети. Скан оферти відправляється через Особистий кабінет назад менеджеру на перевірку

Інтеграція сервісу з cms modx revolution

Після перевірки, приходить повідомлення про вибір методу підключення.

Інтеграція сервісу з cms modx revolution

Моїм варіантом підключення був вибір готового модуля для CMS MODx Revolution

Інтеграція сервісу з cms modx revolution

  • Завантажити пакет yandexmoney - *. Transport.zip в папку \ core \ packages
  • Перейти в меню Система - Управління пакетами і вибрати вкладку Пакети
  • Виконати локальний пошук пакетів, клацнувши по Шукати пакети локально (кнопка Завантажити доповнення)
  • У списку пакетів вибрати YandexMoney і натиснути "Встановити"
  • Слідувати інструкціям на екрані

Тобто установка пакета відбувається вручну, а не зі сховищ. Основну роботу виконують два сниппета YandexMoney і YandexMoneyHook

Інтеграція сервісу з cms modx revolution

Інструкція для роботи з модулем містить наступні пояснення по налаштуванню

Після установки модуля необхідно:

1. У чанка форми замовлення, в списку способів оплати вказати

Тобто наприклад, в чанка shopOrderForm буде:

Цей код довантажити варіанти оплати

2. У чанка сторінки замовлення, в список хуков FormIt додати YandexMoneyHook

Тобто наприклад, чанк orderform_page

[[! FormIt?
hooks = `spam, shk_fihook, YandexMoneyHook, email, FormItAutoResponder, redirect`
submitVar = `order`
emailTpl = `shopOrderReport`
fiarTpl = `shopOrderReport`
emailSubject = `В інтернет-магазині" [[++ site_name]] "зроблений новий замовлення`
fiarSubject = `Ви зробили замовлення в інтернет-магазині" [[++ site_name]] "`
emailTo = `[[++ emailsender]]`
redirectTo = `25`
validate = `address: required, fullname: required, email: email: required, phone: required`
errTpl = `
[[+ Error]] `]]

3. Створити 2 сторінки: для успішно завершеної платежу і неуспішно завершеного. Вказати їх ID документа в параметрах сниппета YandexMoney

(Якщо вибрали динамічні сторінки успішного і неуспішного завершення платежу, то не потрібно)

В реальності цієї інструкції виявилося замало, так як при підключенні виникла велика кількість помилок. Всіх помилок можна було б уникнути, якби до плагіну була добре документована інструкція. Але її не було.

Приблизно стільки велося листування з техпідтримкою, з питань налаштування готового модуля

Інтеграція сервісу з cms modx revolution

Інтеграція сервісу з cms modx revolution

А тепер по порядку основні проблеми:

У просто підключених голих сніпетів практично всі параметри приходять порожніми. Що робити?

Для настройки передачі корисних властивостей відредагував клас компонента /core/components/yandexmoney/model/yandexmoney.class.php

Змінив функцію конструктора класу, також для, того щоб значень параметрів класу присвоювалися потрібні числові значення

У функції формує xml відповідь від клієнта серверу, вказав статично номер shopId так як були проблеми, чомусь в xml відповіді не передавалася значення shopId (хоча повинно було)

Інтеграція сервісу з cms modx revolution

Спочатку, shopId в xml коді відповіді було поставлено таким чином shopId = " '. $ This-> shopId.'"

Далі в коді сниппета YandexMoneyHook при створенні екземпляра класу (об'єкта) $ ym додав значення наступним полів об'єкту $ ym-> orderId (передав значення "u". $ Order_id). $ Ym-> orderNumber. $ Ym-> shopid. $ Ym-> password

Після цих ітерацій на тестовий url вже йшли всі необхідні параметри.

2. Служба підтримки запевняла мене в тому що вона ловить 301 редирект при зверненні до /assets/components/yandexmoney/connectors_result.php який ви вказуєте як постійне посилання для обробки кодів відповіді

Я перевірив POST запити на цей URL і ніякого 301 там не було, завжди було 200 ок.

Інтеграція сервісу з cms modx revolution

Довгий час налагоджуючи помилки, я ловив ось таке повідомлення

Інтеграція сервісу з cms modx revolution

Але потім, після виправлення деяких багів, віконце змінилося на таке

Інтеграція сервісу з cms modx revolution

Після того, як тестовий платіж пройшов, я написав про це в підтримку, і мені замінили номер вітрини з тестової на бойову. Так само змінився url для відправлення POST запиту. Всі відповідні налаштування я вніс в файл yandexmoney.class.php заміною scid на бойове значення і тестового режиму з 1 на 0 (url в такому випадку вибирається автоматично)

Тепер ви можете приймати платежі. Звіти про платежі будуть приходити на вашу поштову скриньку, а також видні в особистому кабінеті.

Інтеграція сервісу з cms modx revolution

Повернення платежів можна робити або при підключенні мерчанта (MWC), але для цього потрібно оформляти додатковий договір і завіряти ключ цифрового підпису. Або платіжними дорученнями в банк, на повернення. Для себе я вибрав другий варіант. Шаблон платіжного доручення на повернення ви можете запитати у менеджера в службі підтримки або завантажити за посиланням.

Ось так я витратив один день на підключення Яндекс.Касси. У перемикачі незрозуміло / начебто працює зараз обрана друга опція (це був жарт про програмістів). Ура, Яндекс.Касса підключена.

Інтеграція сервісу з cms modx revolution

Схожі статті