Рекурентные платежи

Оплата картами через процессинг Сбербанка

Рекурентные платежи

Сообщение Dog » 14 фев 2017, 21:49

Есть ли поддержка в модуле Сбербанка поддержка рекурентных(автоплатежей)?
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 14 фев 2017, 23:48

да
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 15 фев 2017, 14:54

можно ли как то протестировать их работу? тестовая лицензия на этот модуль я так понимаю не распространяется.
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 15 фев 2017, 15:55

у вас есть лицензия на модуль?
если нет пишите запрос на e-mail
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 27 фев 2017, 19:16

подскажите, как это работает?
все настроил, платежи проходят, авторизацию автоплатежа получаю.

как это будет выглядеть со стороны клиента? как нужно расположить задачи планировщика для этого модуля относительно модуля абонентских плат, чтобы перерыва в услуге у клиента не было? закрытие договоров по балансу происходит в 12-00, списание происходит в 13-00.
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 27 фев 2017, 19:54

$this->bbcode_second_pass_quote('Dog', '')одскажите, как это работает?
все настроил, платежи проходят, авторизацию автоплатежа получаю.

как это будет выглядеть со стороны клиента? как нужно расположить задачи планировщика для этого модуля относительно модуля абонентских плат, чтобы перерыва в услуге у клиента не было? закрытие договоров по балансу происходит в 12-00, списание происходит в 13-00.


автоплатежи поддерживают 3 режима работы
1) еженедельный, клиент из ЛК задает сумму и день недели в который эта сумма будет списываться
2) аналогично первому, только задается сумма и день месяца

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

3) автоматически, сумма и дата определяется внешним скриптом по алгоритму провайдера (пишется скрипт который в нужный момент кидает событие, пополнить баланс такого договора на такую сумму)
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 27 фев 2017, 20:19

а "Ручной автоплатеж" в клиенте, это пополнение баланса через полученную ранее авторизацию карты? ее тоже надо как то отдельно внешним скриптом обработать? у меня почему то при попытке такого автоплатежа платеж отклоняется с отбивкой -2007 = Время сессии истекло

https://yadi.sk/i/gH7xjHtu3EieL6

т.е. все платежи без галки автоплатеж проходят, а с галкой по таймауту отклоняются.
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 28 фев 2017, 16:40

из клиента "автоплатеж" должен проходить, возможно у вас не правильно что то настроено...
со сбером не общались, что они говорят по этой ошибке?
логи смотрели, может там что нибудь интересное есть?
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 28 фев 2017, 23:53

в ЛК Сбербанка висит заказ:

