Я хочу использовать Stripe.com на стороне сервера. Когда я пытаюсь создать токен карты через
curl https://api.stripe.com/v1/tokens \
-u sk_test_qMabFX3j5ApELqUH8mEy6NDp: \
-d card[number]=4242424242424242 \
-d card[exp_month]=12 \
-d card[exp_year]=2019 \
-d card[cvc]=123
или через
Stripe.apiKey = "sk_test_qMabFX3j5ApELqUH8mEy6NDp";
Map<String, Object> tokenParams = new HashMap<String, Object>();
Map<String, Object> cardParams = new HashMap<String, Object>();
cardParams.put("number", "4242424242424242");
cardParams.put("exp_month", 6);
cardParams.put("exp_year", 2019);
cardParams.put("cvc", "314");
tokenParams.put("card", cardParams);
Token.create(tokenParams);
Я вижу сообщение на своей панели инструментов: «Мы видели nnn запросов за последние м дней с необработанными номерами кредитных карт»
Мои вопросы: 1) Могу ли я безопасно использовать Java API для создания токена карты? Если да, то как избежать таких сообщений? 2) Или мне для этого нужно использовать элементы Stripe и один из их скриптов?




Если вы создаете токены карты на стороне сервера на Java, это означает, что ваши серверы получили необработанные данные карты. Даже если вы не сохраняете информацию в своей базе данных, вы все равно подпадаете под более высокий уровень соответствия PCI, для соблюдения которого потребуется много работы.
Вместо этого вы должны токенизировать клиентскую сторону, используя Элементы или Проверить. Это позволит вам безопасно создать токен карты на стороне клиента, а затем отправить этот токен на свой сервер. Это также позволит вам подпадать под SAQ-A, который является самым простым уровнем соответствия PCI. Вы можете узнать больше о различиях в документации Stripe здесь.
ВОПРОС 1:
Могу ли я безопасно использовать Java API для создания токена карты? Если да, то как избежать таких сообщений?
ОТВЕЧАТЬ:
Да, но для этого нужен наивысший уровень разрешения, вместо SAQ A вам нужна проверка SAQ D.
Процесс проверки: https://stripe.com/docs/security#validating-pci-compliance (Выберите вкладку «API Direct»)
Резюме:
Для справки, документация по конечной точке API:
Создайте токен: https://stripe.com/docs/api/tokens/create_card
Создать списание: https://stripe.com/docs/api/charges/create
ВОПРОС 2:
Или мне для этого нужно использовать элементы Stripe и один из их скриптов?
ОТВЕЧАТЬ:
Нет, не обязательно. Только если вам нужно более быстрое решение с более низким уровнем разрешений и меньшими трудностями, вы можете использовать предварительно созданные скрипты элементов Stripe.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Используя Stripe.js v2 (не JAVA, а Javascript) для самостоятельного сбора информации о карте и создания токена, требуется SAQ A-EP, для которого требуется более низкий уровень разрешений, чем у API с SAQ D. См .: https://www.pcisecuritystandards.org/documents/PCI-DSS-v3_2_1-SAQ-A_EP.pdf
Но использование Stripe.js v2 без Element устарело: https://stripe.com/docs/stripe-js/v2
Поэтому я не знаю, удалит ли это предупреждение о безопасности на панели инструментов, и функциональность может быть удалена позже. Таким образом, самый безопасный способ действовать, если вам необходимо самостоятельно обрабатывать информацию о карте, - это пройти проверку SAQ D и ежегодно заполнять формы. (для магазина на веб-сайте это не обязательно, и вы должны использовать Elements, но для пользовательских интеграций оборудования, таких как терминалы, сканеры NFC и т. д., Это может быть самый простой / единственный способ, если вам нужно интегрироваться самостоятельно).