Деньги онлайн

From the to-do list: Разработать систему оплаты агентам с интеграцией с Деньги.Онлайн

✔ Ознакомится с ТЗ, задать вопросы

Comments

Андрей Буганов on September 25, 2013:

Алексей, новая задача.
Ознакомится с ТЗ https://drive.google.com/folderview?id=0B_apKFByhvnGM3p1Z3BsZHRLTnc&usp=sharing
Задать вопросы.
После этого приступим к работе.

В приоритете делаем КГУ, этот проект только, если нет задач по КГУ.

Alexey Bychkov on September 25, 2013:

Сразу основные вопросы, пришедшие в голову:
* "Необходимо разработать веб-приложение" - что имеется ввиду под веб-приложением?
* это должно как-то быть связано с бэкендом, КГУ или ещё чем-то? как и чем именно? или полностью автономная система?
* кто должен иметь сюда доступ? 1 пользователь? или несколько? нужна возможность их создавать?

Андрей Буганов on September 25, 2013:

1. Веб-сайт, аналогичный админке КГУ например
2. Пока полностью автономная система (интеграция только с Деньги.Онлайн)
3. Уточню у Виктора

Андрей Буганов on September 25, 2013:

3. Только один администратор, требуется добавить форму авторизации, и форму изменения настроек, в настройки пока только смену пароля.

Alexey Bychkov on October 21, 2013:

Андрей, приступили к внимательному анализу задачи. Несколько вопросов по ТЗ:

"формирование отчетности осуществляется в пользователском интерфейсе Деньги.Онлайн"

1. Делается на стороне сервиса и дополнительных усилий со стороны программиста не надо для этого?


2. Для работы нужен доступ к самому сервису


3. Не уверен, что получится сделать импорт как описали в ТЗ.

Альтернатива: 
Нажимаем «Импорт», появляется всплывающее окно, выбираем файл, жмем «Импортировать».
Отправляется форма, страница перезагружается. Если есть ошибки — они показываются как сейчас на сайте (всплывающее красное окно с текстом ошибки).
Если файл можно импортировать — то импортируем. Все ошибки записываются в логи и доступны все сразу после загрузки страницы, если есть ошибки требующие подтверждения (сумма больше 10000) — то можно при загрузке страницы их сразу показывать.


"В случае, если “ID провайдера” = 9 OR xx " 
4. что за ХХ?


"“Срок действия карты”, преобразованной к формату /^[\d]{1,2}[\d]{4}$/ - ММГГ"

5. Но в примере импорта срок действия указан такой: 0715. Где ошибка?


6. Оплата будет совершаться с основного баланса?



Андрей Буганов on October 21, 2013:

1. Да
2. Создадим, пока делайте внутреннюю логику
3. Импорт желательно сделать как описано, в чем конкретно проблема реализации описанной схемы?
4. Пока делаем только 9, еще добавятся со временем
5. Если попадется 0715 преобразовывать к 072015
6. Не понятен вопрос, их может быть несколько?

Alexey Bychkov on October 22, 2013:

По поводу 3:


Вы описали ранее интерактивный импорт. Выбираешь файл, он проверяется, в случае проверки сразу выводятся ошибки. Если файл нормальный — то мы сразу видим процесс импорта. Первая запись добавилась, вторая, в третьей какая-то ошибка, мы ее не добавили (вместо это показали ошибку в логе), в четвертой очень большая сумма — появилось окошко подтверждения (мы ждем нажатия да или нет, а пока ничего не делаем). 

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

2. Логичнее сделать 1 запрос на сервер ДеньгиОнлайн (достать список провайдеров) и проверить по нему сразу весь список с экселя, чем для каждой строки делать этот запрос.


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


Другими словами, это серьезно затянется по времени. Структурно и логически сильно отличается от текущих функционалов.


По поводу 6:


Есть основной баланс и Региональные.

Андрей Буганов on October 22, 2013:

1. Тогда делаем так: Импортируем файл, разбираем, загружаем в БД корректные записи, для ошибочных формируем список лога, перенаправляемся на страницу пользователей, в логе выводим список всех ошибок.
2. Если это есть у Деньги.Онлайн (в ТЗ про бюджеты вроде ничего нет), то используем основной баланс

Alexey Bychkov on October 24, 2013:

Работаем над этой задачей. 
Сейчас важны доступы в систему.

Андрей Буганов on October 24, 2013:

Доступ дал в скайпе

Alexey Bychkov on October 25, 2013:

Андрей, по поводу доступа...

Для подключения к системе GSG необходимо:
1) заключить договор с ДеньгиOnline (по данному вопросу можно обращаться по адресу электронной почты sales@den
gionline.com);
2) получить от ДеньгиOnline идентификатор клиента и секретный ключ, а также наладить техническое взаимодействие
(по данному вопросу можно обращаться по адресу электронной почты tech@dengionline.com).
После подключения к системе по всем возникшим операционным вопросам клиенту необходимо обращаться по адресу
электронной почты merchant@dengionline.com.

