Hogyan működik

Hogyan működik a PCI Proxy

Elküldi nekünk a kártyaadatokat. Mi tokenizáljuk, PCI DSS vault-ban tároljuk és tokent adunk vissza. Az Ön rendszerei soha nem kapják meg a kártyaszámot.

Adatfolyam

Folyamat 5 lépésben

Attól a pillanattól, hogy az ügyfél megadja a kártyaadatokat, egészen a back office-ban tárolt tokenig: itt lépésről lépésre láthatja, mi történik.

1. fázis

Kártyaadatok belépnek

Webes pénztár, API-hívás vagy call center-űrlap

2. fázis

PCI Proxy elfogja

Fogadjuk a kártyaadatokat a HTTP-csomagból, mielőtt elérnék a szervereit

3. fázis

Tokenizáció

Titkosítjuk a kártyaszámot és egyedi tokent generálunk

4. fázis

Biztonságos vault

A kártyaszám titkosítva marad a PCI DSS 1. szintű vault-unkban, kizárólag az EU-ban

5. fázis

Token Önhöz

Megkapja a tokent, amelyet fizetésekhez, előfizetésekhez vagy visszatérítésekhez használhat

Tokenizáció

Mi történik a tokenizáció során

A kártyaszámot tokenre cseréljük. Az Ön rendszereiben soha nem jelenik meg a kártyaszám tiszta szövegként. Íme a három belső lépés.

01

Lépés

Felismerjük a kártyaadatokat

Elemezzük a bejövő kéréseket és azonosítjuk a kártyaszámokat JSON-ban, űrlapokban vagy multipart csomagokban. Kódmódosítás nélkül: csatlakoztatja a folyamatát, és kész.

02

Lépés

Létrehozzuk a tokent

Minden token tok_pci_eu_ előtaggal kezdődik, és tartalmazza az utolsó négy számjegyet, a kártya típusát és a lejárat dátumát. Így a felülete megjelenítheti a „Visa, végső 4 számjegy: 1234" szöveget a kártyaszám tárolása nélkül.

03

Lépés

Ugyanaz a token, ugyanaz a kártya

Ha ugyanaz a kártya ismét megjelenik, ugyanazt a tokent adjuk vissza. Hasznos előfizetéseknél és mentett kártyáknál. A leképezés kizárólag a vault-ban marad és nem érhető el API-n keresztül.

pci-proxy · élő példa AKTÍV

→ POST /v1/tokenize

{

"card_number": "4111 1111 1111 1234",

"expiry": "12/26"

}

AES-256 · EU vault

← 200 OK · 47ms

{

"token": "tok_pci_eu_a1b2c3d4e5f61234",

"last_four": "1234",

"brand": "visa",

"card_in_your_systems": false

}

Kártyaszám soha az Ön szerverein · EU vault · naplózott
Kártya lekérése

Mikor szükséges a kártyaszám

A fizetés engedélyezéséhez a PSP-nek szüksége van a tényleges kártyaszámra. Elküldi a tokent: mi lekérjük a kártyát a vault-ból és biztonságosan továbbítjuk. Ön soha nem látja.

1

Mikor kerül rá sor

Ha egy mentett kártyát szeretne megterhelni, küldje el a tokent a forward végpontunkra. Megoldjuk a kártyaszámot a vault-ban és titkosított kapcsolaton keresztül továbbítjuk a PSP-nek. A szám nem jelenik meg a naplóiban.

2

Ki teheti meg

Kizárólag a forward vagy detokenize jogosultsággal rendelkező API-kulcsok. Korlátozhatja a hozzáférést IP-cím, környezet és kérési mennyiség szerint.

3

Teljes körű naplózás

Minden lekérés naplózott: ki kezdeményezte, mikor és melyik PSP-nek. A naplók legalább 12 hónapig megőrződnek és elérhetők az irányítópultról vagy API-n keresztül.

Védelmi rétegek

1. szint Aláírt API-kulcs

Minden kérés hitelesítve

2. szint IP-engedélyezési lista

Csak a jóváhagyott szervereiről

3. szint Titkosított PSP-kapcsolat

TLS ellenőrzött tanúsítványokkal

4. szint Audit-naplók

Legalább 12 hónapig megőrizve

API

Két végpont, áttekinthető folyamat

Hitelesítés API-kulccsal. Egy végpont létrehozza a tokent, a másik felhasználja fizetéshez. JSON a bemeneten, JSON a kimeneten.

POST /v1/tokenize Hatókör: tokenize

Kérés törzse

{
  "card_number": "4111111111111111",
  "expiry":      "12/26",
  "cvv":         "123"
}

200 OK válasz

