Платежный сервис ЦУП заключил прямой договор с Билайн

Получение txn_id для проведения платежа

Вопросы по программному обеспечению.
Гость

Сообщение Гость » 02 май 2013, 06:02

Для проведения платежей используется ОСМП, которая для каждого платежа требует уникальный txn_id. Ни могли бы подсказать, каким образом его генерировать - запрашивать у сервера?

PayPRO
участник форума
Сообщения: 380
Зарегистрирован: 17 авг 2007, 08:53
Репутация: 0

Сообщение PayPRO » 02 май 2013, 06:30

Нет, просто генерируете сами. Можете использовать время в миллисекундах или случайное число. Или скомбинировать.
Гость

Сообщение Гость » 02 май 2013, 08:11

PayPRO писал(а):Нет, просто генерируете сами. Можете использовать время в миллисекундах или случайное число. Или скомбинировать.

А как тогда гарантировать его уникальность, если использовать случайное число? Насчет "Можете использовать время в миллисекундах" - допустим, что в одно и то же время к двум разным терминалам подошли два клиента, скорость работы с терминалом у которых одинакова - каждый ровно за 15с вводит лс и вставляет деньги, тогда txn_id будет одинаков, а система получит два запроса на проведение платежа с одинаковым txn_id в одно и то же время - не кашерно получится и тогда платеж по одному терминалу успешно пройдет, а второму, судя по описанию протокола, вернется результат обработки первого запроса, т.е. "успех", но реально деньги на счет не зачисляться - много нервов и ругани.
Ладно, буду тогда думать, как свести коллизии к минимуму
Аватара пользователя
arcor
Эксперт
Сообщения: 6018
Зарегистрирован: 27 сен 2008, 18:37
Репутация: 882

Сообщение arcor » 02 май 2013, 14:35

префикс делай по номеру терминала.
Высказывать свое мнение — это окей. Спорить выдирая фразы из контекста, переворачивая смысл на 180 градусов, придумывать то, чего нет – не окей
user2012
участник форума
Сообщения: 110
Зарегистрирован: 20 фев 2012, 01:48
Репутация: 0

Сообщение user2012 » 06 май 2013, 15:59

Maximys писал(а):
PayPRO писал(а):Нет, просто генерируете сами. Можете использовать время в миллисекундах или случайное число. Или скомбинировать.

А как тогда гарантировать его уникальность, если использовать случайное число? Насчет "Можете использовать время в миллисекундах" - допустим, что в одно и то же время к двум разным терминалам подошли два клиента, скорость работы с терминалом у которых одинакова - каждый ровно за 15с вводит лс и вставляет деньги, тогда txn_id будет одинаков, а система получит два запроса на проведение платежа с одинаковым txn_id в одно и то же время - не кашерно получится и тогда платеж по одному терминалу успешно пройдет, а второму, судя по описанию протокола, вернется результат обработки первого запроса, т.е. "успех", но реально деньги на счет не зачисляться - много нервов и ругани.
Ладно, буду тогда думать, как свести коллизии к минимуму

Конкатенация номера терминала и времени, не?
Гость

Сообщение Гость » 16 май 2013, 13:39

Вам по-любому потребуется база данных для всех манипуляций с платежами.
Устанавливаете СУБД, создаете таблицу Платежей с ключем - автоинкрементным полем, а там уже сама СУБД позаботится о его уникальности. Если у вас система будет не особенно сложная и нагруженная, можете обойтись простым SQLite
Аватара пользователя
arcor
Эксперт
Сообщения: 6018
Зарегистрирован: 27 сен 2008, 18:37
Репутация: 882

Сообщение arcor » 16 май 2013, 15:03

зачем ?
берется номер терминала и добавляется дата+ время.
Высказывать свое мнение — это окей. Спорить выдирая фразы из контекста, переворачивая смысл на 180 градусов, придумывать то, чего нет – не окей

Вернуться в «ПО для терминалов и приема платежей»

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

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