[Скачать] Оплата через WebPay.by

  • 28 Ответов
  • 1640 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

ViktorMah

  • ****
  • 251
  • 27
Всем доброго времени суток.
Вот и у мня появилась нужда в таком методе оплаты https://webpay.by/.

Расковырял pm_paypal и парочку, давно купленных на http://nevigen.com/ru/, pm_2checkout и pm_liqpay  
Вот чего получилось :
1 - переходит на сайт платёжной системы.
2 - после совершения платежа в систем и нажатии на кнопку завершить получаем новый заказ в админке JoomShopping со статусом "Оплачен".
3 - сохраняет № Transaction (кнопка "Transaction" в списке заказов).
4 - к имени товара добавлены код_товара+атрибуты
5 - учитывает сумму скидки
UP-1.0.1
6 - учитывает установленную в настройках "цену" комиссии платежной системы Но при этом выдаёт ошибку, так как в API не учитывается наш параметр "Стоимость оплаты".

Так выглядит в админке:
Спойлер
[свернуть]
Что ещё нужно:
1 - научить плагин изменять статус заказа, в системе WebPay.by, на завершен. Пока только руками а админке биллинга.
По заявлению тех.поддержки -
Цитировать
У  всех  успешных  платежей  статус  автоматом  становится Authorized.
Completed у платежа будет установлен автоматически через 24 часа после
установки статуса Authorized.
2 - проверить в рабочем режиме. У меня пока нет возможности перейти в рабочий режим.
3 - На варианты ошибок - Отказался от оплаты, Не нажал кнопку "Завершить". Вроде всё работает
3 - Проверить корректность работы при использовании "Купонов на скидки". Также похоже работает нормально.
4 - желательно проверить совместимость с SSL

P.S. Уважаемый dmitry_stas прошу сильно не не гневаться за копипаст ваших решений.
Документация по API: https://yadi.sk/i/CJ3aTK1efjtSf получена от тех.поддержки WebPay.by - 2.04.2015

« Последнее редактирование: 01.07.2016, 10:41:03 от ViktorMah »

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: Модуль оплаты что не так ?
« Ответ #1 : 02.04.2015, 14:35:02 »
та какие обиды? во-первых эти плагины под gpl, а во-вторых создание нового - это не ломание старого :) так что никаких обид.

по проблеме - вы передаете order_number, а в ответе пытаетесь получить его как order_id. а они не всегда совпадают.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #2 : 02.04.2015, 20:59:32 »
Двигаемся семимильными шагами, даже не ожидал от себя такого. Хотя это Ваша заслуга dmitry_stas = понятный код пишите. Спасибо.

Теперь к делам насущным)))) Переиграл код function checkTransaction . Теперь заказ уже в админку падает, но как отмененный.

Спойлер
[свернуть]

Цитировать
Для проверки платежа при возврате на страницу Интернет-ресурса, указанному в  поле  wsb_return_url,  необходимо  выполнить  API  команду  биллинга «get_transaction».

Нужно прикрутить этот код:
Спойлер
[свернуть]


и ещё, лог платежа
Спойлер
[свернуть]
« Последнее редактирование: 07.04.2015, 09:41:40 от ViktorMah »

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #3 : 03.04.2015, 14:01:23 »
К началу вторых суток Google таки дал толковую ссылку на тему "Как передать XML через POST" => http://joomlaforum.ru/index.php/topic,260826.0.html
В итоге вставил форму таким видом:
Спойлер
[свернуть]
« Последнее редактирование: 03.04.2015, 14:07:23 от ViktorMah »

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #4 : 03.04.2015, 15:44:58 »
Только что обратил внимание - возврат со страницы оплаты sandbox.webpay.by, по нажатию "Завершить", происходит на страницу Step5 вместо Step7.
Подскажите где я мог накосячить.

Спойлер
[свернуть]

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: Модуль оплаты что не так ?
« Ответ #5 : 03.04.2015, 16:19:32 »
правильнее будет сказать с шага 7 переходит на шаг 5
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #6 : 03.04.2015, 16:34:49 »
правильнее будет сказать с шага 7 переходит на шаг 5
Да, да. Вы абсолютно правы.
Но почему так происходит?

Ведь в таком случае я просто физически не могу выполнить проверку оплаты. И следующие действия тоже. :(

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: Модуль оплаты что не так ?
« Ответ #7 : 03.04.2015, 17:31:39 »
проверка уже была. редирект происходит после нее

Цитата: \components\com_jshopping\controllers\checkout.php
       if (in_array($rescode, array(0,3,4))){
            JError::raiseWarning(500, $restext);
            if (!$wmiframe){
                $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
            }else{
                $this->iframeRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5',0,1,$jshopConfig->use_ssl));
            }
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #8 : 03.04.2015, 23:02:55 »
Продолжаю отчёт о данном творении.
Ещё раз спасибо Вам Дмитрий.
Удалось получить "Заказ завершен" со статусом "Оплачен".
Спойлер
[свернуть]
В принципе всё отлично.
Однако отправки XML запроса с авторизацией на сервисе не происходит. И следовательно для "Платежной системы" заказ становится notify.
И это сыплет в лог извещения с данными заказов.

Получается отправку той формы нужно увязать с уходом со страницы ФИНИШ или с событием "Изменить статус заказа = Проверен/Завершен " .
И снова данные размышлизмы приводят к вопросу - КАК это реализовать?


П.С.  
Как Вы считаете, может стоит выложить данный метод оплаты в паблик?  ::)
Уже  ;)

