Die folgende Dokumentation erklärt, wie Sie eine AUTH Anfrage über unsere Webservices API zu stellen, um eine Apple Pay Transaktion zu bearbeiten.
Für wen ist dieses Dokument bestimmt?
- In diesem Dokument wird davon ausgegangen, dass Sie keine native iOS-App entwickeln möchten, die Apple Pay unterstützt (was mit unserem iOS-SDK implementiert werden kann), oder eine webbasierte Lösung (mit unserem JavaScript Library).
- Wenn Sie eine direkte Integration mit Apple haben bzw. planen, um Apple Pay im Web zu verarbeiten, und einfach eine Methode zur Übermittlung der Zahlungskarte benötigen wallettoken für Autorisierung auf der Trust Payments.
Voraussetzungen
Bevor Sie die unten beschriebene Anfrage bearbeiten, müssen Sie eine Lösung entwickeln, die eine Apple Pay wallettoken. Weitere Informationen finden Sie unter Apple-eigene Dokumentation (Link zu externer Seite).
Schritte zur Integration
Erstellen Sie eine Händler-ID
Folgen Sie den Schritten, die Apple in diesem Dokument im Abschnitt "Create a merchant identifier".
Klicken Sie hier, um diese Seite in einem neuen Tab zu öffnen (Link zu externer Seite).
Zahlungsabwicklungszertifikat erstellen
Dabei handelt es sich um ein Zertifikat, das mit Ihrer Händler-ID verknüpft ist und zur Sicherung der Transaktionsdaten verwendet wird. Apple Pay verwendet den öffentlichen Schlüssel des Zertifikats zur Verschlüsselung der Zahlungsdaten. Trust Payments verwendet den privaten Schlüssel zur Entschlüsselung der Zahlungsdaten, um Zahlungen zu verarbeiten.
Sie müssen sich mit unserem Support-Team in Verbindung setzen, um Apple Pay auf Ihrem Trust Payments Website-Referenz zu aktivieren. Bitte teilen Sie dem Support-Team mit, dass Sie einen CSR für die Zahlungsabwicklung als Teil Ihrer Apple Pay Integration benötigen. Im Rahmen dieses Prozesses werden Sie gebeten, die folgenden Informationen anzugeben:
- Ihre Website-Referenz(s).
- Die Domain Ihrer Zahlungsseite.
- Ihre Apple Pay Merchant ID(s).
- Ihr Webservices Benutzername.
Das Support-Team sendet Ihnen eine Zertifikatsanforderung (PEM ) für jede Händler-ID, und Sie müssen die folgenden Schritte für jede Händler-ID ausführen, um Apple Pay für Ihr Konto zu aktivieren.
Dieser Prozess muss sowohl für Ihre Testversion Website-Referenz als auch für Ihre Live-Version Website-Referenz durchgeführt werden, wenn Sie bereit sind, Zahlungen in unserer Produktionsumgebung zu verarbeiten.
(Die folgenden Schritte gehen davon aus, dass Sie bereits eine Händler-ID über Ihr Apple-Konto Entwickler erstellt haben).
- Melden Sie sich im Apple Entwickler Center an:
https ://developer.apple.com/account/ (Link zu externer Seite) - Wählen Sie im Mitgliedercenter "Certificates, Identifiers & Profiles".
- Wählen Sie unter Bezeichner "Merchant IDs".
- Wählen Sie die Händler-ID aus der Liste aus, und klicken Sie auf "Edit".
- Klicken Sie im Abschnitt Zahlungsabwicklungszertifikate auf "Create Certificate".
- Klick "Choose File"Wählen Sie die CSR-Datei für die Zahlungsabwicklung aus, die Sie zuvor vom Support-Team per E-Mail erhalten haben, und klicken Sie auf "Generate".
- Laden Sie das Zertifikat herunter, indem Sie auf "Download", und klicken Sie auf "Done".
Sie müssen sich nun mit dem heruntergeladenen Zertifikat an das Support-Team wenden:
- Wenn Sie die obigen Schritte befolgt haben, sollten Sie im Besitz eines Apple Pay Zertifikats sein (CER Datei).
- Komprimieren Sie diese Datei in eine .zip-Datei, hängen Sie sie an eine E-Mail an und senden Sie sie an support@trustpayments.com.
- Sobald der Support das Zertifikat erhalten und per E-Mail bestätigt hat, können Sie fortfahren.
Sie müssen sicherstellen, dass Sie das Zertifikat in einer .zip-Datei senden, wenn Sie eine E-Mail an den Support schicken.
Erstellen Sie ein Händleridentitätszertifikat
Folgen Sie den Schritten, die Apple in diesem Dokument im Abschnitt "Create a merchant identity certificate".
Klicken Sie hier, um diese Seite in einem neuen Tab zu öffnen (Link zu externer Seite).
Registrieren und verifizieren Sie Ihre Händler-Domain
Folgen Sie den Schritten, die Apple in diesem Dokument im Abschnitt "Register a merchant domain".
Klicken Sie hier, um diese Seite in einem neuen Tab zu öffnen (Link zu externer Seite).
Haben Sie Probleme bei der Verifizierung Ihrer Domain?
Wenn Sie die folgende Fehlermeldung bei der Validierung der Domäne auf Apples Entwickler Portal erhalten:
Verifizierung für Domain fehlgeschlagen
Es kann keine sichere Verbindung zu '' hergestellt werden.https://yourdomain.com/.well-known/apple-developer-merchantid-domain-association.txt’
Das Domänenzertifikat ist nicht vertrauenswürdig.
Lösung
Apple verlangt, dass der Server eine hohe Sicherheitseinstufung erhält, um eine Domain erfolgreich zu validieren.
(Wenn Sie z. B. SSL Labs zur Überprüfung Ihres Zertifikats verwenden, ist mindestens die Note A erforderlich: https ://www.ssllabs.com/ssltest/index.html (Link zu einer externen Website)
AUTH Anfrage
Nachdem Sie die Integration wie oben beschrieben abgeschlossen haben, können Sie nun Ihre Kasse aktualisieren, um Apple Pay Transaktionen zu verarbeiten, indem Sie eine AUTH Anfrage an das Trust Payments Gateway senden, die den unten beschriebenen Spezifikationen entspricht:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"sitereference": "test_site12345",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"currencyiso3a": "GBP",
"baseamount": "1050",
"orderreference": "My_Order_123",
"billingcontactdetailsoverride": "1",
"customercontactdetailsoverride": "1",
"wallettoken": "{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"signature\":\"SIGNATURE HERE",\"data\":\"DATA HERE",\"header\":{\"publicKeyHash\":\"PUBLIC KEY HASH HERE",\"ephemeralPublicKey\":\"PUBLIC KEY",\"transactionId\":\"TXN ID"}},\"paymentMethod\":{\"displayName\":\"CARD TYPE AND LAST 4",\"network\":\"SCHEME\",\"type\":\"CREDIT / DEBIT\"},\"transactionIdentifier\":\"TXN IDENTIFIER\"}}",
"walletsource": "APPLEPAY"
}
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(
'sitereference' => 'test_site12345',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'currencyiso3a' => 'GBP',
'baseamount' => '1050',
'orderreference' => 'My_Order_123',
'billingcontactdetailsoverride' => '1',
'customercontactdetailsoverride' => '1',
'wallettoken' => '{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"signature\":\"SIGNATURE HERE",\"data\":\"DATA HERE",\"header\":{\"publicKeyHash\":\"PUBLIC KEY HASH HERE",\"ephemeralPublicKey\":\"PUBLIC KEY",\"transactionId\":\"TXN ID"}},\"paymentMethod\":{\"displayName\":\"CARD TYPE AND LAST 4",\"network\":\"SCHEME\",\"type\":\"CREDIT / DEBIT\"},\"transactionIdentifier\":\"TXN IDENTIFIER\"}}',
'walletsource' => 'APPLEPAY'
);
$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": [{
"currencyiso3a": "GBP",
"requesttypedescriptions": ["AUTH"],
"sitereference": "test_site12345",
"baseamount": "1050",
"orderreference": "My_Order_123",
"billingcontactdetailsoverride": "1",
"customercontactdetailsoverride": "1",
"wallettoken": "{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"signature\":\"SIGNATURE HERE",\"data\":\"DATA HERE",\"header\":{\"publicKeyHash\":\"PUBLIC KEY HASH HERE",\"ephemeralPublicKey\":\"PUBLIC KEY",\"transactionId\":\"TXN ID"}},\"paymentMethod\":{\"displayName\":\"CARD TYPE AND LAST 4",\"network\":\"SCHEME\",\"type\":\"CREDIT / DEBIT\"},\"transactionIdentifier\":\"TXN IDENTIFIER\"}}",
"walletsource": "APPLEPAY"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"GBP",
"requesttypedescriptions":["AUTH"],
"sitereference":"test_site12345",
"baseamount":"1050",
"orderreference":"My_Order_123",
"accounttypedescription":"ECOM",
"billingcontactdetailsoverride": "1",
"customercontactdetailsoverride": "1",
"wallettoken": "{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"signature\":\"SIGNATURE HERE",\"data\":\"DATA HERE",\"header\":{\"publicKeyHash\":\"PUBLIC KEY HASH HERE",\"ephemeralPublicKey\":\"PUBLIC KEY",\"transactionId\":\"TXN ID"}},\"paymentMethod\":{\"displayName\":\"CARD TYPE AND LAST 4",\"network\":\"SCHEME\",\"type\":\"CREDIT / DEBIT\"},\"transactionIdentifier\":\"TXN IDENTIFIER\"}}",
"walletsource": "APPLEPAY"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>My_Order_123</orderreference>
</merchant>
<billing>
<payment>
<wallet>
<token>{\"token\":{\"paymentData\":{\"version\":\"EC_v1\",\"signature\":\"SIGNATURE HERE",\"data\":\"DATA HERE",\"header\":{\"publicKeyHash\":\"PUBLIC KEY HASH HERE",\"ephemeralPublicKey\":\"PUBLIC KEY",\"transactionId\":\"TXN ID"}},\"paymentMethod\":{\"displayName\":\"CARD TYPE AND LAST 4",\"network\":\"SCHEME\",\"type\":\"CREDIT / DEBIT\"},\"transactionIdentifier\":\"TXN IDENTIFIER\"}}</token>
<source>APPLEPAY</source>
</wallet>
</payment>
<contactdetailsoverride>1</contactdetailsoverride>
<amount currencycode="GBP">1050</amount>
</billing>
<customer>
<contactdetailsoverride>1</contactdetailsoverride>
</customer>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</request>
</requestblock>
Bei der hier beschriebenen Beispielanforderung handelt es sich um die Verarbeitung einer eigenständigen Apple Pay E-Commerce-Transaktion über die API Webservices . Sobald diese verarbeitet und abgewickelt wurde, und vorausgesetzt, Sie verfügen über eine Händler-ID (MID), die dies unterstützt, unterstützen wir auch die Verarbeitung nachfolgender wiederkehrender Transaktionen - diese werden verwendet, um wiederholte Zahlungen zu erleichtern, wenn der Kunde nicht anwesend ist. Klicken Sie hier, um mehr zu erfahren.
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Reichen Sie "ECOM" ein, um eine E-Commerce-Transaktion darzustellen. | |
baseamount XPath: /billing/amount |
Numerisch (13) | Der Betrag der Transaktion in Basiseinheiten, ohne Kommas oder Dezimalpunkte, d. h. 10€ wird als 1000 übermittelt. Dieser Wert muss größer als Null sein. (Die maximale Länge kann je nach Bank variieren - wenden Sie sich für weitere Informationen an Ihre Bank) | |
billingcontactdetailsoverride XPath: /billing/contactdetailsoverride |
Numerisch (1) | Senden Sie mit dem Wert "1". Dies ermöglicht es den Kunden, die in ihrer Apple Pay Geldbörse gespeicherten Rechnungsdaten zu verwenden. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) | Die Währung der Transaktion. Klicken Sie hier für eine vollständige Liste der verfügbaren Währungen. | |
customercontactdetailsoverride XPath: /customer/contactdetailsoverride |
Numerisch (1) | Senden Sie mit dem Wert "1". Dies ermöglicht es den Kunden, die in ihrer Apple Pay Geldbörse gespeicherten Lieferdaten zu verwenden. | |
orderreference XPath: /merchant/orderreference |
Alphanumerisch einschließlich Symbole (25)
Siehe Beschreibung rechts für weitere Details. |
Ihre eindeutige Auftragsnummer, die im System Trust Payments gespeichert werden kann. Hinweis: Dies kann zu einem späteren Zeitpunkt aktualisiert werden (nur wenn die Transaktion noch nicht abgeschlossen ist Abrechnung). Empfohlene Länge 25 Zeichen oder weniger (genaue Länge abhängig von der erwerbenden Bank). Die Nichteinhaltung dieser Anforderung kann dazu führen, dass der Text in der Transaktion abgeschnitten wird. |
|
requesttypedescriptions XPath: /@type |
Alpha (20) |
Unterstützte Kombinationen Anforderungstyp :
Klicken Sie hier, um mehr über die Antragsarten zu erfahren. |
|
sitereference XPath: /operation/sitereference |
Alphanumerisch & Unterstrich (50) |
Identifiziert Ihre Website auf dem System Trust Payments . | |
walletsource XPath: /billing/payment/wallet/source |
Alpha (8) | Muss mit dem Wert "APPLEPAY" eingereicht werden. | |
wallettoken XPath: /billing/payment/wallet/token |
JSON-kodierte Zeichenfolge |
Einzigartiges Token, das von Apple bereitgestellt wird, um die Kartendaten des Kunden darzustellen. Dieses sollte nicht geändert werden. |
AUTH Antwort
Nach dem Absenden der Anfrage AUTH erhalten Sie eine Antwort von AUTH .
Diese Antwort folgt einer ähnlichen Struktur wie die Standardantwort AUTH für eine Kartenzahlung, wie auf dieser Seite dokumentiert, aber achten Sie besonders auf diese zusätzlichen Felder / Unterschiede in der Spezifikation:
Feld | Format | Beschreibung | |
maskedpan XPath: /billing/payment/pan |
Alphanumerisch einschließlich "#" (12-19) | Die Apple Pay Token-Nummer des Kunden(NICHT die Kartennummer). Diese wird in der Antwort verschleiert. Der größte Teil der Nummer wird absichtlich durch "#"-Zeichen verdeckt, z. B. 411111######0211. | |
tokenisedpayment XPath: /billing/payment/pan/@tokenised |
Numerisch (1) | Dieser wird mit dem Wert 1 zurückgegeben, um anzuzeigen, dass die Transaktion unter Verwendung eines Tokens verarbeitet wurde. | |
tokentype XPath: /billing/payment/pan/@tokentype |
Alphanumerisch (50) | Dient zur Identifizierung der Art des für diese Zahlung verwendeten Tokens (in diesem Fall "APPLEPAY"). | |
walletdisplayname XPath: /billing/payment/wallet/displayname |
Alphanumerisch (255) | Die vom Kunden verwendete Kartenart und die letzten vier Ziffern seiner Kartennummer (z. B. "Visa 1111"). | |
walletsource XPath: /billing/payment/wallet/source |
Alphanumerisch (20) | Wird verwendet, um die Art der für diese Zahlung verwendeten Geldbörse zu identifizieren (in diesem Fall "APPLEPAY"). |