На стороне сервера я использую приведенный ниже код. Я не сохраняю данные карты в своей базе данных, она используется только для вызова стороннего API:
Там достойное резюме всего процесса и блок-схема для определения того, какое решение применимо к вам здесь . К сожалению для вас, если номер кредитной карты касается вашего сервера в читаемой форме (т.е. не зашифрованной), вам придется иметь дело с SAQ-D, , даже если вы нигде не сохраняете его . Вот ссылка на SAQ-D ... все 329 вопросов, которые вам понадобятся, чтобы вы могли сказать, что вы изучили и определили, что соблюдаете, начиная с построения и поддержания безопасной сети. Вы можете пометить разделы как неприменимые (например, потому что это касается хранения номеров карт, а вы ничего не храните), но многие из них все равно будут актуальными.
Это, вероятно, намного больше, чем вы готовы взять на себя.
Альтернативы, к которым стремятся большинство продавцов электронной коммерции, - это квалификация SAQ-A или SAQ -A-EP (22 и 191 вопрос соответственно), или зашифровать данные держателя карты в браузере пользователя до того, как они отправятся куда-либо, используя метод, который вы не можете отменить.
обращайтесь к своему платежному процессору, чтобы узнать, какие решения для интеграции электронной коммерции они рекомендуют. Согласно этому руководству по API (которое может быть тем, которое вы используете, а может и не быть), они предоставляют кнопку «Оплатить сейчас», прозрачное перенаправление и несколько вариантов для встраивания своих элементов управления на вашу страницу, чтобы что данные никогда не доходят до вас.
Для их API «Прямого подключения», который, похоже, вы используете, они явно говорят:
Поскольку данные карты передаются через сервер, необходимо использовать одно из следующих действий для обеспечения соответствия правилам данных карты:
- Предоставить eWAY подтверждение соответствия PCI-DSS среды продавца
- Использовать шифрование на стороне клиента для зашифровать данные карты в браузере клиента
- Используйте безопасные поля для сбора данных карты, затем используйте SecuredCardData для завершения транзакции