Перейти к содержанию
kon

[Модуль] Z-Payment NG - next generation

Рекомендуемые сообщения

По мере подключения платежных систем сталкиваюсь со сложностями. По возможности сложности решаю и выкладываю на пользу/радоcть народу.Итак переделанный модуль для z-payment. Различия с исходным модулем:1. Включен "Пароль инициализации магазина" (повышение секурности раз в сто)2.а. Ручками заведите в магазине статус заказа "Ожидает оплаты"2.b В админке в настройке z-payment выставьте: Статус заказа после оплаты - "В обработке" Статус заказа после выписки счета: "Ожидает оплаты"Зачем это надо?Z-payment предполагает как вариант - отложенный платеж, например перевод через сбербанк - блиц.Если клиент выберет отложенный платеж - то он будет переправлен на страничку checkout/wait где ему объяснят, что заказ принят, но движуха начнется после получения денег. Статус заказа будет "Ожидает оплаты"Причем когда денежки придут, клиент (надеюсь) получит уведомление об этом по почте и статус заказа изменится на "В обработке".В штатном варианте сбербанк-блиц платеж будет принят системой как проведенный.Комментарии приветствуются, как обычно.P.S. Добавлен контроллер в ядро - checkout/wait - адрес для посыла людей с принятым платежной системой, но отложенным платежом.

zpayment.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Оу, круто) Огромное спасибо за модуль)С ключем у меня секретным не пошло, пишет что не проходит проверку.Еще с кодировкой проблемы. Примечание по платежу в УТФ-6 отправляется, а страница оплаты з-пеймент в кирилице.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего не понял.

Просто секретного ключа в з-паймент нет.

есть:

Секретный ключ Merchant KeyПароль инициализации магазина
У меня сейчас оба используются.

Причем в опциях з-паймента стоит

Высылать предварительный запрос перед оплатой на Result URL = ДАВысылать Merchant Key, если Result URL обеспечивает безопасность = НЕТ
Сверьте админки z-paymenta и вашего магазина на предмет совпаденя всех ключей и адресов перехода. Даже если все выглядит хорошо, скопипастите из зпаймента ключи себе в магазин.

По поводу кодировок тоже не понял.

Не заскриншотите ли процесс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну смотрите, проблемы такие:Ставлю в z-payment "Пароль инициализации магазина", копирую его в админку модуля оплаты магазина, ставлю так же галочки как вы, пробую оплатить, вылазит - "Подпись к данным оплаты не прошла проверку!Если удалить из z-payment этот пароль, то все проходит.Но, в примечаниях платежа русские буквы получаются кракозябрами (примечание платежа берется из названия магазина + номер заказа) буквы выглядят так:интернет-гипермаркеС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этих паролях желательно не использовать спецсимволы.

Проверьте установку модуля. На месте ли файл catalog/view/theme/default/template/payment/zpayment.tpl ? не перекрывается ли он таким же файлом, но в другой теме?

Есть ли в нем строка:

<input name="ZP_SIGN" type="hidden" value="<?php echo md5($shop_id . $order_id . $amount . $init_password); ?>" />
По поводу кракозяб. На чем (операционка,система) крутится ваш магазин.

И еще. Попробуйте начать процедуру платежа в z-payment с моего сайта, будут ли кракозябы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, я только цифры ставил. Проверю сейчас с паролем, потом отпишусь.По поводу кракозябр, на сервере вроде freeBSD cтоит, если не ошибаюсь (majordomo).Так же интересная вещь. Если человек оплатил заказ, но не нажал вернуться на сайт магазина, то он в базе не фиксируется, точнее фиксируется, но не как активный и в кабинете и в админке его не видно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фиксируется, проверено. У мажордомов жесткое кеширование php скриптов. Вы можете видеть все очень замедленно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так нет же, если человек не нажал на кнопку перейти обратно в магазин, то заказ остается не активным, а если нажать на кнопку, то он становится активным и виден в личном кабинете и в админке.Если не нажал опять же, запись в базе делается, но order_status_id = 0, если нажал кнопку, то все ок и order_status_id = 1Грубо говоря этот статус меняется, если человек переходит по ссылке index.php?route=payment/zpayment/success

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В админку необходимо зайти и настроить состояния заказа после получения оплаты и после оформления заказа.

Потому что как только робот дергает магазин по поводу проведенной оплаты, происходит

confirm($LMI_PAYMENT_NO, $this->config->get('zpayment_order_status_id'), 'Z-payment');
И статус заказа меняется. Он не может остаться в нулях.

Не исключено, что если вы в админке не настраивали после установки этого модуля параметры, то zpayment_order_status_id может быть и нулевым.

После возврата на success, если стастус заказа всё еще нулевой - вас пошлет на страничку payment/wait

В админке - отключите - удалите - установите - настройте модуль.

