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

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

Доброго дня.

Не уверен приветствуется ли такое на этом ресурсе, но попробую.

Делаю магазин. Нужен модуль оплаты.

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

 

Описание сервиса оплаты ipay Беларусь.

Сервис умеет оплачивать:

 

1. СМС-оплата для абонентов МТС и life:) - сформировать и отобразить клиенту текст СМС,
который он должен отправить на номер 553 для оплаты своего заказа. Например, "Отправьте на номер 553 СМС с текстом: 444 999999"

2. Оплата через сайт системы iPay для абонентов МТС - переадресация клиентов на сайт iPay по ссылке для оплаты
с баланса МТС;

3. Оплата через сайт системы iPay для абонентов мобильной сети life:) - переадресация клиентов на сайт iPay по ссылке для оплаты
с баланса life:).

 

4.Оплатить через систему "Расчет" (ЕРИП). Оплата заказа в инфокиосках, банкоматах, интернет и
SMS-банкингах в банках участниках системы "Расчет".

 

Вот этот 4-й пункт мне более всего интересен. Первые три пока даже не уверен, что буду реализовывать.

 

По поводу этого 4-го пункта. Клиент формирует корзину, выбирает доставку, метод оплаты и попадает на страницу, где ему я сообщаю инструкции, номер заказа и идентификатор получателя платежа. Например:

 

Номер выставленного Вам счета в системе "Расчет": 999999
Запишите номер счета - он понадобится Вам для оплаты.
Сформированный счет Вы можете оплатить:
- в любой кассе или банкомате ближайшего банка;
- через платежные терминалы, инфокиоски;
- через системы интернет-банкинга и СМС-банкинга;
- через платежные системы iPay, WebMoney, Easypay.

Найдите в перечне услуг системы "Расчет" следующую услугу
(указать точное расположение в дереве услуг ЕРИП):
+ Платежи по Беларуси (ЕРИП)
+ Интернет-магазины/сервисы
+ H
> мой_магазин.by
и введите номер выставленного Вам счета.

 

То есть нет единого места-сайта откуда может поступить платеж.

 

Я взял за основу модуль платежа донор liqpay. Изменил название файлов модуля в админке и каталоге на ipay.php

Заменил внутри в файлах соответственно "liqpay" на "ipay". Заменил в переводе на ipay.

 

1. Мне нужно по кнопке "подтвердить заказ", отправить клиента на свою страничку с инструкцией

Для этого в файле \catalog\controller\payment\ipay.php

я должен передать ссылку на инструкцию

$this->data['action'] = 'ссылка';

Как лучше создать такую страничку с инструкцией и как будет выглядить ссылка на неё?

 

 

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


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

это нужно модуль создавать) ищите кодера, которые смогут это сделать) для этого создайте тему в разделе "услуги"

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


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

1. Мне нужно по кнопке "подтвердить заказ", отправить клиента на свою страничку с инструкцией

Для этого в файле \catalog\controller\payment\ipay.php

я должен передать ссылку на инструкцию

$this->data['action'] = 'ссылка';

Как лучше создать такую страничку с инструкцией и как будет выглядить ссылка на неё?

Создал в  админке новую статью с инструкцией об оплате (information_id=13). 

Ссылка на статью: $this->data['action'] = 'index.php?route=information/information&information_id=13';

 

номер заказа можно получить так: $this->session->data['order_id']. Правильно?

Можно ли отобразить в этой статье номер заказа? Как это лучше сделать? 

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


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

К сожалению не нашел способа добавить значение переменной "номер заказа" в статью.

Но нашел урок по созданию собственных страниц в Opencart: http://s-engineer.ru/dobavlyaem-novuyu-stranicu-sxemu-v-opencart/

Клонировал home. В controller создал папку oplata. Новую страницу назвал erip. Создал файлы erip.php и erip.tpl. Все что надо поменял, как в уроке.
В erip.tpl вывел в html инструкцию по оплате.
В нужном месте вставил код заказа.
<p>
Номер выставленного Вам счета в системе "Расчет":  
<h3><?php
//$this->load->model('checkout/order');

$order_info = $this->session->data['order_id']; 

echo $order_info;
?>
</h3>
</p>
В файле модуля оплаты ipay.php ссылка на страницу с инструкцией об оплате выглядит так:
$this->data['action'] = $this->url->link('oplata/erip', '', 'SSL');

Следующий этап, обработка заказа.
После отображения страницы с инструкцией, корзина должна быть очищена, заказ помещен в обработку. Однако корзина не очищается. В каком месте модуля оплаты смотреть?

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


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

что-то получилось.

ЕРИП не имеет единой точки входа. Клиент сам решает как ему лучше воспользоваться этим сервисом оплаты (банкомат, SMS или интернет банкинг  и т.д)

Поэтому после нажатия кнопки подтвердить заказ, клиент должен попасть на нашу страницу с инструкцией по оплате, где еще раз подтверждает оплату кнопкой. После этого, заказ закрывается и переходит в статус "ожидание оплаты". Корзина очищается. Клиент переходит на страницу checkout/success.

 

Все переделано с начала.

В качестве донора взят модуль webpay. Файлы скопированы, переименованы. Внутри исправлены названия переменных функций ссылок и т.д на erip___.

Добавлена новая статья (eripinfo.php в папке payment и eripinfo.tpl в теме default)  по уроку http://s-engineer.ru/dobavlyaem-novuyu-stranicu-sxemu-v-opencart/

Ссылка $this->data['action'] = $this->url->link('payment/eripinfo', '', 'SSL'); в файле controller/payment/erip.php открывает страницу с информацией об оплате, сообщает клиенту номер заказа.

 

Скрипт в файле  eripinfo.tpl добовляет на эту страницу кнопку и при нажатии "закрывает заказ". 

<div class="buttons">
<div class="right">
<input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="button" />
</div>
</div>
<script type="text/javascript"><!--
$('#button-confirm').bind('click', function() {
$.ajax({
type: 'get',
url: 'index.php?route=payment/erip/confirm',
success: function() {
location = '<?php echo $continue; ?>';
}
});
});
//--></script>

 

В файле eripinfo.php определяем переменные:

$this->data['button_confirm'] = $this->language->get('button_confirm');
$this->data['continue'] = $this->url->link('checkout/success');

 

Дальше нужно принять данные от системы ЕРИП.

Ковыряем функцию public function callback() в файле erip.php. Правильно?

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


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

Скоро мне предстоит тот же геморрой с ЕРИПОМ.

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


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

Елки. Тяжело то как без опыта :).

 

Неделю разбирался с алгоритмом изменения статуса заказа.

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

Клиент отправляется на сайт платежной системы.

В базе данных магазина появляется заказ со статусом 0. Этот заказ не виден ни в админке ни в истории заказов у клиента, только в базе данных.

Корзина остается полной. 

Если у клиента не получилось оплатить, он имеет возможность оплатить корзину еще раз. Старый заказ со статусом 0 остается в базе данных.

Если от сайта оплаты приходит ответ о том что проплата прошла успешно, статус заказа изменяется на нужный (обычно выбирается в админке).

 

Более сложные системы оплаты (ЕРИП в том числе), требуют прохождения нескольких этапов с приемом и отправкой сообщений на сервер системы оплаты. На каждом этапе по хорошему, нужно было бы менять статус заказа. С этим и разбираюсь.

К тому же ipay просит реализацию как минимум 2-х модулей оплаты (с переходом на их сайт и с переходом на инструкцию  по оплате ЕРИП на своем сайте). Модули будут похожие, но не одинаковые.  

 

Пока есть надежда что что-то получится. :)

  • +1 1

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


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

Давайте скинемся на модуль для ipay.by, тоже есть потребность в этом.

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


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

К тому же ipay просит реализацию как минимум 2-х модулей оплаты (с переходом на их сайт и с переходом на инструкцию  по оплате ЕРИП на своем сайте). Модули будут похожие, но не одинаковые.  

Делал ЕРИП через ХуткиГрош, причем выбор был сделан в его пользу по простой причине - у второго косая форма запроса услуги  :-D и никак не мог им запрос отправить. У ХГ нет перехода на их сайт, только API. Т.е. отправляется сообщение ХГ, а он уже формирует счет в ЕРИП.

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


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

Походу ничего не вышло )))

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


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

тоже интересен модуль для ipay.by. Сколько он будет стоить?

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


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

Тот же вопрос. Взялся кто-нибудь за реализацию?

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


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От teslaS
      Доброго времени всем. Призываются владельцы интернет-магазинов из Беларуси, кому интересен "модуль отложенная оплата" для WEBPAY, EasyPay, АИС ЕРИП. Есть возможность заказать разработку данного модуля вскладчину, но сумма серьезная, вместе будет дешевле. Всем заинтересованным отвечу чего и почем.
  • Последние посетители   0 пользователей онлайн

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

×

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

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