forum.bitel.ru
http://forum.bitel.ru/

Рекуррентные платежи
http://forum.bitel.ru/viewtopic.php?f=63&t=12917
Страница 1 из 1

Автор:  Incubo [ 31 май 2018, 15:14 ]
Заголовок сообщения:  Рекуррентные платежи

Добрый день.

Возможно добавить в модуль поддержку рекуррентных платежей (TRTYPE = 171) в обработке уведомлений от банка? Набор параметров такой же как и при оплате (TRTYPE = 1).

Автор:  skn [ 31 май 2018, 19:23 ]
Заголовок сообщения:  Re: Рекуррентные платежи

ну обычно этого не достаточно...
нужен протокол поизучать....

Автор:  Incubo [ 31 май 2018, 20:22 ]
Заголовок сообщения:  Re: Рекуррентные платежи

Основной протокол реализован
https://www.psbank.ru/-/media/Files/Pro ... s_api.ashx
Прикрепил дополнение к протоколу для работы с рекуррентными платежами.

Сам платеж успешно прошел и от банка пришло уведомление об успехе. Но в ru.bitel.bgbilling.modules.psb.server.ModuleExecutor обработка только для TRTYPE 0, 1, 21 и 22.

Вложения:
Протокол_взаимодействия - рекуррентные платежи.doc [35.5 КБ]
Скачиваний: 259

Автор:  skn [ 31 май 2018, 22:38 ]
Заголовок сообщения:  Re: Рекуррентные платежи

вы используете какую внешную систему для регистрации рекурентных платежей?

Автор:  Incubo [ 01 июн 2018, 13:55 ]
Заголовок сообщения:  Re: Рекуррентные платежи

Написан свой личный кабинет абонентов.

Автор:  skn [ 01 июн 2018, 14:16 ]
Заголовок сообщения:  Re: Рекуррентные платежи

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

Автор:  Incubo [ 01 июн 2018, 14:40 ]
Заголовок сообщения:  Re: Рекуррентные платежи

Урл для уведомлений о платежах общий и для обычных платежей и для рекуррентных. Не хотелось бы вносить своих правок чтоб потом при обновлении не попались на полностью не работающие платежи с карт. Может можно сейчас добавить обработчик для уведомлений, а полноценную поддержку уже потом?
Изменения то минимальные: массив требуемых параметров абсолютно аналогочен SET_1 и добавить 2 условия:
Код:
private static final String[] SET_171 = new String[]{"AMOUNT", "CURRENCY", "ORDER", "MERCH_NAME", "MERCHANT", "TERMINAL", "EMAIL", "TRTYPE", "TIMESTAMP", "NONCE", "BACKREF", "RESULT", "RC", "RCTEXT", "AUTHCODE", "RRN", "INT_REF"};

if ( ... || TRTYPE == 171 && this.check(request, secret, SET_171))

if (TRTYPE == 1 || TRTYPE == 171) {

Автор:  skn [ 01 июн 2018, 15:31 ]
Заголовок сообщения:  Re: Рекуррентные платежи

вы уверены, что набор и последовательность параметров именно такая, в файле, что вы приложили выше это не описано, а для других запросов набор и последовательность менялись (насколько я понимаю из соображений безопасности, порядок параметров влият на проверку подписи запроса)

Код:
private static final String[] SET_171 = new String[]{"AMOUNT", "CURRENCY", "ORDER", "MERCH_NAME", "MERCHANT", "TERMINAL", "EMAIL", "TRTYPE", "TIMESTAMP", "NONCE", "BACKREF", "RESULT", "RC", "RCTEXT", "AUTHCODE", "RRN", "INT_REF"};

Автор:  Incubo [ 01 июн 2018, 15:52 ]
Заголовок сообщения:  Re: Рекуррентные платежи

Да, набор и последовательность именно такая

Автор:  skn [ 01 июн 2018, 16:23 ]
Заголовок сообщения:  Re: Рекуррентные платежи

какую версию вы используете?

Автор:  Incubo [ 01 июн 2018, 16:24 ]
Заголовок сообщения:  Re: Рекуррентные платежи

psb: вер. 7.0.52 / 14.03.2018 16:04:36

Автор:  Incubo [ 09 июл 2018, 17:58 ]
Заголовок сообщения:  Re: Рекуррентные платежи

psb: вер. 7.0.59 / 28.06.2018 19:21:26
Код:
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream - java.lang.NullPointerException
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.modules.psb.server.bean.TransactionManager.lambda$doRequest$0(TransactionManager.java:257)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1691)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.modules.psb.server.bean.TransactionManager.doRequest(TransactionManager.java:256)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.modules.psb.server.Module$1.notify(Module.java:108)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.modules.psb.server.Module$1.notify(Module.java:56)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:359)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:19)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:87)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at java.lang.Thread.run(Thread.java:748)
mq 07-09/14:45:01 ERROR [event-proc-p-2-t-1] LoggingPrintStream -    at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)

Автор:  skn [ 10 июл 2018, 19:03 ]
Заголовок сообщения:  Re: Рекуррентные платежи

пофиксили

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/