« Последнее редактирование: 04.04.2015, 14:02:12 от ViktorMah »

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: Модуль оплаты что не так ?
« Ответ #9 : 04.04.2015, 00:41:02 »
Получается отправку той формы нужно увязать с уходом со страницы ФИНИШ или с событием "Изменить статус заказа = Проверен/Завершен " .

надо читать документацию, что надо отдать при notify-запросе платежной системы. обычно это ответ что то типа 200 ОК. как правило отдается в функции nofityFinish платежного плагина.

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

вопрос адресован мне или всем? если мне - то зря. это ваше творение, как считаете, так и поступайте. если интересует именно мое мнение, то я думаю, что если вы не планируете его поддерживать в будущем - то проще выложить в паблик. будет лучше всем, и вам в том числе, потому что если когда нибудь понадобится версия для более нового ЖШ, то вполне вероятно, что общими усилиями уже будет найдено, что нужно изменить.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: Модуль оплаты что не так ?
« Ответ #10 : 04.04.2015, 00:51:17 »
надо читать документацию, что надо отдать при notify-запросе платежной системы. обычно это ответ что то типа 200 ОК. как правило отдается в функции nofityFinish платежного плагина.
Да ответ 200 ОК
Цитировать
После  совершения  удачного  платежа,  система  Webpay  будет  отсылать специально  сформированный  POST-запрос  по  адресу,  указанному  в  поле wsb_notify_url  Интернет-ресурса.  В  этом  запросе  содержится  информация  по платежу.  Полученную  информацию  Интернет-ресурс  должен  проверить  в соответствии с требованиями выполнения заказа и ответить на запрос кодом: "HTTP/1.0 200 OK".

Отдельное спасибо за  - в функции nofityFinish платежного плагина.

« Последнее редактирование: 04.04.2015, 14:00:44 от ViktorMah »

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: Оплата через WebPay.by
« Ответ #11 : 04.04.2015, 11:47:27 »
ну т.е. все? победа? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #12 : 04.04.2015, 12:25:59 »
Доброго дня.
ну т.е. все? победа? :)
Пока не совсем. Жду ответа от тех.поддержки - "Какой командой отправлять в систему  изменение статуса заказа = Завершен"

Уважаемый  nevigen. прошу перенести тему в раздел "Плагины оплаты"

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: [Скачать] Оплата через WebPay.by
« Ответ #13 : 04.04.2015, 12:42:42 »
Жду ответа от тех.поддержки - "Какой командой отправлять в систему  изменение статуса заказа = Завершен"

так я ж вроде сказал какой, и вы даже вроде подтвердили

ответ что то типа 200 ОК. как правило отдается в функции nofityFinish платежного плагина
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #14 : 04.04.2015, 13:09:21 »
да, но я пока этого не делал.
не уверен что правильно сделал:
Спойлер
[свернуть]
вроде в логи больше не спамит  ::). Только 1 пакет данных заказа приходит, а за вчерашний день до 70Кб файл paymentdata.log раздуло
Однако в системе статус остался Authorized а не Completed.
Разумеется загнать менеджера в адмику билинга разок другой в день = "Это святое"  ;D



« Последнее редактирование: 04.04.2015, 16:34:59 от ViktorMah »

*

umnik.pk

  • ***
  • 53
  • 0
Re: [Скачать] Оплата через WebPay.by
« Ответ #15 : 04.04.2015, 16:58:00 »
Спасибо!
очень кстати Вы затеяли работу, так как встала потребность уже автоматизировать оплату на сайте...
http://gorodv.by - сайт моего города.

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #16 : 04.04.2015, 21:12:32 »
Смоделировал ситуацию - оплатил - кнопку Завершить не нажал - закрыл страницу биллинга.
Контора денежку сняла, а заказ не появился, но уведомление на $notify_url пришло.
Отсюда напрашивается вывод :
предстоит еще в nofityFinish сделать условие проверки по id заказов
и если нет такого id в базе отправлять - отменен

Но реализация откладывается до следующей недели.
Подозреваю, что тех.поддержка и завтра не ответит - какие команды для изменения статусов в биллинге можно применять.
« Последнее редактирование: 04.04.2015, 21:30:02 от ViktorMah »

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #17 : 05.04.2015, 13:21:19 »
Доброго времени суток.
Обновил до v1.0.2(BETA). Добавлено:
Цитировать
3 - сохраняет № Transaction (кнопка "Transaction" в списке заказов).