$this->bbcode_second_pass_code('', '
AuthCode:
2
Reference number:
Терминал:
123456
Процессинг:
12345678
ECI:
07
Код ответа:
-100
Расшифровка кода:
Попыток оплаты не было.
')

в настройках модуля все что можно\нужно указано.
в логах ничего не видно.
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 01 мар 2017, 03:11

в логах должны запросы к сберу, возможно нужно включить debug режим.
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 01 мар 2017, 14:37

$this->bbcode_second_pass_code('', '[root@server-billing-main server]# tail -f server.log | grep -i sberbank

03-01/11:28:02 DEBUG [http-bio-0.0.0.0-8080-exec-1] EventProcessor - Publish: Event[ru.bitel.bgbilling.modules.sberbank.server.event.SberbankAutopaymentEvent] moduleId: 23; pluginId: no; cid: 9764; scid: -1; userId: 0; timestamp: 1488356882696
03-01/11:28:02 DEBUG [event-proc-p-2-t-1] Consumer - Caught from BGBillingServer Event[ru.bitel.bgbilling.modules.sberbank.server.event.SberbankAutopaymentEvent] moduleId: 23; pluginId: no; cid: 9764; scid: -1; userId: 0; timestamp: 1488356882696
03-01/11:28:02 DEBUG [event-proc-p-2-t-1] AbstractDao - Запрос: https://3dsec.sberbank.ru/payment/rest/register.do?amount=10000&language=ru&orderNumber=14&userName=XXXXXXX&password=XXXXXXX&description=XXXXXXX&returnUrl=https%3A%2F%2FXXXXXXX%2Fbgbilling%2Fsberbank%2F23&clientId=23_9764
03-01/11:28:03 DEBUG [event-proc-p-2-t-1] AbstractDao - Ответ: {"orderId":"ceb6f8b3-d491-49bd-a303-54afab9d6386","formUrl":"https://3dsec.sberbank.ru/payment/merchants/gigacoms_new_ssl/payment_ru.html?mdOrder=ceb6f8b3-d491-49bd-a303-54afab9d6386"}
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - java.lang.NullPointerException
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at java.net.URLEncoder.encode(URLEncoder.java:204)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.sberbank.server.bean.TransactionManager.paymentOrderBinding(TransactionManager.java:664)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.sberbank.server.Module$2.notify(Module.java:104)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.modules.sberbank.server.Module$2.notify(Module.java:73)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:353)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:19)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at java.lang.Thread.run(Thread.java:745)
03-01/11:28:03 ERROR [event-proc-p-2-t-1] LoggingPrintStream - at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
03-01/11:28:03 DEBUG [event-proc-p-2-t-1] AbstractDao - Запрос: https://3dsec.sberbank.ru/payment/rest/paymentOrderBinding.do
03-01/11:28:03 DEBUG [event-proc-p-2-t-1] AbstractDao - Параметры зпроса: language=ru&mdOrder=ceb6f8b3-d491-49bd-a303-54afab9d6386&bindingId=null&userName=XXXXXXX&password=XXXXXXX
03-01/11:28:04 DEBUG [event-proc-p-2-t-1] AbstractDao - Ответ: {"error":"Связка не найдена","errorCode":2,"errorMessage":"Связка не найдена"}
03-01/11:28:04 ERROR [event-proc-p-2-t-1] Consumer - JSONObject["errorCode"] not a string.
org.json.JSONException: JSONObject["errorCode"] not a string.
at org.json.JSONObject.getString(Unknown Source)
at ru.bitel.bgbilling.modules.sberbank.server.bean.TransactionManager.paymentOrderBinding(TransactionManager.java:727)
at ru.bitel.bgbilling.modules.sberbank.server.Module$2.notify(Module.java:104)
at ru.bitel.bgbilling.modules.sberbank.server.Module$2.notify(Module.java:73)
at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:353)
at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:19)
at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:112)
at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)')

хотя в клиенте связка есть https://yadi.sk/i/qJ08LANI3EqVRd
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение skn » 01 мар 2017, 18:57

там два РАЗНЫХ логина и пароля вводятся для простых платежей и для рекурентных...
у вас так?
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение skn » 01 мар 2017, 19:09

