Wat is tokenisatie?
tokenisatie is het proces van het opslaan van kaartgegevens en het genereren van een token dat wordt gebruikt om transacties met de opgeslagen kaartgegevens te verwerken. Trust Payments slaat de kaartgegevens op een veilige PCI-compliant server op, zodat verkopers en partners geen gevoelige kaartnummers hoeven op te slaan.
Technisch overzicht
Alle bedrijven binnen de EER (Europese Economische Ruimte) zijn verplicht om 3D Secure te gebruiken 3D Secure het verwerken van e-commercetransacties, in het kader van dePSD2 .
Handelaren die e-commercetransacties verwerken, MOETEN 3DS-authenticatie ondersteunen.
Raadpleeg de volgende pagina’s voor meer informatie:
Meer informatie over EMV 3D Secure Wat is 3DS API? Je eigen MPIgebruiken
De volgende voorbeelden zijn betalingen via postorder of telefonische bestelling (MOTO):
Betaling - Tokenizing (opslaan) van kaartgegevens - Door kaarthouder geïnitieerde transactie
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"requesttypedescriptions": ["AUTH"],
"orderreference": "order123456",
"pan": "4111111111111111",
"securitycode": "123",
"sitereference": "{{site_reference}}"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^',
);
$requestData = array(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '1',
'currencyiso3a' => 'GBP',
'expirydate' => '01/35',
'requesttypedescriptions' => array('AUTH'),
'orderreference' => 'order123456',
'pan' => '4111111111111111',
'securitycode' => '123',
'sitereference' => '{{site_reference}}'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"requesttypedescriptions": ["AUTH"],
"orderreference": "order123456",
"pan": "4111111111111111",
"securitycode": "123",
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"1",
"currencyiso3a":"GBP",
"expirydate":"01/35",
"requesttypedescriptions":["AUTH"],
"orderreference":"order123456",
"pan":"4111111111111111",
"securitycode":"123",
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="AUTH">
<billing>
<amount currencycode="GBP">1050</amount>
<payment>
<expirydate>01/35</expirydate>
<pan>4111111111111111</pan>
<securitycode>123</securitycode>
</payment>
</billing>
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>1</credentialsonfile>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
Geen betaling - Tokenizing (opslaan) van kaartgegevens - Door kaarthouder geïnitieerde transactie
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"orderreference": "order123456",
"pan": "4111111111111111",
"requesttypedescriptions": ["ACCOUNTCHECK"],
"securitycode": "123",
"sitereference": "{{site_reference}}"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^',
);
$requestData = array(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '1',
'currencyiso3a' => 'GBP',
'expirydate' => '01/35',
'orderreference' => 'order123456',
'pan' => '4111111111111111',
'requesttypedescriptions' => array('ACCOUNTCHECK'),
'securitycode' => '123',
'sitereference' => '{{site_reference}}'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"orderreference": "order123456",
"pan": "4111111111111111",
"requesttypedescriptions": ["ACCOUNTCHECK"],
"securitycode": "123",
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"1",
"currencyiso3a":"GBP",
"expirydate":"01/35",
"orderreference":"order123456",
"pan":"4111111111111111",
"requesttypedescriptions":["ACCOUNTCHECK"],
"securitycode":"123",
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="ACCOUNTCHECK">
<billing>
<amount currencycode="GBP">1050</amount>
<payment>
<expirydate>01/35</expirydate>
<pan>4111111111111111</pan>
<securitycode>123</securitycode>
</payment>
</billing>
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>1</credentialsonfile>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
Betaling - Getoken (opgeslagen) kaartgegevens - Door kaarthouder geïnitieerde transactie
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "2",
"currencyiso3a": "GBP",
"orderreference": "order123456",
"parenttransactionreference": "INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions": ["AUTH"],
"sitereference": "{{site_reference}}"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^',
);
$requestData = array(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '2',
'currencyiso3a' => 'GBP',
'orderreference' => 'order123456',
'parenttransactionreference' => 'INSERT_PARENT_TRANSACTION_REFERENCE',
'requesttypedescriptions' => array('AUTH'),
'sitereference' => '{{site_reference}}'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "2",
"currencyiso3a": "GBP",
"orderreference": "order123456",
"parenttransactionreference": "INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions": ["AUTH"],
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"2",
"currencyiso3a":"GBP",
"orderreference":"order123456",
"parenttransactionreference":"INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions":["AUTH"],
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="AUTH">
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>2</credentialsonfile>
<parenttransactionreference>INSERT_PARENT_TRANSACTION_REFERENCE</parenttransactionreference>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
Verwante artikelen
Wat is tokenisatie?
Meer informatie over het opslaan van kaartgegevens voor gebruik bij toekomstige transacties.
Terugkerende betalingen
Latere terugkerende betalingen met de getoken kaartgegevens kunnen worden verwerkt via onze Webservices API.
Door de handelaar geïnitieerde transacties (MIT)
Ad-hocverzoeken indienen om een transactie te verwerken op basis van eerder opgeslagen kaartgegevens zonder interactie van de kaarthouder.