Best Answer SmetDenis , 24 March 2015 - 06:10
Супер элемента, который подойдет сразу ко всем способам оплаты конечно же не будет. Это не возможно.
Зато у нас появилось API, которое без хаков и с удобствами позволяет добавлять новые системы оплаты.
Каждая платежная система представляет из себя отдельный элемент.
Все они лежат тут
media\zoo\applications\jbuniversal\cart-elements\payment
Самый простой и типичный способ - это робокасса.
там есть несколько важных методов
getRedirectUrl - должен вернуть ссылку на платежную систему, страницу оплаты.
isValid - функция, которая вызывается роботом платежной системы. Тут происходит валидация платежа, если функция вернула true, то заказ будет отмечен на сайте как "оплачен" со всеми последствиями (письма итд)
getRequestOrderId - номер заказа из реквеста от робота. Обычно переменная уникальная, поэтому ф-я используется для определения, что это именно робот робокассы.
getRequestOrderSum - сумма оплаты, которую отправил робот. Используется для валидации, что сумма оплаты совпадает с суммой в заказе.
По сути это все API.
По желанию можно добавить шаблон tmpl/submission.php, он отобразится в форме заказа. Обычно там выводится логотип.
---------------
Так же есть важная штуковина - класс JBCartValue (jbuniversal\framework\classes\cart\jbvalue.php)
Он используется для всех вычислений и манипуляций с деньгами.
Его основная цель - упразднить все действия с деньгами на уровне кода, чтобы форматирование, парсинг и валюты учитывались в программе самостоятельно.
Чтобы сделать объект, который несет в себе 50 евро, нужно сделать так
$val = JBCart::val('50 eur'); $val = JBCart::val('50'); // 50 в валюте по умолчанию
Именно этот объект должен вернуться из getRequestOrderSum
Go to the full post