судя по логу
$this->bbcode_second_pass_code('', ' Запрос: https://3dsec.sberbank.ru/payment/rest/paymentOrderBinding.do
03-01/11:28:03 DEBUG [event-proc-p-2-t-1] AbstractDao - Параметры зпроса: language=ru&mdOrder=ceb6f8b3-d491-49bd-a303-54afab9d6386&bindingId=null&userName=XXXXXXX&password=XXXXXXX
03-01/11:28:04 DEBUG [event-proc-p-2-t-1] AbstractDao - Ответ: {"error":"Связка не найдена","errorCode":2,"errorMessage":"Связка не найдена"}')

у вас bindingId=null

этот параметр храниться в таблице sberbank_autopayment_<mid> в поле access_token

поэтому автоплатеж и не проходит
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 03 мар 2017, 17:40

$this->bbcode_second_pass_quote('skn', '')ам два РАЗНЫХ логина и пароля вводятся для простых платежей и для рекурентных...
у вас так?

да https://yadi.sk/i/Q1IdbksL3Ewnpc
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение Dog » 03 мар 2017, 17:51

$this->bbcode_second_pass_code('', '03-03/14:49:01 DEBUG [http-bio-0.0.0.0-8080-exec-10] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.getAutopaymentBindingData; time => 164 ms.
03-03/14:49:37 DEBUG [http-bio-0.0.0.0-8080-exec-9] PermissionChecker - Action SberbankService:doManualAutopayment not found in dictionary for module 23
03-03/14:49:38 DEBUG [http-bio-0.0.0.0-8080-exec-9] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.doManualAutopayment; time => 125 ms.
03-03/14:49:38 DEBUG [http-bio-0.0.0.0-8080-exec-1] PermissionChecker - Action SberbankService:getAutopaymentCurrentMode not found in dictionary for module 23
03-03/14:49:38 DEBUG [http-bio-0.0.0.0-8080-exec-1] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.getAutopaymentCurrentMode; time => 0 ms.
03-03/14:49:53 DEBUG [http-bio-0.0.0.0-8080-exec-8] PermissionChecker - Action SberbankService:getAutopaymentCurrentMode not found in dictionary for module 23
03-03/14:49:53 DEBUG [http-bio-0.0.0.0-8080-exec-8] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.getAutopaymentCurrentMode; time => 1 ms.
03-03/14:49:53 DEBUG [http-bio-0.0.0.0-8080-exec-8] PermissionChecker - Action SberbankService:searchAutopaymentList not found in dictionary for module 23
03-03/14:49:53 DEBUG [http-bio-0.0.0.0-8080-exec-8] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.searchAutopaymentList; time => 1 ms.
03-03/14:49:54 DEBUG [http-bio-0.0.0.0-8080-exec-5] PermissionChecker - Action SberbankService:getAutopaymentCurrentMode not found in dictionary for module 23
03-03/14:49:54 DEBUG [http-bio-0.0.0.0-8080-exec-5] AbstractJaxWsHandler - executing ru.bitel.bgbilling.modules.sberbank.server.service.SberbankServiceImpl.getAutopaymentCurrentMode; time => 1 ms.
03-03/14:49:54 DEBUG [http-bio-0.0.0.0-8080-exec-5] PermissionChecker - Action SberbankService:searchAutopaymentList not found in dictionary for module 23
')

а это нормальное поведение?
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение Dog » 03 мар 2017, 17:53

$this->bbcode_second_pass_quote('skn', '
')этот параметр храниться в таблице sberbank_autopayment_<mid> в поле access_token

этот параметр в таблице всегда пустой. хотя сбербанк отвечает что связки по договорам есть:
$this->bbcode_second_pass_code('', '
03-03/14:53:08 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Запрос: https://3dsec.sberbank.ru/payment/rest/getBindings.do?userName=XXXXXX_new-api&password=XXXXXXXX_new&clientId=23_9764
03-03/14:53:09 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Ответ: {"errorCode":"0","errorMessage":"Успешно","bindings":[{"bindingId":"31081721-e0d7-42f2-afd3-1239246d1e17","maskedPan":"555555**5599","expiryDate":"201912"}]}
')
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва
Вернуться к началу

Re: Рекурентные платежи

Сообщение Dog » 03 мар 2017, 17:56

$this->bbcode_second_pass_quote('Dog', '')$this->bbcode_second_pass_quote('skn', '
')этот параметр храниться в таблице sberbank_autopayment_<mid> в поле access_token

этот параметр в таблице всегда пустой. хотя сбербанк отвечает что связки по договорам есть:
$this->bbcode_second_pass_code('', '
03-03/14:53:08 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Запрос: https://3dsec.sberbank.ru/payment/rest/getBindings.do?userName=XXXXXX_new-api&password=XXXXXXXX_new&clientId=23_9764
03-03/14:53:09 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Ответ: {"errorCode":"0","errorMessage":"Успешно","bindings":[{"bindingId":"31081721-e0d7-42f2-afd3-1239246d1e17","maskedPan":"555555**5599","expiryDate":"201912"}]}
')


в какой момент этот биндинг прилетает на сервер и заносится в БД. в момент проведения платежа?
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва
Вернуться к началу

Re: Рекурентные платежи

Сообщение skn » 03 мар 2017, 19:16

инфа приходит при вызове запроса getOrderStatus.do

этот запрос вызывается при
1) возвращении в ЛК после оплаты, если в URL возврата указан operation=checkStatus
2) периодически задачей проверки статуса транзакции
3) по кнопке "Проверить" из GUI
4) по CallBack, если он настроен.
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 03 мар 2017, 19:45

$this->bbcode_second_pass_quote('', '2')) периодически задачей проверки статуса транзакции

есть, настроена. но поля биндингов не заполняет.
$this->bbcode_second_pass_quote('', '3')) по кнопке "Проверить" из GUI

есть, прилетает. но в таблицу не записывается.
$this->bbcode_second_pass_code('', '03-03/14:53:08 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Запрос: https://3dsec.sberbank.ru/payment/rest/getBindings.do?userName=XXXXXX_new-api&password=XXXXXXXX_new&clientId=23_9764
03-03/14:53:09 DEBUG [http-bio-0.0.0.0-8080-exec-10] SberbankServiceImpl - Ответ: {"errorCode":"0","errorMessage":"Успешно","bindings":[{"bindingId":"31081721-e0d7-42f2-afd3-1239246d1e17","maskedPan":"555555**5599","expiryDate":"201912"}]}')
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва
Вернуться к началу

Re: Рекурентные платежи

Сообщение skn » 03 мар 2017, 20:11

2) в логах есть вызовы getOrderStatus.do, в ответах которых есть поле bindingId=...