Проверьте как работают платежи и куда вас поле success реально посылает - на success или wait.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, я скачал модуль, заменил все файлы, в админке магазина в оплате настроил z-payment, установил статусы для мнгновенной оплаты и отложенной.Пробовал сделать оплату и выбрать "себрбанк". Дохожу до страницы "распечатать квитанцию", там есть кнопка "вернуться в магазин" (она ссылается на адрес с sucess). Так вот, на этом экране счет в самой платежной системе выписывается, если закрыть эту страницу, то потом нигде, ни в админке магазина, не в лк покупателя не будет виден заказ, если нажать на кнопку "вернуться в магазин", то заказ везде становится виден, но добавляется в базу он в любом случае, если нажимаете подтвердить заказ, сразу перед экраном оплаты z-payment. но когда нажимаете подвердить, то заказ заносится в базу с нулевым значением order_status_id = 0, а после нажатия кнопки "вернуться в магазин", т.е перехода по sucess url 0 меняется на 1 и заказ появляется в админке и в личном кабинете. эта графа в таблице oc-order.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по поводу кеширования скриптов.Например если оплачивать с помощью их валюты zp, и нажимать "вернуться в магазин" то в личном кабинете статус очень быстро меняется с ожидает оплаты на оплачено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В случае со сбербанком, это действительно так.Алгоритм с отложеным платежом.подвердить => появился заказ, Статус = 0.Выбираем сбербанк. Печатаем счет.Нажимаем кнопку "возврат в магазин".Магазин понимает что клиент вернулся, но оплаты нет, (потому что платежный сервер нас дернет только после прихода денег по сбербанку.) и меняет статус заказа на "Ожидание", заказ появляется в админке и кабинете, клиент получает письмо, корзина очищается.Когда то потом приходит подтверждение о получении оплаты от робота.Статус заказа меняется на "Оплачен, в работе" - клиент получает письмо.Да, в данном случае если не вернуться в магазин, заказ не появится в админке до получения реальной оплаты. Алгоритм мнгновенного платежа.подвердить => появился заказ, Статус = 0.платим Z-рублами со своего кошелька.Робот дергает магазин, статус заказа меняется на "Оплачен, в работе", появляется в админке и кабинете, клиент получает письмо.Нажимаем кнопку "возврат в магазин". Магазин понимает что клиент вернулся, оплата есть, чистит корзину и ничего больше не делает.В данном случае если не вернуться на сайт, заказ будет оформлен, но корзина не очищена.Надо подумать как ее чистить при таком раскладе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по поводу кеширования скриптов.Например если оплачивать с помощью их валюты zp, и нажимать "вернуться в магазин" то в личном кабинете статус очень быстро меняется с ожидает оплаты на оплачено.

Это по тому, что вы вернулись в магазин чуть раньше робота, который известил сайт об оплате.У зпаймента задержка при этом секунд 8.Вообще платежные системы злодеи. Им бы отправлять клиента назад после успешной оплаты автоматом. Жилось бы легче.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот со всеми отложенными платежами так получается. Что если клиент не нажмет вернуться в магазин, то мы не получим информацию что клиент сделал заказ, ни клиент потом, если завйдет в свой ЛК не увидит ничего, испугается и не будет квитанцию оплачивать.Я вот сегодня это обнаружил, пришла от ЗП уведомлялка, что счет выставлен, смотрю, а заказа в админке нет, т.е чтобы узнать по нему детали, надо в базу лезть. Главный минус - то, что это может отпугнуть клиента, что квитанцию ему выписали, а в ЛК информации о заказе нет.Я пока что написал на стадии выбора способа оплаты, чтобы нажимали на кнопку вернуться в магазин.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот со всеми отложенными платежами так получается. Что если клиент не нажмет вернуться в магазин, то мы не получим информацию что клиент сделал заказ, ни клиент потом, если завйдет в свой ЛК не увидит ничего, испугается и не будет квитанцию оплачивать.

Для формирования видимого заказа нужна какая то отмашка. Кто бы ее мог дать? На какой стадии?Ведь когда мы посылаем клиента к банкирам мы не знаем заранее, будет быстрый платеж или отложенный.Хорошая мысль предупреждать клиента об обязательном возврате в магазин после оплаты товара.Если показывать заказы с 0 статусом, то вам моментально заспамят админку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так к банкирам и в терминалы - всегда отложенный, т.е должен появится заказ со статусом "ожидает оплаты" а потом уже смениться.Про то что нельзя делать 1 после нажатия подтвердить - это понятно, ведь покупатель может не продолжить оплату. А вот если он продолжил, выписал квиток или для терминала счет и закрыл окно, то плохо получается. И менеджеру заказ не сформировать и покупателю не посмотреть.Вот если бы отловить выставление счета как-нибудь, если выставляется, то id меняется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Значит перед переходом на сайт платежных систем нужно выкидывать алерт и объяснять клиенту, что для правильного формирования заказа, он обязан вернуться в магазин после оплаты или выписки счета. И кнопку "Да обязуюсь" и "Нет, не понял."Другой вариант, пинать платежные системы, чтобы они принимали от магазинов дополнительный параметр, позволяющий нам заставить вернуть пользователя в магазин, для корректного завершения операции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если сделаете алерт, то выложите пожалуйста.)Моих знаний хватает на то чтобы вставить в шаблон надпись. На экране выбора способа оплаты.Да, пнуть бы не помешало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот опять. Еще один заказ и опять не нажали, при том что написано. и красным выделено)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.