pixiPayGetOrdersToAuthorize
Liefert Aufträge mit Positionen im Status HAL, die für eine Zahlungsart zur Autorisierung anstehen, inklusive Beträgen, Karten- und Adressdaten.
Ermittelt Aufträge, die ein Zahlungsanbieter-Connector (z. B. für Kreditkarten) autorisieren soll, und liefert eine Zeile pro Auftrag.
Ablauf der Auswahl:
- Alle Aufträge mit mindestens einer Auftragsposition im Status
HALwerden ermittelt. - Berücksichtigt werden nur Aufträge, bei denen:
- der Auftragskopf zuletzt vor mehr als 10 Minuten geändert wurde (
updatedate), damit der Auftrag vollständig ist, - die Zahlungsart der Auftragsadresse (
Addresses.aPayment) gleichPaymentCodeist, - mindestens eine Bedingung erfüllt ist:
ccpNumOfTries<= 3,CCPReauthorizeYN=Y(Neuautorisierung angefordert),ShowAll= 1 oderccpSetFailTrieszwischen 1 und 3 undccpSetFailLastTimeälter als 10 Minuten, - der Kunde nicht gesperrt ist (
Customers.SLockedungleichY).
- der Auftragskopf zuletzt vor mehr als 10 Minuten geändert wurde (
- Die ersten
RowCountAufträge werden übernommen, sortiert nachccpNumOfTriesaufsteigend, dannOrderHeaderKeyaufsteigend (Aufträge mit weniger Versuchen zuerst). - Für diese Aufträge wird
OrderLineAmountder Positionen in den StatusANG,HALundAUSgetrennt summiert (fehlende Status zählen als 0).
Das Ergebnis enthält Auftragssummen, Positionssummen je Status, Währung, Shop-ID, Karten- und Adressdaten der Auftragsadresse sowie die Autorisierungsfelder des Auftragskopfs. Die Ausgabe ist nach OrderHeaderKey aufsteigend sortiert.
Hinweise
- Nur lesend; alle permanenten Tabellen werden
WITH (NOLOCK)gelesen, daher können nicht festgeschriebene Daten geliefert werden. - Fallstrick: Die Spalte
Addresses.eMailwird unter dem AliasCCPPaymentInfoOKausgegeben (eine SpalteeMailgibt es nicht). Die Spalte enthält daher die E-Mail-Adresse der Auftragsadresse, kein Zahlungsstatus-Kennzeichen. - Die Spalten
*_OrderCurrenthalten exakt dieselben Werte wie die gleichnamigen Spalten ohne Suffix (laut Kommentar zur Entfernung vorgesehen); es findet keine Währungsumrechnung statt. - Das Ergebnis enthält sensible Kartendaten (
CardNumber,CardCVC,CardExpiration); entsprechend sorgfältig behandeln und übertragen. ShowAll= 1 hebt nur die Bedingungen zur Anzahl der Versuche auf; Wartezeit von 10 Minuten, Zahlungsart,HAL-Position und Kundensperre gelten weiterhin.RowCountbegrenzt die Anzahl der Aufträge, nicht der Positionen.- Die 10-Minuten-Grenze basiert auf der Serverzeit (
GETDATE()).
Parameter
| Parameter | Typ | Standardwert | Beschreibung |
|---|---|---|---|
PaymentCode
Pflicht
|
char(1) string |
– |
Kürzel der Zahlungsart; wird mit Beispiel: |
ShowAll
|
bit boolean |
0 |
Bei 1 werden Aufträge unabhängig von der Anzahl bisheriger Autorisierungsversuche geliefert. Erlaubte Werte
Beispiel: |
RowCount
|
int | 30 |
Maximale Anzahl gelieferter Aufträge. Beispiel: |
Antwort
Result-Set 1 · Immer (ggf. leer)
Eine Zeile pro zu autorisierendem Auftrag, sortiert nach OrderHeaderKey aufsteigend.
| Spalte | Typ | Beschreibung |
|---|---|---|
OrderNr
|
int |
Pixi-Auftragsnummer. |
OrderNrExternal
Kann leer sein |
string |
Externe (Shop-)Auftragsnummer. |
OrderTotal
Kann leer sein |
decimal |
Auftragssumme aus dem Auftragskopf. |
OrderLinesTotal
Kann leer sein |
decimal |
Positionssumme aus dem Auftragskopf. |
OrderLinesDiscount
Kann leer sein |
decimal |
Rabatt auf die Positionen. |
ShipCost
Kann leer sein |
decimal |
Versandkosten. |
OrderLinesTotalANG
|
decimal(19,4) decimal |
Summe |
OrderLinesTotalHAL
|
decimal(19,4) decimal |
Summe |
OrderLinesTotalAUS
|
decimal(19,4) decimal |
Summe |
OrderLinesTotal_OrderCurr
Kann leer sein |
decimal |
Gleicher Wert wie |
OrderLinesTotalANG_OrderCurr
|
decimal(19,4) decimal |
Gleicher Wert wie |
OrderLinesTotalHAL_OrderCurr
|
decimal(19,4) decimal |
Gleicher Wert wie |
OrderLinesTotalAUS_OrderCurr
|
decimal(19,4) decimal |
Gleicher Wert wie |
ShipCost_OrderCurr
Kann leer sein |
decimal |
Gleicher Wert wie |
OrderCurrency
Kann leer sein |
string |
Währungskürzel ( |
ShopID
Kann leer sein |
string |
Shop des Kunden ( |
CardOwner
Kann leer sein |
string |
Karteninhaber aus der Auftragsadresse. |
CardNumber
Kann leer sein |
string |
Kartennummer aus der Auftragsadresse. |
CardExpiration
Kann leer sein |
string |
Ablaufdatum der Karte. |
CardCVC
Kann leer sein |
string |
Kartenprüfnummer. |
Anrede
Kann leer sein |
string |
Anrede. |
CareOf
Kann leer sein |
string |
c/o- bzw. Firmenzeile. |
FirstName
Kann leer sein |
string |
Vorname. |
LastName
Kann leer sein |
string |
Nachname. |
Address
Kann leer sein |
string |
Straße und Hausnummer. |
City
Kann leer sein |
string |
Ort. |
ZIP
Kann leer sein |
string |
Postleitzahl. |
Country
Kann leer sein |
string |
Land. |
Phone
Kann leer sein |
string |
Telefonnummer. |
CCPPaymentInfoOK
Kann leer sein |
string |
Enthält |
CCPLastAuthCode
Kann leer sein |
string |
Letzter Autorisierungscode. |
CCPNumOfTries
Kann leer sein |
int |
Bisherige Anzahl Autorisierungsversuche. |
CCPReauthorizeYN
Kann leer sein |
string |
|
ccpPayID
Kann leer sein |
string |
Zahlungs-ID beim Zahlungsanbieter. |
ccpSetFailLastTime
Kann leer sein |
dateTime |
Zeitpunkt des letzten fehlgeschlagenen Abrechnungsversuchs. |
ccpSetFailTries
Kann leer sein |
int |
Anzahl fehlgeschlagener Abrechnungsversuche. |
Beispielantwort
<SqlRowSet1>
<row>
<OrderNr>104512</OrderNr>
<OrderNrExternal>SHOP-2024-0815</OrderNrExternal>
<OrderTotal>129.9000</OrderTotal>
<OrderLinesTotal>125.0000</OrderLinesTotal>
<OrderLinesDiscount>0.0000</OrderLinesDiscount>
<ShipCost>4.9000</ShipCost>
<OrderLinesTotalANG>0.0000</OrderLinesTotalANG>
<OrderLinesTotalHAL>125.0000</OrderLinesTotalHAL>
<OrderLinesTotalAUS>0.0000</OrderLinesTotalAUS>
<OrderLinesTotal_OrderCurr>125.0000</OrderLinesTotal_OrderCurr>
<OrderLinesTotalANG_OrderCurr>0.0000</OrderLinesTotalANG_OrderCurr>
<OrderLinesTotalHAL_OrderCurr>125.0000</OrderLinesTotalHAL_OrderCurr>
<OrderLinesTotalAUS_OrderCurr>0.0000</OrderLinesTotalAUS_OrderCurr>
<ShipCost_OrderCurr>4.9000</ShipCost_OrderCurr>
<OrderCurrency>EUR</OrderCurrency>
<ShopID>SHOP1</ShopID>
<CardOwner>Max Mustermann</CardOwner>
<CardNumber>XXXXXXXXXXXX1111</CardNumber>
<CardExpiration>12/27</CardExpiration>
<CardCVC>***</CardCVC>
<Anrede>Herr</Anrede>
<CareOf/>
<FirstName>Max</FirstName>
<LastName>Mustermann</LastName>
<Address>Musterstr. 1</Address>
<City>Berlin</City>
<ZIP>10115</ZIP>
<Country>DE</Country>
<Phone>030123456</Phone>
<CCPPaymentInfoOK>max@example.com</CCPPaymentInfoOK>
<CCPLastAuthCode/>
<CCPNumOfTries>0</CCPNumOfTries>
<CCPReauthorizeYN>N</CCPReauthorizeYN>
<ccpPayID/>
<ccpSetFailTries>0</ccpSetFailTries>
</row>
</SqlRowSet1>
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:pixiPayGetOrdersToAuthorize>
<PaymentCode>K</PaymentCode>
<!-- <ShowAll>0</ShowAll> -->
<!-- <RowCount>30</RowCount> -->
</ns1:pixiPayGetOrdersToAuthorize>
</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:pixiPayGetOrdersToAuthorize>
<PaymentCode>K</PaymentCode>
<!-- <ShowAll>0</ShowAll> -->
<!-- <RowCount>30</RowCount> -->
</ns1:pixiPayGetOrdersToAuthorize>
</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 = [
'PaymentCode' => 'K',
// 'ShowAll' => '0',
// 'RowCount' => '30',
];
$soapArguments = [];
foreach ($arguments as $name => $value) {
$soapArguments[] = new SoapVar($value, XSD_STRING, '', '', $name);
}
$response = $soapClient->__soapCall('pixiPayGetOrdersToAuthorize', $soapArguments);
Verwendete Tabellen
- SQL-Objekt:
- dbo.pipiPayGetOrdersToAuthorize