MobilePay ist eine von der Danske Bank entwickelte mobile Zahlungsanwendung. Sie fusionierte 2022 mit Vipps und wurde zu Vipps MobilePay. Bei der Auswahl von MobilePay werden die Kunden aufgefordert, ihre Mobiltelefonnummer einzugeben. Während Neukunden von MobilePay durch einen Registrierungsprozess geführt werden, werden wiederkehrende Kunden aufgefordert, die App MobilePay auf ihrem Smartphone zu öffnen und die Transaktion zu bestätigen. Als digitale Brieftasche ist MobilePay für die sichere Speicherung der Kartendaten des Kunden verantwortlich, so dass er an der Kasse einfach seine bevorzugte Karte auswählen kann. Die Transaktion wird schließlich wie bei herkömmlichen Kartentransaktionen von den kreditgebenden Banken verarbeitet und autorisiert.
Unterstützte Kundenländer | DK, FI |
Unterstützte Währungen | DKK, EUR, NOK, SEK |
Rückerstattungen |
Vollständige und teilweise Rückerstattung bis zu 365 Tagen. |
Rückbuchungen |
Zahlungen können Gegenstand von Rückbuchungen sein. |
Zero-authorisation |
Zero-Autorisierungen kann durch Einreichen einer ACCOUNTCHECK Anfrage durchgeführt werden, wenn dies von Ihrer anwerbenden Bank unterstützt wird. |
Wiederkehrende Zahlungen |
Nicht unterstützt. |
Konfiguration
Um MobilePay für Ihr Konto zu aktivieren, setzen Sie sich bitte mit Ihrem Kundenbetreuer in Verbindung. Sie müssen ein Bild Ihres Firmenlogos bereitstellen, das dem Kunden in der App MobilePay angezeigt wird, wenn er aufgefordert wird, die Zahlung zu autorisieren. Im Gegenzug stellen wir Ihnen ein Test-Sandbox-Konto zur Verfügung, das Sie zum Testen Ihrer Implementierung benötigen.
Voraussetzungen
- MobilePay kann nur von Händlern angeboten werden, die in Ländern der Europäischen Union (EU) und/oder des Europäischen Wirtschaftsraums (EWR) sowie im Vereinigten Königreich tätig sind. MobilePay ist besonders beliebt in Dänemark und Finnland.
- Um MobilePay in Ihre Kasse zu integrieren, benötigen Sie eine Händlerkennung (MID), die es Ihnen ermöglicht, E-Commerce-Transaktionen (ECOM) zu verarbeiten. Denn obwohl der Kunde die Zahlung über MobilePay genehmigt, wird letztendlich eine Kartentransaktion abgewickelt, für die Sie eine Beziehung zu einer Acquiring-Bank unterhalten müssen.
Trust Payments unterstützt nur MobilePay Transaktionen, die mit Zahlungskarten der Marken Mastercard und Visa abgewickelt werden.
Überblick über den Prozess
-
Initiieren Sie den Kunden
- Der Kunde erklärt sich mit einer Zahlung über MobilePay auf der Website des Händlers einverstanden.
- Der Händler sendet eine kombinierte Anfrage ORDER, THREEDQUERY, AUTH , um die Sitzung einzuleiten. Diese Anfrage enthält folgende Felder returnurl und cancelurl.
- Das Handelsunternehmen erhält die Antwort, einschließlich redirecturl.
- Falls konfiguriert, sendet Trust Payments eine URL-Benachrichtigung an das System des Händlers, um den oben genannten Sachverhalt mitzuteilen.
-
Weiterleiten zu MobilePay
- Der Händler leitet den Browser des Kunden auf die redirecturl.
- Der Kunde folgt den Anweisungen auf den von MobilePay gehosteten Seiten, um die Zahlung zu autorisieren.
- Bei Erfolg wird der Browser auf die Seite returnurl, eine vom Händler gehostete Warteseite, die eine "Bitte warten"-Meldung anzeigt. Diese Weiterleitung enthält die Felder transactionreference, ordertransactionreference und signature.
- Wenn ein Problem mit der Zahlung aufgetreten ist, wird der Browser auf die Seite cancelurl, eine vom Händler gehostete Seite, die dem Kunden einen Fehler anzeigt.
-
Auth-Antwort verifizieren
- Sobald der Händler eine URL-Benachrichtigung erhält, die ihn über die erfolgreiche Autorisierung informiert (dies muss zunächst auf Ihrer Website-Referenz konfiguriert werden), bearbeitet er eine VERIFYAUTHRESPONSE Anfrage, die Folgendes enthält verifystring, ein Objekt, das die Werte der Variablen transactionreference, ordertransactionreference und signature Felder, die in der Weiterleitung von MobilePay zurückgegeben werden.
-
Abschluss der Zahlung
- Wenn die VERIFYAUTHRESPONSE eine erfolgreiche Antwort liefert, zeigt der Händler eine Erfolgsmeldung im Browser an.
- Wenn ein Problem aufgetreten ist, zeigt der Händler eine Fehlermeldung im Browser an.
- Nach Autorisierung wird der Betrag auf Ihr Bankkonto überwiesen, und zwar nach demselben Verfahren wie bei normalen Kartentransaktionen.
- Gemäß dem Standard-Zahlungsablauf für Kartentransaktionen wird der Betrag in der Regel innerhalb von 24 Stunden auf Ihr Bankkonto überwiesen ( Autorisierung).
Trust Payments unterstützt nicht die Verarbeitung von erneutenAutorisierungen oder neuen Account Checks , die Zahlungsdaten von einer zuvor verarbeiteten MobilePay Transaktion erben. Der Versuch, solche Aktionen durchzuführen, führt zu errorcode "60018" mit errormessage "Ungültiger requesttype" wird zurückgegeben.
1. Initiieren Sie den Kunden
Wenn sich der Kunde für die Zahlung mit MobilePay entscheidet, muss Ihr System eine kombinierte ORDER, THREEDQUERY, AUTH -Anfrage übermitteln und, falls erfolgreich, den Browser des Kunden auf die redirecturl in der Antwort zurückgegeben.
Bevor Sie mit dem Testen beginnen, müssen Sie sich mit unserem Support-Team in Verbindung setzen und beantragen, dass in Ihrem Konto eine Regel aktiviert wird, die unter Autorisierung eine URL-Benachrichtigung an Ihr System sendet.
Wir empfehlen, mindestens die folgenden Felder in Ihre Autorisierung Meldung aufzunehmen:
- Antwortnachricht des Käufers (acquirerresponsemessage)
- Basisbetrag (baseamount) (z.B. £10.50 ist "1050")*
- Hauptbetrag (mainamount) (z.B. £10.50 ist "10.50")*
- Rechnungsland (billingcountryiso2a)
- Währung (currencyiso3a)
- Fehlercode (errorcode)
- Live-Status (livestatus)
- Bestellnummer (orderreference)
- Zahlungsart (paymenttypedescription)
- Anforderungstyp (requesttypedescription)
- Abrechnungsstatus (settlestatus)
- Website-Referenz (sitereference)
- Transaktionsnummer (transactionreference)
- Zeitstempel Transaktionsstart (transactionstartedtimestamp)
*Bitte wählen Sie Ihr bevorzugtes Format.
Kombinierter Antrag ORDER, THREEDQUERY, AUTH
Die nachstehende Beispielanfrage bezieht sich auf die Anfrage zur Initialisierung der Zahlungsverkehrssitzung MobilePay :
Sie können Anforderungstyp THREEDQUERY von der Anfrage ausschließen, um die Transaktion von den 3-D Secure Authentifizierungsprüfungen auszunehmen. Auf diese Weise ausgenommene Transaktionen werden automatisch mit dem entsprechenden SCA Ausnahmekennzeichen gekennzeichnet (in diesem Fall "5", was eine delegierte Authentifizierung bedeutet). Wenn der Emittent eine weiche Ablehnung zurückgibt, versuchen wir die Transaktion automatisch mit der erforderlichen 3-D Secure Authentifizierung erneut.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"accounttypedescription": "ECOM",
"baseamount": "1050",
"billingcontactdetailsoverride": "1",
"cancelurl": "https://example.com/cancelpayment",
"currencyiso3a": "DKK",
"customercontactdetailsoverride": "1",
"orderreference": "MyOrder123",
"paymenttypedescription": "MOBILEPAY",
"requesttypedescriptions": ["ORDER","THREEDQUERY","AUTH"],
"returnurl":" https://example.com/successpayment",
"sitereference":"test_site12345"
}
strequest = securetrading.Request()
strequest.update(order)
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' => 'ECOM',
'baseamount' => '1050',
'billingcontactdetailsoverride' => '1',
'cancelurl' => 'https://example.com/cancelpayment',
'currencyiso3a' => 'DKK',
'customercontactdetailsoverride' => '1',
'orderreference' => 'MyOrder123',
'paymenttypedescription' => 'MOBILEPAY',
'requesttypedescriptions' => array('ORDER','THREEDQUERY','AUTH'),
'returnurl' => 'https://example.com/successpayment',
'sitereference' => 'test_site12345',
);
$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": "ECOM",
"baseamount": "1050",
"billingcontactdetailsoverride": "1",
"cancelurl": "https://example.com/cancelpayment",
"currencyiso3a": "DKK",
"customercontactdetailsoverride": "1",
"orderreference": "MyOrder123",
"paymenttypedescription": "MOBILEPAY",
"requesttypedescriptions": ["ORDER","THREEDQUERY","AUTH"],
"returnurl": "https://example.com/successpayment",
"sitereference": "test_site12345"
}]
}'
{
"alias": "webservices@example.com",
"request": [{
"accounttypedescription":"ECOM",
"baseamount":"1050",
"billingcontactdetailsoverride":"1",
"cancelurl":"https://example.com/cancelpayment",
"currencyiso3a":"DKK",
"customercontactdetailsoverride":"1",
"orderreference":"MyOrder123",
"paymenttypedescription":"MOBILEPAY",
"requesttypedescriptions":["ORDER","THREEDQUERY","AUTH"],
"returnurl":"https://example.com/successpayment",
"sitereference":"test_site12345"
}],
"version": "1.00"
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<billing>
<amount currencycode="DKK">1050</amount>
<contactdetailsoverride>1</contactdetailsoverride>
<payment type="MOBILEPAY"/>
</billing>
<customer>
<contactdetailsoverride>1</contactdetailsoverride>
</customer>
<merchant>
<cancelurl>https://example.com/cancelpayment</cancelurl>
<returnurl>https://example.com/successpayment</returnurl>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<sitereference>test_site12345</sitereference>
</operation>
</request>
<request type="THREEDQUERY"/>
<request type="AUTH"/>
</requestblock>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Nur "ECOM" (E-Commerce) wird unterstützt. | |
baseamount XPath: /billing/amount |
Numerisch (13) | Der Betrag der Transaktion in Basiseinheiten, ohne Kommas oder Dezimalpunkte, d. h. €10 werden als €1000 übermittelt. Dieser Wert muss größer als Null sein. (Die maximale Länge kann je nach Bank variieren - weitere Informationen erhalten Sie von Ihrer Bank) | |
cancelurl XPath: /merchant/cancelurl |
URL (2048) |
Die URL, zu der der Kunde zurückkehren wird, wenn er die Transaktion abbricht, nachdem er zur redirecturl. |
|
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
Die Währung , in der die Transaktion verarbeitet werden soll (im ISO3A-Format). Eine Liste der Währung Codes, die von MobilePay unterstützt werden, finden Sie in der Liste oben auf dieser Seite. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Der angegebene Wert muss "MOBILEPAY" lauten. | |
requesttypedescriptions XPath: /@type |
Alpha (20) |
Sie müssen das Array einreichen: (Das erforderliche Format unterscheidet sich bei XML-Anfragen. Bitte beachten Sie das obige Beispiel) |
|
returnurl XPath: /merchant/returnurl |
URL (2048) | Die URL, zu der der Kunde nach einer erfolgreichen Autorisierung zurückkehrt. | |
sitereference XPath: /operation/sitereference |
Alphanumerisch & Unterstrich (50) |
Die Website-Referenz bezieht sich auf Ihr individuelles Konto, das Sie bei der Einrichtung erhalten haben. Wenn Sie Ihre Website-Referenz nicht kennen, wenden Sie sich bitte an unser Support-Team. | |
billingcontactdetailsoverride XPath: /billing/contactdetailsoverride |
Numerisch (1) |
Wert 1 kann nicht eingereicht werden, wenn keine physischen Waren geliefert werden. |
|
billingcounty XPath: /billing/county |
Alphanumerisch einschließlich Symbole (127) |
Der Bezirk, der für die Rechnungsadresse des Kunden eingegeben wurde. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingcountryiso2a XPath: /billing/country |
Alpha (2) |
Das Land, in dem die Rechnungsadresse des Kunden liegt. Diese muss im ISO2A-Format angegeben werden. Eine Liste der von MobilePay unterstützten Ländercodes finden Sie in der Liste oben auf dieser Seite. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingemail XPath: /billing/email |
E-Mail (255) |
Die Adresse des Kunden Rechnungs-E-Mail . Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Zeichen). Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingfirstname XPath: /billing/name/first |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsvorname. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billinglastname XPath: /billing/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der Kunde ist Rechnungsnachname. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingmiddlename XPath: /billing/name/middle |
Alphanumerisch einschließlich Symbole (127) |
Der/die mittlere(n) Rechnungsname(n) des Kunden. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingpostcode XPath: /billing/postcode |
Alphanumerisch (25) |
Die Rechnungspostleitzahl oder die Postleitzahl. Es muss sich um eine gültige Postleitzahl für den billingcountryiso2a vorgelegt. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingprefixname XPath: /billing/name/prefix |
Alphanumerisch einschließlich Symbole (25) |
Das Präfix des Rechnungsnamens des Kunden (z. B. Herr, Frau, Dr.). Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingpremise XPath: /billing/premise |
Alphanumerisch einschließlich Symbole (25) |
Die Hausnummer oder die erste Zeile der Rechnungsadresse des Kunden. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingstreet XPath: /billing/street |
Alphanumerisch einschließlich Symbole (127) |
Die für die Rechnungsadresse des Kunden eingegebene Straße. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingsuffixname XPath: /billing/name/suffix |
Alphanumerisch einschließlich Symbole (25) |
Das Suffix des Rechnungsnamens des Kunden (z. B. Bsc). Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingtelephone XPath: /billing/telephone |
Alphanumerisch einschließlich Symbole (20) |
Die Telefonnummer des Kunden. Gültige Zeichen:
Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingtelephonetype XPath: /billing/telephone/@type |
Saibling (1) |
Die Art der Telefonnummer. Die verfügbaren Optionen sind:
Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
billingtown XPath: /billing/town |
Alphanumerisch einschließlich Symbole (127) |
Der Ort, der für die Rechnungsadresse des Kunden eingegeben wurde. Wenn billingcontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customercontactdetailsoverride XPath: /customer/contactdetailsoverride |
Numerisch (1) |
Wert 1 kann nicht eingereicht werden, wenn keine physischen Waren geliefert werden. |
|
customercounty XPath: /customer/county |
Alphanumerisch einschließlich Symbole (127) |
Der für die Lieferadresse eingegebene Bezirk. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Das Land der Lieferadresse. Es muss im ISO2A-Format angegeben werden. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customeremail XPath: /customer/email |
E-Mail (255) |
Die Zustell-E-Mail-Adresse. Maximale Länge von 255 (maximal 64 Zeichen vor dem "@"-Symbol). Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerfirstname XPath: /customer/name/first |
Alphanumerisch einschließlich Symbole (127) |
Der Vorname der Lieferung. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerlastname XPath: /customer/name/last |
Alphanumerisch einschließlich Symbole (127) |
Der Nachname des Zustellers. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customermiddlename XPath: /customer/name/middle |
Alphanumerisch einschließlich Symbole (127) |
Der/die mittlere(n) Name(n) der Lieferung. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerpostcode XPath: /customer/postcode |
Alphanumerisch (25) |
Die Postleitzahl oder der ZIP-Code für die Zustellung. Es muss sich um eine gültige Postleitzahl für den customercountryiso2a vorgelegt. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerprefixname XPath: /customer/name/prefix |
Alphanumerisch einschließlich Symbole (25) |
Das Präfix des Zustellungsnamens (z. B. Herr, Frau, Dr.). Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerpremise XPath: /customer/premise |
Alphanumerisch einschließlich Symbole (25) |
Die Hausnummer oder die erste Zeile der Lieferadresse. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customerstreet XPath: /customer/street |
Alphanumerisch einschließlich Symbole (127) |
Die für die Lieferadresse eingegebene Straße. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customersuffixname XPath: /customer/name/suffix |
Alphanumerisch einschließlich Symbole (25) |
Das Suffix des Liefernamens (z. B. Bsc). Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customertelephone XPath: /customer/telephone |
Alphanumerisch einschließlich Symbole (20) |
Die Telefonnummer der Zustellung. Gültige Zeichen:
Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customertelephonetype XPath: /customer/telephone/@type |
Saibling (1) |
Die Art der Telefonnummer. Die verfügbaren Optionen sind:
Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
customertown XPath: /customer/town |
Alphanumerisch einschließlich Symbole (127) |
Die für die Lieferadresse eingegebene Stadt. Wenn customercontactdetailsoverride=1, wird dieser Wert durch den Wert in der Brieftasche des Kunden überschrieben. |
|
orderreference XPath: /merchant/orderreference |
Alphanumerisch einschließlich Symbole (25)
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. |
Ihre eindeutige Auftragsnummer, die im System Trust Payments gespeichert werden kann. |
ORDER Antwort
{
u'requestreference': u'An3ug1kap',
u'version': u'1.00',
u'responses': [{
u'accounttypedescription': u'ECOM',
u'errorcode': u'0',
u'errormessage': u'Ok',
u'livestatus': u'0',
u'operatorname': u'webservices@example.com',
u'orderreference': u'MyOrder123',
u'paymenttypedescription': u'MOBILEPAY',
u'redirecturl': u'https://example.com',
u'requesttypedescription': u'ORDER',
u'settleduedate': u'2022-08-24',
u'settlestatus': u'0',
u'transactionreference': u'30-101-155',
u'transactionstartedtimestamp': u'2022-08-24 15:20:47'
}]
}
array(3) {
["requestreference"] => string(9) "A0345jmuw"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0]=> array(13) {
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["orderreference"] => string(10) "MyOrder123"
["paymenttypedescription"] => string(9) "MOBILEPAY"
["redirecturl"] => string(19) "https://example.com"
["requesttypedescription"] => string(5) "ORDER"
["settleduedate"] => string(10) "2022-08-24"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(10) "30-101-155"
["transactionstartedtimestamp"] => string(19) "2022-08-24 15:20:47"
}
}
}
{
"requestreference":"W30-jc1pdcm4",
"response":[{
"accounttypedescription":"ECOM",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"operatorname":"webservices@example.com",
"orderreference":"MyOrder123",
"paymenttypedescription":"MOBILEPAY",
"redirecturl":"https://example.com",
"requesttypedescription":"ORDER",
"settleduedate":"2022-08-24",
"settlestatus":"0",
"transactionreference":"30-101-155",
"transactionstartedtimestamp":"2022-08-24 15:20:47"
}],
"secrand": "SjBuz3MmMGu",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>Xd4nk260v</requestreference>
<response type="ORDER">
<billing>
<payment type="MOBILEPAY"/>
</billing>
<error>
<message>Ok</message>
<code>0</code>
</error>
<live>0</live>
<merchant>
<orderreference>MyOrder123</orderreference>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<other>
<redirecturl>https://example.com</redirecturl>
</other>
<settlement>
<settleduedate>2022-08-24</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<transactionreference>30-101-155</transactionreference>
<timestamp>2022-08-24 15:20:47</timestamp>
</response>
<secrand>Z1W</secrand>
</responseblock>
Feldspezifikation
Feld | Format | Beschreibung | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Der zurückgegebene Wert ist "ECOM". | |
errorcode XPath: /error/code |
Numerisch (1-5) |
Die Fehlercode (errorcode) sollte verwendet werden, um festzustellen, ob die Anfrage erfolgreich war oder nicht.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
livestatus XPath: /live |
Numerisch (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alphanumerisch (255) | Der Wert dieses Feldes enthält den Namen des Benutzers, der die Anfrage bearbeitet hat. | |
orderreference XPath: /merchant/orderreference |
Alphanumerisch einschließlich Symbole (25) |
Die eindeutige Auftragsreferenz, die im System Trust Payments gespeichert ist. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Der zurückgegebene Wert ist "MOBILEPAY". | |
redirecturl XPath: /other/redirecturl |
URL (255) |
Leiten Sie den Browser des Kunden auf diese URL um, damit der Kunde die Zahlung auf den von MobilePay gehosteten Seiten abschließen kann. Sie müssen jegliche URL-Kodierung entfernen, bevor Sie den Browser des Kunden umleiten, um sicherzustellen, dass Sonderzeichen korrekt formatiert werden. |
|
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "ORDER". | |
settleduedate XPath: /settlement/settleduedate |
Datum JJJJ-MM-TT | Das Datum, an dem die Transaktion abgewickelt wird. | |
settlestatus XPath: /settlement/settlestatus |
Numerisch (3) | Damit können Sie den Status der Zahlung ermitteln. Wie dieses Feld am besten zu interpretieren ist, erfahren Sie im Abschnitt Handhabung der Antwort weiter unten. | |
transactionreference XPath: /transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Eine eindeutige Referenz für die Transaktion, die von Trust Payments zugewiesen wird. | |
transactionstartedtimestamp XPath: /timestamp |
Der Zeitpunkt, zu dem die Transaktion bearbeitet wurde. | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. | |
errordata XPath: /error/data |
Alphanumerisch (255) |
Zusätzliche Informationen zur Behebung des Fehlers. Wird nur zurückgegeben, wenn ein Fehler aufgetreten ist. |
2. Weiterleiten an MobilePay
Nach erfolgreicher Übermittlung der ersten Initialisierungsanfrage wie oben dokumentiert, erhält Ihr System eine redirecturl in der Antwort. Ihr System muss jegliche URL-Kodierung aus der URL entfernen (um sicherzustellen, dass Sonderzeichen korrekt formatiert werden) und dann den Browser des Kunden auf diese geänderte URL umleiten. Der Browser zeigt eine von MobilePay gehostete Seite an, auf der der Kunde aufgefordert wird, seine Telefonnummer einzugeben, um fortzufahren.
Anmerkungen zur Prüfung
Bevor Sie loslegen, müssen Sie die Test-App MobilePay auf einem Smartphone in Ihrem Besitz installieren und sich mit einer der von MobilePay bereitgestellten Test-Handynummern anmelden. Klicken Sie hier für weitere Informationen (Link zu externer Seite). Mit diesen Test-Zugangsdaten und der zur Verfügung gestellten App können Sie MobilePay Testtransaktionen mit Ihrem Test Website-Referenz durchführen. Wenn Sie mit MobilePay testen, zeigt Ihr Browser die von MobilePay gehostete Testumgebung an.
Nach der Anmeldung wird im Browser ein Countdown von 5 Minuten angezeigt. Der Kunde hat 5 Minuten Zeit, die App MobilePay auf seinem Smartphone zu öffnen, um die ausstehende Zahlung zu bestätigen. Er erhält den vollen Transaktionsbetrag, den Namen Ihres Geschäfts und die Möglichkeit, seine bevorzugte Karte für die Zahlung zu wählen.
Bei der Prüfung sind diese Kartennummern Testkarten, die von MobilePay zu Testzwecken zur Verfügung gestellt werden.
Der Kunde wischt nach rechts, wenn er aufgefordert wird, die Transaktion zu bestätigen.
EMV 3-D Secure
An diesem Punkt des Bezahlvorgangs wird EMV 3-D Secure ausgeführt, um die Transaktion zu authentifizieren.
Über 3-D Secure
3-D Secure ist eine Form von Starke Kundenauthentifizierung (SCA), die dazu dient, Betrug und Rückbuchungen bei Transaktionen im elektronischen Handel zu verringern. Es ermöglicht den Kartenherausgebern, ein zusätzliches Maß an Schutz zu bieten, indem sie die Karteninhaber an der Verkaufsstelle authentifizieren. Klicken Sie hier, um mehr zu erfahren.
Um die Sicherheit zu erhöhen, kann der Kartenaussteller eine verstärkte Authentifizierung erzwingen, bei der der Kunde zusätzliche Schritte zur Überprüfung seiner Identität unternehmen muss (z. B. Überprüfung und Genehmigung der Bestellung in seiner Banking-App). In diesem Fall wird die Zeit, die dem Kunden für den Abschluss der Transaktion zur Verfügung steht, auf 20 Minuten erhöht.
Andernfalls wird die Transaktion als "reibungslos" behandelt und der Kunde wird nicht unterbrochen.
Wenn die Transaktion schließlich erfolgreich ist, zeigt die App die Antwort "Autorisiert" an. In der Zwischenzeit wird der Kunde im Browser auf die Seite returnurl, eine vom Händler gehostete Warteseite, die eine "Bitte warten"-Meldung anzeigt. Diese Weiterleitung enthält die Felder transactionreference, ordertransactionreference und signature.
Wenn ein Problem mit der Zahlung aufgetreten ist, wird der Browser auf die Seite cancelurl, eine vom Händler gehostete Seite, die dem Kunden einen Fehler anzeigt.
3. Auth-Antwort verifizieren
Umgang mit der Meldung Autorisierung
Ihr System muss auf URL-Benachrichtigungen warten, das so konfiguriert wurde, dass es nach Autorisierung von MobilePay Transaktionen gesendet wird. Sie müssen den Inhalt jeder erhaltenen Benachrichtigung überprüfen und entsprechend reagieren, indem Sie die in unserem URL-Benachrichtigungen Dokumentation. Insbesondere müssen Sie sich die aktualisierte settlestatus Wert:
- Wenn die settlestatus 0", "1" oder "10" ist, wurde die Zahlung autorisiert und Sie müssen zu diesem Zeitpunkt keine weiteren Maßnahmen ergreifen. Werte von "2" oder "3" bedeuten jedoch, dass die Mittel nicht geplant für Abrechnung (ausgesetzt und storniert, bzw.).
VERIFYAUTHRESPONSE Anfrage
Um zu überprüfen, ob die Zahlung erfolgreich abgewickelt wurde, während der Kunde die App MobilePay verwendet hat, müssen Sie eine VERIFYAUTHRESPONSE Anfrage an Trust Payments senden. Diese muss Folgendes enthalten
- Die parenttransactionreference, das ist die transactionreference die in der Antwort ORDER zurückgegeben wird;
- Und die verifystring, das ein Objekt ist, das aus der transactionreference, ordertransactionreference und signature Feldwerte, die in der Umleitung zurückgegeben werden, wie folgt:
"verifystring":"{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}"
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
verifyAuthResponse = {
"parenttransactionreference": "30-101-155",
"requesttypedescriptions": ["VERIFYAUTHRESPONSE"],
"sitereference": "test_site12345",
"verifystring": "{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}"
}
strequest = securetrading.Request()
strequest.update(verifyAuthResponse)
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(
'parenttransactionreference' => '30-101-155',
'requesttypedescriptions' => array('VERIFYAUTHRESPONSE'),
'sitereference' => 'test_site12345',
'verifystring' => '{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}'
);
$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": [{
"parenttransactionreference": "30-101-155",
"requesttypedescriptions": ["VERIFYAUTHRESPONSE"],
"sitereference": "test_site12345",
"verifystring": "{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference":"30-101-155",
"requesttypedescriptions":["VERIFYAUTHRESPONSE"],
"sitereference":"test_site12345",
"verifystring":"{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="VERIFYAUTHRESPONSE">
<operation>
<parenttransactionreference>30-101-155</parenttransactionreference>
<sitereference>test_site12345</sitereference>
<verifystring>{\"transactionreference\":\"30-17-111\",\"ordertransactionreference\":\"30-101-155\",\"signature\":\"3b48b7777\"}</verifystring>
</operation>
</request>
</requestblock>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
VERIFYAUTHRESPONSE Spezifikation des Anfragefeldes
Feld | Format | Beschreibung | |
parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumerisch & Bindestriche (25) |
Die transactionreference die in der Antwort ORDER zurückgegeben wird. | |
requesttypedescriptions XPath: /@type |
Alpha (20) | Der angegebene Wert muss "VERIFYAUTHRESPONSE" lauten. | |
sitereference XPath: /operation/sitereference |
Alphanumerisch & Unterstrich (50) |
Identifiziert Ihre Website auf dem System Trust Payments .
Wenn Sie Ihre Website-Referenz nicht kennen, wenden Sie sich bitte an unser Support-Team. |
|
verifystring XPath: /operation/verifystring |
Objekt |
Ein Objekt, das aus dem transactionreference, ordertransactionreference und signature Feldwerte, die in der Umleitung zurückgegeben werden. Der Wert der ordertransactionreference sollte mit dem Feld transactionreference die in der Antwort ORDER zurückgegeben wird. |
VERIFYAUTHRESPONSE Antwort
Die in der Antwort VERIFYAUTHRESPONSE zurückgegebenen Informationen sollten verwendet werden, um die Nachricht zu bestimmen, die dem Kunden nach seinem Zahlungsversuch angezeigt wird:
{
u'requestreference': u'An3ug1kap',
u'version': u'1.00',
u'response': [{
u'errorcode': u'0',
u'errormessage': u'Ok',
u'requesttypedescription': u'VERIFYAUTHRESPONSE',
u'transactionstartedtimestamp': u'2022-08-24 15:20:47',
}]
}
array(3) {
["requestreference"] => string(9) "A0345jmuw"
["version"] => string(4) "1.00"
["response"] => array(1) {
[0]=> array(4) {
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["requesttypedescription"] => string(18) "VERIFYAUTHRESPONSE"
["transactionstartedtimestamp"] => string(19) "2022-08-24 15:20:47"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"errorcode":"0",
"errormessage":"Ok",
"requesttypedescription":"VERIFYAUTHRESPONSE",
"transactionstartedtimestamp":"2022-08-24 15:20:47"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>Xd4nk260v</requestreference>
<response type="VERIFYAUTHRESPONSE">
<error>
<code>0</code>
<message>Ok</message>
</error>
<timestamp>2022-08-24 15:20:47</timestamp>
</response>
<secrand>Z1W</secrand>
</responseblock>
VERIFYAUTHRESPONSE Antwortfeld-Spezifikation
Feld | Format | Beschreibung | |
errorcode XPath: /error/code |
Numerisch (1-5) |
Die Fehlercode (errorcode) sollte verwendet werden, um festzustellen, ob die Anfrage erfolgreich war oder nicht.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
errormessage XPath: /error/message |
Alphanumerisch (255) |
Dies ist die entsprechende Meldung zum obigen Code.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
requesttypedescription XPath: /@type |
Alpha (20) | Der zurückgegebene Wert ist "VERIFYAUTHRESPONSE". | |
transactionstartedtimestamp XPath: /timestamp |
Datum Uhrzeit JJJJ-MM-TT hh:mm:ss | Der Zeitpunkt, zu dem die Anfrage bearbeitet wurde. |
4. Abschluss der Zahlung
Sie müssen den Wert des Parameters errorcode die in der Antwort VERIFYAUTHRESPONSE zurückgegeben wird, um die entsprechende Antwortmeldung zu bestimmen, die im Browser des Kunden angezeigt werden soll und die das Ergebnis der Zahlung angibt (z. B. Erfolg/Fehler).
- Wenn Sie die Autorisierung URL-Benachrichtigung mit errorcode=0 und die Antwort VERIFYAUTHRESPONSE umfasst auch errorcode=0, eine Erfolgsmeldung anzeigen.
- Wenn Sie die Autorisierung URL-Benachrichtigung erhalten, wo errorcode zurückgegeben wird NICHT 0 oder die Antwort VERIFYAUTHRESPONSE enthält errorcode das ist NICHT 0, eine Fehlermeldung anzeigen und dem Kunden die Möglichkeit geben, es erneut zu versuchen, oder dem Kunden alternative Zahlungsmöglichkeiten anbieten.
Sobald eine Zahlung autorisiert wurde, wird der Betrag auf Ihr Bankkonto überwiesen, und zwar nach demselben Verfahren wie bei normalen Kartentransaktionen. Klicken Sie hier für weitere Informationen.
Abrechnung Meldung
Bevor Sie mit dem Testen beginnen, empfehlen wir Ihnen, auch URL-Benachrichtigungen zu konfigurieren, das auf Abrechnung verarbeitet wird. Wenden Sie sich an unser Support-Team und beantragen Sie die Konfiguration einer neuen Regel für die Verarbeitung von Transaktionen auf Abrechnung von MobilePay .
Wir empfehlen, die folgenden Felder in Ihre Abrechnung Meldung aufzunehmen:
- Abrechnungsstatus (settlestatus)
- Abgerechneter Zeitstempel (settledtimestamp)
- Website-Referenz (sitereference)
- Transaktionsnummer (transactionreference)
Sie müssen den Inhalt jeder eingegangenen Meldung prüfen und entsprechend reagieren, indem Sie die in unserer Website beschriebenen Verfahren befolgen. URL-Benachrichtigungen Dokumentation. Insbesondere müssen Sie sich die aktualisierte settlestatus Wert:
- Wenn die settlestatus auf "100" aktualisiert wurde, bedeutet dies, dass der Betrag beglichen wurde. Wurde der Wert auf "3" aktualisiert, bedeutet dies, dass ein Problem aufgetreten ist und die Zahlung daraufhin storniert wurde.
Prüfung
Sie müssen Ihre Lösung testen, bevor Sie mit der Verarbeitung von Live-Zahlungen beginnen können. Testtransaktionen werden über Ihre Testumgebung Website-Referenz verarbeitet. Bei der Durchführung von Testtransaktionen wird die in der Antwort ORDER zurückgegebene Umleitungs-URL Ihren Browser an die Testumgebung MobilePay weiterleiten, um eine Zahlung zu simulieren. Während einer Testzahlungssitzung müssen Sie die Transaktion mit der auf Ihrem Smartphone installierten MobilePay Test-App genehmigen (klicken Sie hier, um nach oben zu scrollen, wo wir dies genauer erklären). Dies simuliert die Schritte, die der Kunde in der Produktionsumgebung durchführen würde, um eine MobilePay Transaktion abzuschließen.
Stornierung/Rückerstattung von MobilePay Transaktionen
Vor Abrechnung können Sie eine anhängige MobilePay Transaktion stornieren.
Die Möglichkeit, MobilePay Transaktionen zu stornieren, wird von Händlern mit einem Trust Payments Acquiring-Konto unterstützt. Wenn Sie eine andere Acquiring-Bank verwenden, müssen Sie unser Support-Team kontaktieren, um zu prüfen, ob diese Funktion unterstützt wird, bevor Sie fortfahren.
Unter Abrechnung können Sie stattdessen eine MobilePay Transaktion erstatten. Erstattungen für MobilePay folgen dem standardmäßigen Abrechnung Ablauf für Kartentransaktionen, wobei der Betrag normalerweise innerhalb von 24 Stunden an den Kunden zurückerstattet wird.
-
Um eine Stornierung oder Erstattung durchzuführen, benötigen Sie die eindeutige transactionreference den Trust Payments zuweist, um die Anfrage AUTH zu identifizieren. Dieser Wert ist in der GET-Anfrage enthalten, wenn der Kunde von den Servern von MobilePay zurückgeleitet wird, er kann aber auch von der Autorisierung URL-Benachrichtigung früher beschrieben (falls konfiguriert).
Die transactionreference wird der Wert benötigt, der in der Antwort AUTH zurückgegeben wird, NICHT die Antwort ORDER .
-
Um eine MobilePay Transaktion zu stornieren, müssen Sie einen Antrag an TRANSACTIONUPDATE stellen, der die transactionreference und eine Aktualisierung von settlestatus=3, und behandeln die Antwort entsprechend. Klicken Sie hier, um mehr zu erfahren.
-
Um eine MobilePay Transaktion zu erstatten, müssen Sie stattdessen eine REFUND Antwort übermitteln, die die transactionreference, und behandeln die Antwort entsprechend. Klicken Sie hier, um mehr zu erfahren.
-
Voraussetzungen
- Sie können eine Zahlung erst dann erstatten, wenn die AUTH abgewickelt wurde (settlestatus ist "100").
- Sie können keinen höheren Betrag erstatten, als ursprünglich abgerechnet wurde.