Operation: GetStatus
Die Implementierung der Operation GetStatus ist optional.
Die Operation GetStatus kann innerhalb jeder beliebigen Transaktion angewendet werden, um den Status der Transaktion zu ermitteln. Zur Erinnerung: Eine Transaktion wird als endlicher Automat modelliert, die jeweiligen Zustände dieses Automaten sind mit den Zahlen 1 bis 199 bezeichnet, wobei 1 der Startzustand ist.
Die Anfrage in der GetStatus-Operation ist das Element vct:GetStatusRequest. Dieses ist vom Typ vct:RequestType. Die Antwort ist das Element vct:GetStatusResponse. Dieses erweitert den Typ vct:ResponseType um das Element vct:TransactionStatus vom Typ vct:TransactionStatusType, welches beliebig oft wiederholt werden kann. Dieses Element ist eine Folge bestehend aus den Elementen vct:TransactionId (Typ: xsd:normalizedString) und dem Element vct:StatusCode vom Typ vct:StatusCodeType. Dieser Typ ist eine Einschränkung von xsd:integer auf die Zahlen 1 bis 199.
Regel: GetStatus.
Wird in der Anfrage eine TransactionID übermittelt und gibt es hierzu eine Transaktionsinstanz, so enthält die Antwort den ResponseCode 200 und ein Element TransactionStatus mit dieser TransactionId und dem aktuellen Status der Transaktionsinstanz. Falls es keine Transaktionsinstanz gibt, wo wird der ResponseCode 420 zurückgeliefert.
Wird in der Anfrage keine TransactionID übermittelt, so ermittelt der Server alle Transaktionsinstanzen, deren Transaktionskontext hinsichtlich BuyersID mit der Anfrage übereinstimmen. Für jede dieser Transaktionsinstanzen wird ein Element TransactionStatus in die Antwort eingefügt, das die TransactionId und den Status dieser Transaktionsinstanz enthält. Der ResponseCode ist 200.
Sofern die Anfrage des Client nicht geeignet ist, um festzulegen, welche Operation ausgeführt werden soll, kann der Server den ResponseCode 400 bzw. 405 mit einem GetStatusResponse-Element zurückzugeben. Alternativ ist die Rückgabe des http-Fehlercodes 404 möglich.