Нужно ли хранить транзакции, обработанные платежным шлюзом? - PullRequest
2 голосов
/ 16 декабря 2011

Справочная информация: Я разрабатываю веб-сайт для размещения некоторых услуг в Интернете.Чтобы воспользоваться какой-либо услугой, клиент должен заплатить комиссию с помощью кредитной карты.Транзакция обрабатывается платежным шлюзом, который ведет учет собранной суммы, имени владельца карты, последних четырех цифр номера кредитной карты и даты транзакции.Если возвращается ответ об успешном выполнении, будет запущен код для обновления базы данных клиентов, чтобы позволить клиенту использовать платную услугу.В противном случае клиент будет перенаправлен на страницу неудачной транзакции.

Вопрос: Поскольку я впервые проектирую приложение для электронной коммерции, я хотел бы получить совет,У меня вопрос, есть ли необходимость хранить то, что будет храниться в платежном шлюзе отдельно в таблице transaction, перед передачей данных в шлюз в качестве формы проверки или для целей учета.Было бы здорово услышать от тех, кто имеет реальный опыт разработки приложений для электронной коммерции.Спасибо!

Ответы [ 3 ]

2 голосов
/ 16 декабря 2011

Предполагая, что вы не имеете в виду хранить (или даже не иметь доступа к) данные карты (номер / cvv и т. Д.), Которые представляют собой совершенно другой котелок рыбы, я бы посоветовал вам хранить все, что вы можете, когда можете;

  • Это небольшой объем данных, который тривиален, дешев и прост в хранении
  • Возможность отслеживать каждую деталь транзакции для аудита / запросов клиентов и т. Д. Исключительно в вашей собственной системе, безусловно, лучше, чем необходимость зависеть от кого-то другого
  • Вы можете делать с ней все, что угодно, с точки зрения анализа / отчетности, не будучи зависимым от услуг, предоставляемых сторонним шлюзом
  • Что, если провайдер шлюза обанкротился?
  • Если вы решите изменить шлюзы или внедрить дополнительные шлюзы, вы сможете поддерживать централизованное хранилище нормализованных данных транзакций
0 голосов
/ 16 декабря 2011

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

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

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

0 голосов
/ 16 декабря 2011

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

...