Разница между номером заказа, идентификатором транзакции и номером счета

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

Итак, еще раз: В чем разница между номером заказа, идентификатором транзакции и номером счета? и любые другие формы информации, связанной с транзакциями?

Все ли они должны быть уникальными?

Наконец, что я покажу клиенту после завершения транзакции?

Примечание. Я продавец, но ситуация, относящаяся к любому другому домену (например, банку, кредитной карте, платежному шлюзу или чему-либо еще), также приемлема.


person Junior Superman    schedule 31.12.2014    source источник


Ответы (2)


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

По моему опыту:

номер заказа (или эквивалент) – это значение, предоставляемое продавцом, которое передается в запросе транзакции в банк, который затем связывает его в своих записях с транзакцией.

Это позволяет идентифицировать транзакцию в банковской системе (для отчетности/сверки и т. д.) с использованием значения, определенного продавцом.

В общем, ожидается, что это будет уникально.

идентификатор транзакции (или эквивалент) – это значение, возвращаемое банком для идентификации транзакции в их системе. Это будет уникально.

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

И наконец, что я покажу клиенту после завершения транзакции?

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

person Alex K.    schedule 31.12.2014
comment
В моем случае я должен предоставить все 3 детали платежному шлюзу (это предоставляет API, и мы не имеем дело с банками и сетью кредитных карт напрямую), и это возвращает номер корневой транзакции (предоставляется банком), авторизация код (предоставляется банком), номер транзакции EPG (сам платежный шлюз). Итак, я предполагаю, что в этом случае номер заказа, идентификатор транзакции и номер счета-фактуры являются просто дополнительной информацией, и все 3 могут быть одинаковыми. Есть предположения? - person Junior Superman; 01.01.2015

Прежде чем мы углубимся в семантику, давайте обсудим различные идентификаторы, с которыми мы сталкиваемся.

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

Каждый платеж, который мы обрабатываем, имеет идентификатор от платежной системы (если только платеж не помещен на внутренний счет нашего клиента).

Еще до создания первой записи мы генерируем уникальный логический идентификатор для транзакции.

Итак, вот как мы их называем и как мы их используем.

  • Идентификатор заказа или номер записи: идентификатор, который генерирует база данных. Обычно увеличенное целое число. Используется для связи таблиц. Также используется в качестве короткого, лаконичного, удобного идентификатора.
  • Идентификатор счета: уникальный логический идентификатор, который мы создаем для счета. Мы используем GUID. Это то, что мы отправляем вместе с нашей платежной транзакцией.
  • Идентификатор транзакции или идентификатор платежа: идентификатор, возвращенный обработчиком платежей. Используются различные форматы.

Вы можете пропустить идентификатор счета и использовать только идентификатор заказа. Нам нравится иметь логический идентификатор, который можно использовать еще до того, как мы сохраним запись в базе данных.

person Steven Spungin    schedule 03.02.2019