Сейчас вы просто зарегистрировали аккаунт, но этого не достаточно. Как описано в пункте 2: нужно заключить договор, что бы получить project_id и secret_key. Именно они собственно и нужны для отладки взаимодействия.

Alexey Bychkov on October 25, 2013:

и еще не уверен, что правильно зарегистрирован аккаунт. В примерах указано что валюта основного баланса - рубли, а у нас доллары. Был ли выбор валюты главного баланса? Потому что придется делать оплаты в рублях.

Андрей Буганов on October 28, 2013:

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

Alexey Bychkov on October 28, 2013:

в аккаунте, который вы дали нет информации о project_id, secret - это ид проекта и секретный ключ для API запросов. сделали вывод, что вы не заключили договор. Эти данные необходимы для продолжения работы.
Можно указать, что оплата в рублях. НО, тогда при конвертации из USD в RUR будут теряться комиссии. Логичнее сделать основной счет в рублях, мне так кажется.

Андрей Буганов on October 28, 2013:

Запросил идентификатор и ключ.
По деньгам посмотрю договор позже.

Alexey Bychkov on October 30, 2013:

Из документации (пункт 4.5):

«Для выплат в VMT/MCMC в запросе должны быть переданы параметры: 
name (string) — ФИО получателя платежа (должны совпадать с именем на карте); 
expiry (integer) — дата истечения срока действия карты (в формате ММГГ); 
phone (integer) — телефон получателя платежа в международном формате (без знака +); 
account (integer) — номер банковской карты.»

Phone — в системе указано, что телефоны хранятся длинной 10, а это без кода страны. Можно автоматически подставлять код России, но не будет ли проблем с другими странами?

Может быть сразу в Excel писать номер телефона согласно международного формата без + и соответственно импортировать их так в систему?

Из ТЗ: «Номер карты - дополнительно проверяется первая цифры номера на соответствие с доступными платежными системами (пока только MasterCard, в ближайшее время и VISA). В случае ошибки в “Лог ошибок” записывается сообщение “Для получателя [Получатель] телефон [Телефон] указана карта, платежная система которой не доступна для перевода средств через Деньги.Онлайн”. Данная строка импортируемого файла игнорируется. Список кодов всех платежных систем (http://bankirsha.com/nomer-bankovskoi-karty-nomer-karty.html):
1. VISA – 4; 
2. American Express – 3, 
3. MasterCard – 5, 
4. Maestro - 3, 5 или 6.
В Деньги.Онлайн сообщили что платеж для Maestro просто не пройдет в системе и вернет ошибку. Отличить Maestro от American Express и MasterCard нет никакой возможности на нашей стороне.»

Где-то здесь ошибка:
- здесь написано, что мастер кард может начинаться только с 5.
- в ДеньгиOnline, когда запрашиваешь платежные системы, то к каждой из них он отправляет регулярное выражение, по которому можно проверить счет. Так вот судя по этому выражения номер карты мастера кард может начинаться с 5, 677189 или 677288.

Исходя из этого проверку на первую цифру не делали.

В связи с тем, что валюта основного счета — USD, появляется проблема:
для каждой платежной системы приходят лимиты на оплату (минимум и максимум), так вот они приходят в долларовом эквиваленте. Как результат их отключили и полагаемся на валидацию со стороны сервиса.

Андрей Буганов on October 31, 2013:

Phone — в системе указано, что телефоны хранятся длинной 10, а это без кода страны. Можно автоматически подставлять код России, но не будет ли проблем с другими странами? - если код страны не указан, то подставляем автоматически 7, если код есть - оставляем который указан

- здесь написано, что мастер кард может начинаться только с 5. - все верно, Maestro это и есть Mastercard, но они все же отличаются по своим возможностям. Проверка нужна, в ошибки попадают все карты начинающиеся на 1, 2, 3, 7, 8, 9, 0

А текущий курс валют нельзя запрашивать по API?

Alexey Bychkov on November 4, 2013:

ок, хорошо

>>> А текущий курс валют нельзя запрашивать по API?

можно, НО, это дополнительный запрос к API, который не нужен. К тому же зачем возиться с пересчетами и нагружать код переводом валюты, если достаточно сделать основную валюту в рублях?

Alexey Bychkov on November 4, 2013:

Андрей, в целом - закончили.
Ждем от вас ответа по курсу, делаем последние правки/проверки и можно будет смотреть.

Андрей Буганов on November 5, 2013:

Алексей, основная валюта это USD, так указано в договоре и на это есть причины.

Alexey Bychkov on November 5, 2013:

Хорошо, Андрей, я вас понял.

http://chat.websumy.ru/inside/payment
admin
123123123