Цей сервіс агрегує багато з доступних на сьогоднішній день засобів оплати. Гроші надходять на ваш внутрішній рахунок в системі, з якого щодня відбувається перерахування на ваш розрахунковий рахунок юридичної особи.
Зараз спробую описати алгоритм підключення сервісу, з урахуванням того, що інтеграція відбувалася на систему управління CMS MODx Revolution
Підключення до сервісу починається з заповнення анкети.
Після заповнення заявки приходить повідомлення від служби підтримки про те, що вони можуть розглядати заявку до 7 робочих днів
Фактично в цей же день прийшло повідомлення про те, що можна зайти в Особистий кабінет, скачати договір, підписати його та надіслати копію, назад через Особистий кабінет
З Особистого кабінету, завантажуєте і підписуєте оферту (contract.pdf), сформовану на підставі даних заповненої вами раніше анкети. Скан оферти відправляється через Особистий кабінет назад менеджеру на перевірку
Після перевірки, приходить повідомлення про вибір методу підключення.
Моїм варіантом підключення був вибір готового модуля для CMS MODx Revolution
- Завантажити пакет yandexmoney - *. Transport.zip в папку \ core \ packages
- Перейти в меню Система - Управління пакетами і вибрати вкладку Пакети
- Виконати локальний пошук пакетів, клацнувши по Шукати пакети локально (кнопка Завантажити доповнення)
- У списку пакетів вибрати YandexMoney і натиснути "Встановити"
- Слідувати інструкціям на екрані
Тобто установка пакета відбувається вручну, а не зі сховищ. Основну роботу виконують два сниппета YandexMoney і YandexMoneyHook
Інструкція для роботи з модулем містить наступні пояснення по налаштуванню
Після установки модуля необхідно:
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
(Якщо вибрали динамічні сторінки успішного і неуспішного завершення платежу, то не потрібно)
В реальності цієї інструкції виявилося замало, так як при підключенні виникла велика кількість помилок. Всіх помилок можна було б уникнути, якби до плагіну була добре документована інструкція. Але її не було.
Приблизно стільки велося листування з техпідтримкою, з питань налаштування готового модуля
А тепер по порядку основні проблеми:
У просто підключених голих сніпетів практично всі параметри приходять порожніми. Що робити?
Для настройки передачі корисних властивостей відредагував клас компонента /core/components/yandexmoney/model/yandexmoney.class.php
Змінив функцію конструктора класу, також для, того щоб значень параметрів класу присвоювалися потрібні числові значення
У функції формує xml відповідь від клієнта серверу, вказав статично номер shopId так як були проблеми, чомусь в xml відповіді не передавалася значення shopId (хоча повинно було)
Спочатку, 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 ок.
Довгий час налагоджуючи помилки, я ловив ось таке повідомлення
Але потім, після виправлення деяких багів, віконце змінилося на таке
Після того, як тестовий платіж пройшов, я написав про це в підтримку, і мені замінили номер вітрини з тестової на бойову. Так само змінився url для відправлення POST запиту. Всі відповідні налаштування я вніс в файл yandexmoney.class.php заміною scid на бойове значення і тестового режиму з 1 на 0 (url в такому випадку вибирається автоматично)
Тепер ви можете приймати платежі. Звіти про платежі будуть приходити на вашу поштову скриньку, а також видні в особистому кабінеті.
Повернення платежів можна робити або при підключенні мерчанта (MWC), але для цього потрібно оформляти додатковий договір і завіряти ключ цифрового підпису. Або платіжними дорученнями в банк, на повернення. Для себе я вибрав другий варіант. Шаблон платіжного доручення на повернення ви можете запитати у менеджера в службі підтримки або завантажити за посиланням.
Ось так я витратив один день на підключення Яндекс.Касси. У перемикачі незрозуміло / начебто працює зараз обрана друга опція (це був жарт про програмістів). Ура, Яндекс.Касса підключена.