{
  "token":      "tok_pci_eu_a1b2c3d4e5f6",
  "last_four": "1111",
  "brand":     "visa",
  "expires_at": "2026-12-31"
}
POST /v1/forward Hatókör: forward

Kérés törzse

{
  "token":      "tok_pci_eu_a1b2c3d4e5f6",
  "target_url": "https://psp.eu/charge",
  "amount":     9900,
  "currency":   "EUR"
}

Válasz (PSP-től, proxyn keresztül)

{
  "status":         "authorized",
  "transaction_id": "txn_9f8e7d6c",
  "amount":         9900,
  "currency":       "EUR"
}
Aláírt kérések
Átlagos késleltetés 50 ms alatt
REST + Webhooks
Valós idejű események

Webhookok és értesítések

Ha valami történik (token létrehozva, fizetés elküldve, hiba), valós idejű eseményt küldünk a végpontjára. Minden üzenet aláírt, így szerver oldalon ellenőrizheti.

Ha a kézbesítés nem sikerül, legfeljebb 5-ször próbálkozunk újra növekvő időközökkel. Az irányítópultról 72 órán belül kézzel is visszajátszhatja az eseményt.

Támogatott eseménytípusok

token.created Új token generálva
token.used Token elküldve a PSP-nek
token.expired Token elérte a TTL-jét
token.deleted Token kérésre törölve
forward.success PSP 2xx-t adott vissza
forward.failure PSP hibát adott vissza

Webhook-csomag példa

POST az-on-szervere.hu/webhooks/pci ÉLŐ
{
  "event":     "token.created",
  "timestamp": "2026-04-03T10:15:30Z",
  "data": {
    "token":       "tok_pci_eu_a1b2c3d4e5f6",
    "last_four":   "1111",
    "brand":       "visa",
    "merchant_id": "mrc_xyz789"
  },
  "signature": "sha256=4a8b9c..."  // HMAC-SHA256
}

Aláírás ellenőrzése

Minden webhook tartalmaz egy X-PCI-Signature fejlécet. Számítsa ki a tartalom HMAC-SHA256 értékét a titkával, és hasonlítsa össze az aláírással. Ha nem egyeznek, utasítsa el a kérést.

Visszajátszás elleni védelem Ellenőrizhető aláírás 5 automatikus újrapróbálkozás
Integráció

SDK-k és integrációs módszerek

SDK Node-hoz, Pythonhoz és PHP-hoz, vagy Hosted Fields iFrame-ben. Válassza a technikai stackjéhez illő megoldást.

JS

JavaScript SDK

npm
import PCIProxy from '@pci-proxy-eu/js';

const pci = new PCIProxy({
  merchantId: 'mrc_xyz789'
});

const { token } = await pci.tokenize({
  cardNumber: '4111...'
});
Node.js 18+ · Böngésző · TypeScript mellékelve
PY

Python SDK

PyPI
from pci_proxy_eu import Client

client = Client(
  merchant_id="mrc_xyz789",
  api_key="sk_live_..."
)

result = client.tokenize(
  card_number="4111..."
)
Python 3.9+ · AsyncClient elérhető
PHP

PHP SDK

Composer
use PCIProxyEU\Client;

$client = new Client(
  merchantId: 'mrc_xyz789',
  apiKey: 'sk_live_...'
);

$result = $client->tokenize([
  'card_number' => '4111...'
]);
PHP 8.1+ · Java és .NET elérhető
Hosted Fields

Biztonságos iFrame a fizetési oldalhoz

SAQ A megtartásához: a kártya mezőit a mi iFrame-ünkben jelenítjük meg. A kártyaadatok soha nem haladnak át a DOM-ján.

hosted-fields.html
<div id="card-number"></div>
<div id="card-expiry"></div>
<div id="card-cvv"></div>

<script>
  PCIProxy.hostedFields({
    merchantId: 'mrc_xyz789',
    fields: {
      cardNumber: '#card-number',
      expiry:     '#card-expiry',
      cvv:        '#card-cvv'
    },
    onTokenize: (result) => {
      // csak token, soha nem kártyaszám
      console.log(result.token);
    }
  });
</script>
checkout.az-on-boltja.hu

Fizetési adatok

4111 1111 1111 •••• iFrame
12/27 iFrame
••• iFrame

Kártyaadatok soha nem az Ön szerverén

SAQ A

Kisebb PCI hatókör

CSS

Testreszabható stílus

Mobile

Reszponzív

Készen áll az integrációra?

Ismerje meg a PCI Proxy-t, tudjon meg többet a tokenizációról, vagy nézze meg, hogyan használják a fejlesztők a platformot.