[mspLiqPay] — платежи через LiqPay в miniShop2
Представляю расширение mspLiqPay для miniShop2, с помощью которого можно принимать оплату картами VISA/MasterCard. Преимущества LiqPay — комиссия 2,75% и быстрое подключение (публичная оферта, не нужно заключать договор). Краткая инструкция по подключению и настройке ниже.
Перейдите на сайт liqpay.ua. Сам процесс регистрации довольно простой, авторизация происходит через смс-сообщение, которое приходит на ваш телефон. После подключения нового сайта, для вас будут созданы приватный и публичный ключ, который нужно будет внести в настройки MODX.
После того, как вы получите приватный и публичный ключ, можно приступить к системным настройкам.
Для страниц успешной оплаты лучше указать id страницы с корзиной, чтобы покупатель видел свой заказ после возврата с платежного сервиса. Чтобы корректно работала переадресация, у вас должны быть включены дружественные URL.
Обратите внимане на системную настройку ms2_payment_liqpay_sandbox — значение 1 означает, что включен тестовый режим и при совершении платежа через систему, деньги с карты взыматься не будут. В рабочем режиме параметр нужно изменить на 0 (тестовый режим выключен).
Перейдите в настройки miniShop2, вкладка "Cпособы оплаты" и впишите в поле "Класс обработчик" название класса LiqPay.
Вы можете добавить ссылку на оплату (в случае, если операция оплаты была прервана) в письмо-уведомление клиенту о новом заказе. Для этого просто добавьте в чанк письма плейсхолдер payment_link:
Регистрация в системе LiqPay
Перейдите на сайт liqpay.ua. Сам процесс регистрации довольно простой, авторизация происходит через смс-сообщение, которое приходит на ваш телефон. После подключения нового сайта, для вас будут созданы приватный и публичный ключ, который нужно будет внести в настройки MODX.
Системные настройки MODX
После того, как вы получите приватный и публичный ключ, можно приступить к системным настройкам.
Для страниц успешной оплаты лучше указать id страницы с корзиной, чтобы покупатель видел свой заказ после возврата с платежного сервиса. Чтобы корректно работала переадресация, у вас должны быть включены дружественные URL.
Обратите внимане на системную настройку ms2_payment_liqpay_sandbox — значение 1 означает, что включен тестовый режим и при совершении платежа через систему, деньги с карты взыматься не будут. В рабочем режиме параметр нужно изменить на 0 (тестовый режим выключен).
Включение метода оплаты
Перейдите в настройки miniShop2, вкладка "Cпособы оплаты" и впишите в поле "Класс обработчик" название класса LiqPay.
Ссылка на оплату в письме покупателю
Вы можете добавить ссылку на оплату (в случае, если операция оплаты была прервана) в письмо-уведомление клиенту о новом заказе. Для этого просто добавьте в чанк письма плейсхолдер payment_link:
[[+payment_link]]Текст ссылки находится в словаре, ключ ms2_payment_link — можно изменить на свое усмотрение.
Комментарии: 42
С российскими счетами работают? (Это проект привата, насколько я помню)
Вообще, они коррелируют с российской юрисдикцией, чтобы не было проблем (сами понимаете, они в любой момент могут возникнуть)?
Вообще, они коррелируют с российской юрисдикцией, чтобы не было проблем (сами понимаете, они в любой момент могут возникнуть)?
На сайте LiqPay пишут, что платежи принимать могут мерчанты из Украины, России, Латвии. Насколько это юридически закреплено для граждан России и Латвии, к сожалению, не знаю…
Как дать понять системе, что на сайте несколько валют и в зависимости от этого чтоб менялся «Предлагаемая валюта платежа»
Паша, к сожалению, такой возмоности нет. Валюта платежа берется из системных настроек.
Спасибо за ответ, в поле «Предлагаемая валюта платежа» нельзя передать чанки который реализует смену валюты у меня в магазине?
Без переделывания модуля оплаты и вашего плагина/сниппета, который переключает язык — не получится никак.
подскажите где капать на стороне оплаты
Смотрите в файле core/components/minishop2/custom/payment/liqpay.class.php, строка 21 со следующим кодом:
,'currency' => $this->modx->getOption('ms2_payment_liqpay_currency', 'USD', true)
Здесь модуль получает валюту из системных настроек.
Этот код который отвечает за валюты
Два вопроса, как к ликпею подключить это сниптет, чтоб он видел переменные, или же как глобально объявить переменную в которую я запихну валюту и передам в ликпей класс, спасибо.
<?php
/** @var array $scriptProperties */
/** @var currencyrate $currencyrate */
if (!$currencyrate = $modx->getService('currencyrate', 'currencyrate', $modx->getOption('currencyrate_core_path', null, $modx->getOption('core_path') . 'components/currencyrate/') . 'model/currencyrate/', $scriptProperties)) {
return 'Could not load currencyrate class!';
}
$currencyrate->initialize($modx->context->key, $scriptProperties);
if (empty($selected)) {$selected = '';}
if (empty($outputSeparator)) {$outputSeparator = "\n";}
if (!empty($currencyrate->currency)) {
$selected = $currencyrate->currency;
}
$modx->setPlaceholder('currency', $currencyrate->currency);
$class = 'CRlist';
// Start building "Where" expression
$where = array();
if (empty($showInactive)) {$where[$class.'.active'] = 1;}
// Add
$innerJoin = array();
// Fields to select
$select = array(
$class => implode(',', array_keys($modx->getFieldMeta($class)))
);
// Add custom parameters
foreach (array('where','innerJoin','select') as $v) {
if (!empty($scriptProperties[$v])) {
$tmp = $modx->fromJSON($scriptProperties[$v]);
if (is_array($tmp)) {
$$v = array_merge($$v, $tmp);
}
}
unset($scriptProperties[$v]);
}
$currencyrate->pdoTools->addTime('Conditions prepared');
$default = array(
'class' => $class,
'innerJoin' => $modx->toJSON($innerJoin),
'where' => $modx->toJSON($where),
'select' => $modx->toJSON($select),
'groupby' => $class.'.id',
'sortby' => $class.'.rank',
'sortdir' => 'ASC',
'fastMode' => false,
'return' => !empty($returnIds) ? 'ids' : 'data',
'nestedChunkPrefix' => 'cr_',
'disableConditions' => true
);
// Merge all properties and run!
$currencyrate->pdoTools->addTime('Query parameters ready');
$currencyrate->pdoTools->setConfig(array_merge($default, $scriptProperties), false);
$data = $currencyrate->pdoTools->run();
// Processing rows
$rows = array();
if (!empty($data) && is_array($data)) {
foreach ($data as $k => $row) {
$row['idx'] = $currencyrate->pdoTools->idx++;
$row['selected'] = $row['charcode'] == $selected ? 'selected' : '';
$rows[] = empty($tplRow) ? $row : $currencyrate->pdoTools->getChunk($tplRow, $row);
}
}
$rows = implode($outputSeparator, $rows);
$output = empty($tplOuter)
? $currencyrate->pdoTools->getChunk('', array('rows' => $rows))
: $currencyrate->pdoTools->getChunk($tplOuter, array_merge($scriptProperties, array('rows' => $rows)));
$currencyrate->pdoTools->addTime('Returning processed chunks');
$log = '';
if ($modx->user->hasSessionContext('mgr') && !empty($showLog)) {
$log .= '<pre class="crLog">' . print_r($currencyrate->pdoTools->getTime(), 1) . '</pre>';
}
$output .= $log;
if (!empty($toPlaceholder)) {
$modx->setPlaceholder($toPlaceholder, $output);
}
else {
return $output;
}
в нем я нашел$row['selected'] = $row['charcode'] == $selected ? 'selected' : '';
в роде как это передает валютуДва вопроса, как к ликпею подключить это сниптет, чтоб он видел переменные, или же как глобально объявить переменную в которую я запихну валюту и передам в ликпей класс, спасибо.
Наверное нужно расширять класс msOrderHandler. Не могу подсказать точно, не очень разбираюсь в логике работы miniShop2.
Расширение работает для мультиязычных сайтов на Babel?
Алексей, к сожалению, не будет работать. Язык интерфейса LiqPay можно менять только в системных настройках MODX.
А если системную настройку продублировать под разные контексты, и внести в них язык интерфейса соответствующий контексту?
Плюсую вопрос, тоже интересует
Приветствую!!!
Вопрос к разработчику:
Подскажите, насколько актуальной является версия расширения на сегодня? В планах было приобрести но смотрю что последнее обновление было еще в 2016 году.
Заранее спасибо за ответ
Вопрос к разработчику:
Подскажите, насколько актуальной является версия расширения на сегодня? В планах было приобрести но смотрю что последнее обновление было еще в 2016 году.
Заранее спасибо за ответ
Здравствуйте. Вопрос неоднозначный. Автор компонента сменился. Теперь он у меня на поддержке, но возможности проверить работу компонента в деле не было. Давайте у Вас и проверим. Если вдруг что-то не будет работать, в рамках техподдержки можем доработать компонент до рабочего состояния.
Компонент был уже куплен и проверен. Он не работает поскольку банально изменились названия полей запроса. Я проверял под API 3 ПриватБанка оно является актуальным на данный момент (https://www.liqpay.ua/documentation/api/aquiring/checkout/doc).
Кроме того у компонента не подвязаны коллбэки liqpay (https://www.liqpay.ua/documentation/api/callback)
Пожалуйста, доработайте его. Будет замечательный и полезный компонент.
Спасибо
П.С. Проверял на локальном сервере, поэтому прям сразу не получится показать. Но, в качестве наглядного примера могу залить на свой тестовый хостинг.
Кроме того у компонента не подвязаны коллбэки liqpay (https://www.liqpay.ua/documentation/api/callback)
Пожалуйста, доработайте его. Будет замечательный и полезный компонент.
Спасибо
П.С. Проверял на локальном сервере, поэтому прям сразу не получится показать. Но, в качестве наглядного примера могу залить на свой тестовый хостинг.
Михаил, готовы провести возврат денег, пришлите номер заказа на info@modstore.pro.
Инфо отправил.
Подскажите, а сам компонент планируется обновлять или нет?
Если нет, тогда его просто бессмысленно держать в магазине.
Подскажите, а сам компонент планируется обновлять или нет?
Если нет, тогда его просто бессмысленно держать в магазине.
Спасибо, получил.
Компонент отключён, ждем реанимации руками Николая.
Компонент отключён, ждем реанимации руками Николая.
Компонент снова доступен в modstore.
Значит, теперь все работает и можно смело покупать?
Значит, теперь все работает и можно смело покупать?
Да. С момента реанимации было уже порядка 15 покупок, никто не жалуется.
поправьте ссылки с Liqpay.com на Liqpay.ua
ain.ua/2019/04/10/ze-liqpay/
по крайней мере в шапке поста. Ну и в компоненте, если еще есть
ain.ua/2019/04/10/ze-liqpay/
по крайней мере в шапке поста. Ну и в компоненте, если еще есть
Так это не мой пост, я тут просто по хозяйски отвечаю.
Вообще почитал — да ужас. Это что ж за банк такой, что первое — не пользуется доменом .com, второе раз уж пользовался — допускает такое. Лично у меня возникли бы вопросы о доверии.
Вообще почитал — да ужас. Это что ж за банк такой, что первое — не пользуется доменом .com, второе раз уж пользовался — допускает такое. Лично у меня возникли бы вопросы о доверии.
извините, не заметил действительно :)
ньюансами нашей политической жизни предлагаю не загрязнять ресурс, главное что нужно вынести — регистрировать собственность (в т.ч. и нематериальную) компании правильно, а не на тех кто может уволиться вместе с доменом
тогда это переадресую к @Михаил
ньюансами нашей политической жизни предлагаю не загрязнять ресурс, главное что нужно вынести — регистрировать собственность (в т.ч. и нематериальную) компании правильно, а не на тех кто может уволиться вместе с доменом
тогда это переадресую к @Михаил
Компонент некоторое время принадлежит мне, так что адресовать наверное никому не надо. Но над заметкой я не властен.
ну тогда вы поправьте упоминания старого домена в компоненте (если они еще остались), а с заметкой просим помочь @Василий Наумкин
Да конечно. Василий — если читаешь — смени по возможности автора этой заметки на меня.
Отредактировал текст заметки.
Автора менять нельзя.
Автора менять нельзя.
Ребята, добрый день! Нужна помощь, использую модуль мультивалютности, задача конвертировать цену передаваемую в LiqPay c евро в гривны, вобщем разработчики модуля
msmulticurrencyдали мне этот кусок кода, а куда вставить реально не пойму
$convertCurrencyId = 2; // ID валюты в которую нужно конвертировать цену.
$msmc = $modx->getService('msmulticurrency', 'MsMC');
$convertPrice = $msmc->getPrice($price, 0, $convertCurrencyId, 0, false);
При отмене оплаты не редиректит на страницу указанную в системных натсройках. Всегда перенаправляет в корзину. Что делать? Дружественные урлы включены.
Здравствуйте. Для начала откройте заявочку в техподдержке modstore.pro — будем решать.
Николай, таже проблема — при отмене оплаты отправляет на страницу успешной оплаты. Настройки перепроверила. В техподдержку не могу обратиться, год прошел (разработка сайта затянулась, только сейчас занялись модулем). Modx, miniShop2 — последние версии. Как быть?
И еще вопросик, вариантов для контекстов не появилось? только 1 язык возможен?
И еще вопросик, вариантов для контекстов не появилось? только 1 язык возможен?
Здравствуйте. Рекомендую приобрести техподдержку еще на год. Деньги не то чтобы серьезные.
У LiqPay (самого банка) нет настроек для возврата в случае ошибки. Поэтому всегда срабатывает редирект только на один единый адрес. По крайней мере я таких настроек не видел. Если я ошибаюсь — можете ткнуть пальцем.
Что касается языков и контекстов — что вы имеете ввиду? Сам платежный модуль с языком вообще не работает. Только с валютой. Пользователю модуль ничего не выводит, все что видит пользователь, и то что можно переводить — это уже miniShop2.
Ваша задача наверняка решаема, но не в формате вопроса-ответа.
У LiqPay (самого банка) нет настроек для возврата в случае ошибки. Поэтому всегда срабатывает редирект только на один единый адрес. По крайней мере я таких настроек не видел. Если я ошибаюсь — можете ткнуть пальцем.
Что касается языков и контекстов — что вы имеете ввиду? Сам платежный модуль с языком вообще не работает. Только с валютой. Пользователю модуль ничего не выводит, все что видит пользователь, и то что можно переводить — это уже miniShop2.
Ваша задача наверняка решаема, но не в формате вопроса-ответа.
Спасибо за быстрый ответ. Модуль уже оплачен, включая указанные функции — страница отказа + страница успешной оплаты. Если это не так, как вернуть деньги, чтоб оплатить его снова?
Контексты — на сайте 2 языка, в настройках msLiqPay — 1 поле для выбора языка. Вернуть после оплаты на корректную языковую версию, и тем более в корзину, не получится.
Особенность miniShop2 — при смене контекста товар/заказ не сохраняется…
Контексты — на сайте 2 языка, в настройках msLiqPay — 1 поле для выбора языка. Вернуть после оплаты на корректную языковую версию, и тем более в корзину, не получится.
Особенность miniShop2 — при смене контекста товар/заказ не сохраняется…
Согласно правил modstore.pro Вы приобретаете не программу, а техподдержку на год.
Для разрешения спорных вопросов Вы можете обратиться к администрации магазина, я к ней не отношусь.
Для разрешения спорных вопросов Вы можете обратиться к администрации магазина, я к ней не отношусь.
Ок. Для меня проблематично оплатить в РФ. Тогда знакомый ездил туда, оплатил мне сразу все модули. Сейчас такой возможности нет.
Но чувствовать себя обманутой как то не приятно. Мне продали модуль, который не соответствует описанию на странице его продажи в modstore.pro.
При отмене оплаты перекидывает на страницу успешной оплаты, все ссылки в системных настройках правильные. Как правильно настроить подскажите пожалуйста?
Насколько я знаю, на данный момент в системе LiqPay нет отдельной ссылки для отмены или неуспешной оплаты.
Компонент старый — давно писался — отсюда фактически неиспользуемая системная настройка.
Если и есть нечто подобное — значит нужно компонент переделать.
Компонент старый — давно писался — отсюда фактически неиспользуемая системная настройка.
Если и есть нечто подобное — значит нужно компонент переделать.
Приветствую! Возник такой вопрос. Если я правильно понял, с этого года нужно передавать на liqpay дополнительные данные — www.liqpay.ua/documentation/data_signature
Можно будет доработать модуль? Сколько это выйдет по бюджету?
Можно будет доработать модуль? Сколько это выйдет по бюджету?
Добрый день. Да доработку можно заказать, напишите в телеграм мне. Обсудим.
Здесь главная забота — отсутствие площадки для тестов. Нужен клиент для подключения.
Здесь главная забота — отсутствие площадки для тестов. Нужен клиент для подключения.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.