dmitry_stas у меня к Вам теоретический вопрос.
Код: php
function nofityFinish($pmconfigs) {
............

   return $params;
}
для чего предназначен return ....;  - для сохранения инфы в JS, или он может быть использован для отправки ответа на сервер платёжной системы?

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: [Скачать] Оплата через WebPay.by
« Ответ #18 : 05.04.2015, 13:44:46 »
вы неверно понимаете назначение nofityFinish. этот метод нужен исключительно для ответа платежной системе при $act = "notify". никаких return и прочего в нем смысла делать нет. максимум - это проверка на то, какой именно ответ должен быть, да и то, поскольку такая проверка (читай - проверка платежа) делается в checkTransaction, то обычно в nofityFinish нет смысла делать ее повторно, а можно просто использовать результат проверки из checkTransaction.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #19 : 07.04.2015, 10:49:39 »
Вроде всё получилось в рамках когда покупатель при оплате нажимает на кнопку "Завершить платёж".

Однако чего делать в ситуацией когда покупатель не смог или не захотел нажать "Завершить платёж"? => Заказ в магазине не создался, но деньги с покупателя сняли => и на index.php?option=com_jshopping&controller=checkout&task=step7&act=notify&js_paymentclass=pm_webpayby  пришло уведомление =>
Спойлер
[свернуть]
=> В обычном режиме магазина, а не в "Разработчик" , менеджер даже и не узнает о поступлении такого платежа. В результате потеря клиента, денег и падение репутации магазина.

Как известить менеджера о таком "Не завершенном заказе"? Чтобы менеджер в биллинге поднял историю платежей/счетов и руками, в админке магазина, создал заказ.
« Последнее редактирование: 07.04.2015, 10:58:34 от ViktorMah »

*

nevigen

  • *****
  • 8832
  • 754
  • http://n*****n.com
Re: [Скачать] Оплата через WebPay.by
« Ответ #20 : 07.04.2015, 11:19:39 »
http://prntscr.com/6qlrxh
а вот как манагеру узнать что оплачен а не брошен... тут ХЗ.
только в панели плат.сервиса
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: [Скачать] Оплата через WebPay.by
« Ответ #21 : 07.04.2015, 11:27:05 »
Цитировать
покупатель не смог или не захотел нажать "Завершить платёж"? => Заказ в магазине не создался

почему не создался?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #22 : 07.04.2015, 11:55:31 »
почему не создался?
Хотел бы я знать ответ на данный вопрос.

*

nevigen

  • *****
  • 8832
  • 754
  • http://n*****n.com
Re: [Скачать] Оплата через WebPay.by
« Ответ #23 : 07.04.2015, 12:19:42 »
не создался или незакончен ?
его физическинет даже в базе ?
« Последнее редактирование: 07.04.2015, 12:31:12 от nevigen »
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #24 : 07.04.2015, 13:04:57 »
Да его нет физически.

Выдержки из мануала API
Спойлер
[свернуть]

Получается - нужно на index.php?option=com_jshopping&controller=checkout&task=step7&act=notify&js_paymentclass=pm_webpayby в момент прихода такого извещения произвести сверку site_order_id с id существующих заказов и если такого ID нет отправлять письмо менеджеру с данными = " поступила оплата = transaction_id, № счета в платёжной системе = order_id, для не созданного заказа = site_order_id  СОРОЧНО ПРИМИТЕ МЕРЫ"
« Последнее редактирование: 07.04.2015, 13:18:15 от ViktorMah »

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: [Скачать] Оплата через WebPay.by
« Ответ #25 : 07.04.2015, 13:12:19 »
Да его нет физически.

вы что то путаете. заказ есть
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #26 : 07.04.2015, 13:22:37 »
вы что то путаете. заказ есть
Минут через 20 выложу лог файл + скрины

или могу дать доступ к сайту на котором всё енто тестирую


Извиняюсь действительно есть.
Моя ошибка = просто не нажал на кнопку поиска(лупу) после выбора режима "Показывать не законченные" .
ожидал автоматического изменения отображения страницы "Списка заказов"

 *DRINK*

« Последнее редактирование: 07.04.2015, 13:30:11 от ViktorMah »

*

dmitry_stas

  • ********
  • 9645
  • 929
Re: [Скачать] Оплата через WebPay.by
« Ответ #27 : 07.04.2015, 14:42:58 »
Извиняюсь действительно есть

ну просто если бы было иначе - то вы бы даже не смогли перейти на оплату. ведь не было бы данных о сумме заказа, и так далее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ViktorMah

  • ****
  • 251
  • 27
Re: [Скачать] Оплата через WebPay.by
« Ответ #28 : 22.06.2016, 21:02:53 »
Ввиду грядущей деноминации BYR произвёл
обновление аддона до v-1.0.1

- исправлена ошибка в расчёте скидки.
- в отправляемые суммы включены десятичные доли с округлением до сотых.