Meest Transfer
Dokumentacja/Hosted fields

Hosted Fields

Bezpieczne pola formularza karty hostowane przez MeestPay w iframe.

W przypadku gdy sprzedawca nie posiada certyfikatu PCI, a chciałby umieścić pola formularza karty bezpośrednio na jego stronie, może skorzystać z MeestPay Hosted Fields.

Skrypt MeestPayHostedFields pozwoli wyświetlić na stronie elementy formularza wewnątrz okienek iframe, w których klient będzie mógł podać dane karty. Następnie te dane zostaną przesłane do MeestPay, a skrypt zwróci do strony ID tokenu, który można użyć do płatności lub utworzenia profilu klienta.

Kroki integracji

Inicjacja MeestPayHostedFields.

Przygotowanie elementów HTML

Na stronie, na której chcemy umieścić pola formularza, należy utworzyć elementy HTML z odpowiednimi identyfikatorami. Te elementy posłużą jako kontenery dla przyszłych okienek iframe. Potrzebny będzie również element, który po naciśnięciu wywoła proces tokenizacji.

Lista identyfikatorów dla trybu formularza na dane karty (standard oraz panOnly):

IDWymaganyInformacje
meestpay-hosted-field-container-first-nametakKontener dla okienka z imieniem cardholder'a
meestpay-hosted-field-container-last-nametakKontener dla okienka z nazwiskiem cardholder'a
meestpay-hosted-field-container-numbertakKontener dla okienka z numerem karty
meestpay-hosted-field-container-expiry-datetakKontener dla okienka z datą ważności karty
meestpay-hosted-field-container-cvvtakKontener dla okienka z kodem CVV

Istnieje również możliwość użycia Hosted Fields do generowania tokenów numerów CVV (tryb cvvOnly). Wymagany ID: meestpay-hosted-field-container-cvv.

Przygotowanie skryptu

W skrypcie JavaScript należy stworzyć obiekt MeestPayHostedFields. Następnie, wywołując metodę init() zostaną utworzone elementy iframe. Każdy iframe zostanie zagnieżdżony w element o odpowiednim identyfikatorze. Następnie należy stworzyć event listener na naciśnięcie przycisku, który wywoła asynchroniczną metodę tokenize(). Metoda ta zwróci Promise, który po pomyślnej operacji zwraca unikalny token karty.

Przykładowy skrypt integracji
<script src="https://js.meestpay.com/meestPayHostedFields.js"></script>
<script>
  const hostedFields = new MeestPayHostedFields({
    publicKey: "merchantPublicKey123",
    env: "sandbox",
  })

  hostedFields.load((error) => {
    console.log(`${error.field} field validation error. ${error.message}`)
  })

  document.getElementById("tokenize-btn").addEventListener("click", () => {
    hostedFields.tokenize().then((result) => {
      console.log(`Tokenization successful! Token: ${result.token}`)
    }).catch((error) => {
      console.log(`Tokenization failed: ${error.message}`)
    })
  })
</script>

Parametry obiektu MeestPayHostedFields

ParametrWymaganyTypInformacje
publicKeytakstringKlucz publiczny sprzedawcy
envtakstringŚrodowisko procesowania płatności: "production", "sandbox"
kindniestring"standard" (domyślna) — standardowa integracja, "panOnly" — tylko numer karty, "cvvOnly" — tylko wartość CVV

Parametry metody load()

ParametrWymaganyTypInformacje
validationErrorCallbacknie(error: { field: string; message: string }) => voidFunkcja zwrotna wywoływana przy błędach walidacji pól formularza. Możliwe wartości pola field: first-name, last-name, number, expiry-date, cvv.

Wartości obietnicy zwracanej w metodzie tokenize()

WynikTypInformacje
Wartość rozwiązana{ token: string }Token wygenerowany dla karty
Wartość odrzucona{ message: string }Komunikat błędu

Wykorzystanie tokenu

Po uzyskaniu tokenu, należy go przekazać do serwera sprzedawcy.

Serwer po otrzymaniu tokenu powinien wysłać zapytanie metodą POST na adres https://sandbox.meestpay.com/api/charges w celu obciążania karty lub na https://sandbox.meestpay.com/api/clients/ w celu utworzenia profilu klienta.