3) кнопка "проверить" за закладке транзакции, а не автоплатежи
(должен вызываться метод getOrderStatus.do, а не getBindings.do)
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Dog » 06 мар 2017, 02:25

всё разобрался. в форме где заполняются реквизиты карты надо ставить галку "Запомнить данные карты"
Dog
Клиент
 
Сообщения: 835
Зарегистрирован: 21 сен 2009, 13:01
Откуда: Москва

Re: Рекурентные платежи

Сообщение Cromeshnic » 16 мар 2019, 19:45

Похожая проблема.
Настраиваю автоплатежи, включил дебаг.
В access_token в базе null, хотя в ответе на getOrderStatus.do есть и clientId и bindingId

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

Почему BG сам не пишет в данном случае?

Сервер: вер. 7.1.1076 / 17.12.2018 21:37:50
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_152

sberbank: вер. 7.1.36 / 10.12.2018 13:04:33
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск

Re: Рекурентные платежи

Сообщение Cromeshnic » 17 мар 2019, 15:01

Похоже, это баг.
Порылся в коде TransactionManager, вижу такое при обработке ответа на getOrderStatus.do:

$this->bbcode_second_pass_code('', '
if ((clientId != null) && (bindingId != null))
{
autopaymentManager = new AutopaymentManager(this.con, this.moduleId);
Autopayment autopayment = autopaymentManager.getCurrentAutopayment(contractId);
if (autopayment != null)
{
Period period = autopayment.getPeriod();
if ((period != null) && (period.getDateFrom() == null))
{
period.setDateFrom(new Date());
autopayment.setAccessToken(bindingId);
autopaymentManager.updateAutopayment(autopayment);
}
}
autopaymentManager.close();
}
')

Баг вот тут:
if ((period != null) && (period.getDateFrom() == null))

Т.е. зачем-то проверяется, что sberbank_autopayment_{mid}.date1 == null
Он он не null!

Во-первых, у себя в базе вижу, что он не null, а во-вторых, в коде SberbankServiceImpl.autopayment(...) он явно задаётся текущим временем:

$this->bbcode_second_pass_code('', '
if (autopayment == null) {
autopayment = new Autopayment();
autopayment.setContractId(contractId);
autopayment.setPeriod(new Period(new Date(), (Date)null));
}
')

Странно, что до сих пор никто не столкнулся. Видимо, баг добавили не так давно.
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск

Re: Рекурентные платежи

Сообщение skn » 18 мар 2019, 02:16

$this->bbcode_second_pass_quote('Cromeshnic', '')транно, что до сих пор никто не столкнулся. Видимо, баг добавили не так давно.


Ошибка в коде для нового ЛК, видимо его не использовали для автоплатежей сбера.
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия
Вернуться к началу

Re: Рекурентные платежи

Сообщение Cromeshnic » 18 мар 2019, 09:12

Для 7.1 пофиксите?
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск

Re: Рекурентные платежи

Сообщение skn » 18 мар 2019, 20:34

да
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия

Re: Рекурентные платежи

Сообщение Cromeshnic » 19 мар 2019, 13:33

$this->bbcode_second_pass_quote('', '1')113 18.03.2019 16:42:41 ИСПРАВЛЕНО Kernel: Автоплатежи в новом ЛК.

Оно?
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск
Вернуться к началу

Re: Рекурентные платежи

Сообщение skn » 19 мар 2019, 18:44

$this->bbcode_second_pass_quote('Cromeshnic', '')$this->bbcode_second_pass_quote('', '1')113 18.03.2019 16:42:41 ИСПРАВЛЕНО Kernel: Автоплатежи в новом ЛК.

Оно?


да
skn
Разработчик
 
Сообщения: 4382
Зарегистрирован: 07 апр 2007, 23:51
Откуда: Уфа, Россия
Вернуться к началу

Re: Рекурентные платежи

Сообщение Cromeshnic » 20 мар 2019, 07:36

Спасибо!
Аватара пользователя
Cromeshnic
Клиент
 
Сообщения: 3061
Зарегистрирован: 20 апр 2009, 12:03
Откуда: Иркутск


Вернуться в Модуль Sberbank

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1