pixiSetCreditCardInfo
Maskiert die gespeicherte Kreditkartennummer und CVC der Adresse eines Auftrags und/oder speichert einen Autorisierungscode am Auftrag.
Aktualisiert kreditkartenbezogene Daten für den über OrderNr angegebenen Auftrag. Abhängig von den Parametern laufen zwei voneinander unabhängige Schritte:
- Maskierung (wenn
ScrambleData= 1, Standard): Die vom Auftrag referenzierte Adresse (OrderHeader.AddrRef) wird ermittelt. Enthält deren KartennummerACardNrnoch nicht****, wird sie durch*************gefolgt von den letzten vier Zeichen der ursprünglichen Nummer ersetzt, und die KartenprüfnummerCCCVCwird auf***gesetzt. - Autorisierungscode (wenn
AuthCodenicht NULL ist): Der Wert wird inOrderHeader.ccpPayIDdes Auftrags geschrieben.
Beide Schritte können in einem Aufruf kombiniert werden. Die Prozedur liefert keine Ergebnismenge, sondern setzt nur einen Rückgabewert: 0, wenn mindestens eine Zeile aktualisiert wurde, sonst 1.
Hinweise
- Der Rückgabewert (
0/1) ist ein T-SQL-RETURN-Wert und wird nicht als Zeile geliefert; SOAP-Clients sehen ihn in der Regel nicht. Für eine unbekannteOrderNrgibt es keinen expliziten Fehler – es wird dann nichts aktualisiert. - Die Maskierung betrifft den Adressdatensatz selbst. Wird dieselbe Adresse von weiteren Aufträgen oder vom Kunden verwendet, sind die Kartendaten für alle maskiert.
- Adressen mit
ACardNr= NULL werden nicht maskiert (dieNOT LIKE-Prüfung ist für NULL nicht wahr). Bereits maskierte Nummern (mit****) werden übersprungen, wiederholte Aufrufe sind daher unkritisch. - Die Auftragssuche nutzt
NOLOCK, die UpdatesROWLOCK. Es wird keine explizite Transaktion verwendet, die beiden Schritte sind also nicht atomar. - Um nur einen Autorisierungscode ohne Maskierung zu speichern,
ScrambleData= 0 übergeben. - Zum Löschen der temporären Tabelle wird
util.TempTableDropaufgerufen; dessen Definition liegt nicht vor.
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
OrderNr
Pflicht
|
int | – |
Nummer des Auftrags ( Beispiel: |
ScrambleData
|
bit boolean |
1 |
Legt fest, ob Kartennummer und CVC der Auftragsadresse maskiert werden. Erlaubte Werte
Beispiel: |
AuthCode
|
varchar(50) string |
NULL |
Autorisierungscode bzw. Zahlungs-ID, der in Beispiel: |
Antwort
Dieser Call liefert kein Result-Set.
Beispiele
POST https://apigateway.descartes.com/tms/pixi/
Content-Type: text/xml; charset=utf-8
Authorization: Basic BASE64(USERNAME:PASSWORD)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiSetCreditCardInfo>
<OrderNr>104523</OrderNr>
<!-- <ScrambleData>1</ScrambleData> -->
<!-- <AuthCode>AUTH-7F3K92</AuthCode> -->
</ns1:pixiSetCreditCardInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
curl -X POST 'https://apigateway.descartes.com/tms/pixi/' \
--user 'USERNAME:PASSWORD' \
--header 'Content-Type: text/xml; charset=utf-8' \
--data-binary @- <<'XML'
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://apigateway.descartes.com/tms/pixi/">
<SOAP-ENV:Body>
<ns1:pixiSetCreditCardInfo>
<OrderNr>104523</OrderNr>
<!-- <ScrambleData>1</ScrambleData> -->
<!-- <AuthCode>AUTH-7F3K92</AuthCode> -->
</ns1:pixiSetCreditCardInfo>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
<?php
$soapClient = new SoapClient(null, [
'login' => 'USERNAME',
'password' => 'PASSWORD',
'location' => 'https://apigateway.descartes.com/tms/pixi/',
'uri' => 'https://apigateway.descartes.com/tms/pixi/',
]);
$arguments = [
'OrderNr' => '104523',
// 'ScrambleData' => '1',
// 'AuthCode' => 'AUTH-7F3K92',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiSetCreditCardInfo', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiSetCreditCardInfo