minishop2
дополнение Tinkoff Payment System
На данный момент не пойму как его использовать. Просто разместил на сайте предоставленный на сайте тинькофа код и вставил в него ключ терминала.
<div class="right">
<form name="TinkoffPayForm" onsubmit="pay(this); return false;">
<script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
<input class="tinkoffPayRow" type="hidden" name="terminalkey" value="**************">
<input class="tinkoffPayRow" type="hidden" name="frame" value="false">
<input class="tinkoffPayRow" type="hidden" name="language" value="ru">
<input class="tinkoffPayRow" type="hidden" id="amount" placeholder="Сумма заказа" value="{$total.cost}" name="amount" disabled required>
<input class="tinkoffPayRow" type="hidden" placeholder="Номер заказа" name="order">
<input class="tinkoffPayRow" type="hidden" placeholder="Описание заказа" value="{$order.num}" disabled name="description">
<input class="tinkoffPayRow" type="hidden" placeholder="ФИО плательщика" name="name">
<input class="tinkoffPayRow" type="hidden" placeholder="E-mail" name="email">
<input class="tinkoffPayRow" type="hidden" placeholder="Контактный телефон" name="phone">
<input class="tinkoffPayRow btn btn-default btn-clear-cart btn_order" type="submit" value="Оплатить">
</form>
</div>
в чанке tpl.msGetOrder
Что хочется сделать: Чтобы кнопка оплаты появлялась только при выборе способа оплаты картой. В идеале конечно прямо на странице корзины, но можно и на странице с подтверждением.
И чтобы в админ панели было понятно какой заказ уже оплачен, а какой нет. Я так понимаю это делается через личный кабинет тинькофа ссылкой на определенную страницу. Но какой код должен быть понятия не имею =(
Костромин Игорь 15.07.2018 22:56 #
Diletant 15.07.2018 23:59 #
Алексей Либер 16.07.2018 15:27 #
Для того чтобы понимать какой заказ оплачен, какой нет, вы должны настроить модуль таким образом, чтобы при оплате на ваш сайт поступал определенный запрос от банка, который бы и менял статус заказа.
Касательно того, чтобы форма открывалась бы при клике на соответствующую кнопку — ну JS же чистой воды…
Diletant 16.07.2018 15:46 #
Алексей Либер 16.07.2018 15:49 #
Diletant 16.07.2018 16:29 #
${Message}&Details=${Details}"
Делаю вот так sitename.ru/index.php?id=217?Success=${Success}&ErrorCode=${ErrorCode}&OrderId=${OrderId}&Message= ${Message}&Details=${Details}
И меня кидает не на страницу с ид217, а на главную и в ответе ид заказа много неизвестных мне цифр, хотя в заказе ид отправлял 180/07.
И когда он возвращает мне эти значения как заставить мод икс их обработать и изменить заказ на оплачено, все равно пока не понял(
Diletant 16.07.2018 16:36 #
Diletant 16.07.2018 16:38 #
Но как сказать об этом минишопу что заказ номер 321 оплачен?(
Алексей Либер 16.07.2018 16:41 #
Эта строка служит для того чтобы направить пользователя дальше на страницу успешной оплаты, в которой вы скажете что все гут и менеджеры пляшут от счастья. Сам же процесс должен происходить в закрытом режиме, с использованием ключей и всяких других систем защиты.
Алексей Либер 16.07.2018 16:39 #
Это если вкратце. Вы же писали что хотите разобраться?) Ну вот и разбирайтесь) Со спецификой вашего банка разбираться не хочется.
Diletant 16.07.2018 16:47 #
А ему и не надо обратно. Он выбрал товар, перешел в корзину, нажал оформить. Заказ оформлен, появляется кнопка оплатить. Нажимает оплатить, предлагается ввести данные карты, после внесения данных и нажатия оплаты его перекидывает на созданную мной страницу с благодарностями которая меняет стату заказа с «новый» на «оплачен».
Так с банком вы мне уже помогли. Спасибо)
Теперь бы мод икс и минишоп победить)
Diletant 16.07.2018 16:50 #
Алексей Либер 16.07.2018 16:55 #
Но еще раз говорю: что будет, если пользователь сам подставит нужную ссылку или у него будет обрыв связи и после оплаты он не сможет дойти до вашего сайта?
Так то это обычным $xpdo->update(); делается. Получили ID заказа, увидели успех, поменяли статус. Но пишу уже в третий раз — это неправильное решение!!!
Помимо id заказа вы должны получить контрольную сумму. Сверить ее с отпечатком и только после этого менять статус. Плюс к этому — должно все это происходить в фоновом режиме. Запросом от банка, а не редиректом пользователя.
Посмотрите на реализацию на других примерах, например на вот этом.
Diletant 16.07.2018 17:06 #
Тут я совсем плох.
Первый вариант не особо страшен. Статус платежа можно проверить и в личном кабинете банка, просто там он появляется с задержкой.
А вот по второму пункту да, вы правы. Все плохо. Ладно. Спасибо буду дальше ковырять, проблема в ограниченном времени. Будем ждать подтверждений от банка пока что)
Алексей Либер 16.07.2018 17:15 #
Если нет времени — приобретите компонент и не мучайте голову. Если хотите делать сами, то разбирайтесь до конца.