heygrc
Odpowiedź

Jak przyjmować płatności bez przechowywania danych karty?

zespół heygrc

Użyj tokenizacji dostawcy płatności, aby surowe dane karty trafiały bezpośrednio do niego, a nie przez Twoje serwery. Przechowuj zwrócony token i ostatnie cztery cyfry do wyświetlenia, nigdy nie zapisuj pełnego numeru karty ani kodu weryfikacyjnego. To utrzymuje Cię po właściwej stronie wymagania 3 standardu PCI DSS i zmniejsza zakres obowiązujących Cię zasad PCI.

  1. Tokenizuj na granicy

    Zbieraj dane karty za pomocą hostowanych pól lub SDK dostawcy płatności, aby surowe dane karty trafiały bezpośrednio do niego, a Ty otrzymywał token. Dane karty nigdy nie trafiają do Twojej aplikacji.

  2. Przechowuj token, nie kartę

    Zapisuj token dostawcy płatności i ostatnie cztery cyfry do wyświetlenia. Nigdy nie przechowuj pełnego numeru karty, nigdy nie przechowuj kodu weryfikacyjnego karty, którego nie wolno zachowywać po autoryzacji.

  3. Zmniejsz zakres PCI

    Im mniej danych karty dotyka Twoich systemów, tym mniejszy jest zakres PCI. Tokenizacja to standardowy sposób na jego zmniejszenie, dlatego preferuj ją zamiast samodzielnego przetwarzania surowych danych karty.

checkout/charge.ts+2 -1
// paymentMethodId jest tokenem z hostowanych pól dostawcy (brak surowych danych karty tutaj)- await orders.insert({ id, pan: card.number })+ await processor.charge(paymentMethodId, amount)+ await orders.insert({ id, paymentMethodId, last4 })return ok()
heygrcPCI DSS Req 3

Surowe dane karty są przechwytywane przez hostowane pola dostawcy płatności i nigdy nie docierają do Twojego serwera; zamówienie przechowuje jedynie token płatności i ostatnie cztery cyfry, a nie numer karty ani kod weryfikacyjny.