Как я могу взимать с кого-то переменную сумму каждые 2 месяца, не сохраняя код CVV? - PullRequest
7 голосов
/ 10 августа 2009

У нас есть физический продукт, который поставляется каждые 2, 3 или 4 месяца в зависимости от предпочтений клиента. В промежутках между поставками пользователь может изменить свой выбор.

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

  • Они позволяют делать это только ежемесячно, ежеквартально, ежегодно. Не каждые 2 или 3 месяца. [ Документ API Paypal здесь ]
  • Мы хотим, чтобы клиент мог «отправлять заказ» сейчас, если он хочет получить свою продукцию раньше или позже обычного графика.
  • Поскольку это физический продукт, мы не можем разделить его на пропорциональную месячную сумму.

Поэтому я думаю, что нам придется выполнить повторную операцию, используя тот же механизм, который мы используем при создании начального заказа - с кодом CC цифр и кодом CVV2. Но очевидно, что мы не можем хранить код CVV2 для соответствия PCI !!

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

Я полностью в порядке, используя решение BrainTree. Кажется, он идеально подходит для того, что нам нужно, и все же меня смущает предложение Paypal. Как мне добиться того, что я пытаюсь сделать с любой системой, кроме BrainTree, без необходимости хранить код CVV2?

Ответы [ 4 ]

6 голосов
/ 11 августа 2009

Вы, возможно, уже знаете, что cvv2 используется в проверке avs / csc, которая выполняется путем взятия чисел из адреса клиентов, чисел из почтового индекса / почтового индекса и чисел из cvv2 и сравнения их с известными сохраненными значениями эмитентом карты.

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

Поэтому распространенный способ решения проблемы невозможности сохранения действительного кода cvv2 - это сохранение результата cvv2 . Таким образом, вы можете быть достаточно уверены, что до тех пор, пока адрес не был изменен, карта остается действительной. Единственным недостатком этого подхода является то, что некоторые банки-эквайеры считают, что авторизации, выполненные без проверки cvv2, небезопасны и требуют более высокого уровня обмена. Возможно, вам придется обсудить это с вашим покупателем, чтобы объяснить, что только проверка first выполняется с проверкой cvv2, а последующие - нет.

Тем не менее, вы найдете, что соответствие PCI станет намного проще, если вместо этого использовать поставщика услуг, который позволяет вам хранить значения токенов, а не фактические номера карт.

Еще одна проблема с повторяющимися платежами, в которой я не уверен, рассматривали ли вы, это тот факт, что со временем карты истекают, аннулируются или переиздаются. Visa и MasterCard имеют относительно новую услугу, называемую Visa Account Updater или MasterCard Automatic Billing Updater , чтобы справиться с этим. Это то, что вам нужно организовать в вашем банке-эквайере, или если вы пойдете по маршруту PSP, он, вероятно, будет обработан автоматически - но стоит проверить.

3 голосов
/ 10 августа 2009

Прошло много времени с тех пор, как я должен был сделать что-то подобное ... и Я использовал только API Verisign Payflow. Вы можете проверить это.

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

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

2 голосов
/ 10 августа 2009

Большинство шлюзов не требуют, чтобы cvv работал. Этот код по сути означает «кредитная карта присутствует» и не должен использоваться для повторяющихся транзакций.

Braintree кажется довольно хорошим вариантом, если вы не хотите, чтобы хлопоты соответствовали PCI (что я должен был сделать, не сложно, но требует создания значительного объема процесса)

0 голосов
/ 03 апреля 2011

Эта статья действительно хорошо объясняет проблемы, связанные с повторением счетов CVV2, и ее стоит прочитать: http://kb.modularmerchant.com/a378-credit-card-security-codes.php

...