Никакой стандартный и портативный путь.
Некоторые реализации обеспечивают itoa () , но это не будет в большинстве, и это имеет несколько вшивый интерфейс. Но код находится позади ссылки и должен позволить Вам реализовать свое собственное средство форматирования довольно легко.
Возможно, вы уже знаете, что cvv2 используется в проверка avs / csc, которая выполняется путем взятия цифр из адреса клиентов, цифр из почтового / почтового индекса и чисел из cvv2 и сравнения их с известными значениями, хранящимися у эмитента карты.
Результат avs / csc check возвращает трехзначное значение, которое позволяет узнать, совпадают ли значения адреса / cvv2 со значениями, хранящимися в файле эмитентом карты. Затем результат этой проверки может быть использован для предотвращения мошеннических транзакций.
Поэтому распространенный способ решения проблемы невозможности сохранить фактический код cvv2 состоит в том, чтобы вместо этого сохранить результат cvv2 . Таким образом, вы можете быть уверены, что пока адрес не был изменен, карта действительна. Единственным недостатком этого подхода является то, что некоторые банки-эквайеры считают, что авторизация, выполненная без проверки cvv2, небезопасна и взимают более высокую скорость обмена. Возможно, вам придется обсудить это со своим эквайером, чтобы объяснить, что только первая авторизация выполняется с проверкой cvv2, а последующие - нет.
Тем не менее, вы обнаружите, что соответствие требованиям PCI намного проще, если вместо этого вы используете поставщика услуг, который позволяет хранить значения токенов, а не фактические номера карт.
Еще одна проблема с повторяющимися платежами, которую я не уверен, если вы учли, заключается в том, что со временем карты истекут, будут аннулированы или переиздан. У Visa и MasterCard есть относительно новая услуга под названием Visa Account Updater или MasterCard Automatic Billing Updater для решения этой проблемы.
Давненько мне не приходилось делать что-то подобное ... и Я использовал только Verisign Payflow API. Возможно, вы захотите это проверить.
Насколько мне известно, платежные шлюзы настоятельно рекомендуют не хранить данные карты.
Рекомендуемый механизм - использовать ссылочный номер из исходной транзакции, а затем связать с ней новую транзакцию; это должно быть очень похоже на то, как это работает Brain Tree.
Большинство шлюзов не требуется, чтобы cvv работал. Этот код, по сути, означает «наличие кредитной карты» и не должен использоваться для повторяющихся транзакций.
Брейнтри кажется довольно хорошим вариантом, если вы не хотите хлопот по соответствию PCI (что мне пришлось сделать, сложно, но требуется довольно много времени для создания)