This function allows merchant to query the current status of a previous transaction based on a transactionID.
HTTP Method | API URL | API Version |
---|---|---|
GET | https://api.payzone.ma/transaction/{transactionID} | >= 002 |
No fields are needed in the request. The transaction reference is in the URI.
Note: Gateway API transactions are done with a different library than payment-page API. See the code sample comments for more info:
/*
* Transaction name is 'StatusTransaction', once you create a new transaction passing this as parameter,
* you need to set the mandatory data using the following method:
* setReferralInformation()
*/
$client = new GatewayClient();
$transaction = $client->newTransaction('StatusTransaction', 'testMerchant', 'testPassword');
$transaction->setTransactionID($transactionID);
$response = $transaction->send();
if ('000' === $response->errorCode) {
$transactionID = $response->transactionID;
} else {
echo "Error {$response->errorCode} with message {$response->errorMessage}";
}
PaymentGatewayConnector connector = new PaymentGatewayConnector(API_URL, ORIGINATOR, PASSWORD);
TransactionStatusResponse response = null;
TransactionStatusRequest request = new TransactionStatusRequest();
request.setTransactionId(1234567L);
try {
response = connector.getTransactionStatus(request);
} catch (Exception e) {
e.printStackTrace();
}
if (response != null) {
if (TransactionResultCode.TRANSACTION_SUCCESSFULLY.equals(response.getErrorCode()) {
// Just examples, careful to NPE
System.out.println("Success: " + response.getErrorMessage());
System.out.println("Transaction order ID: " + response.getTransaction().getOrderId());
// If account is allowed to access payment mean info
if (TransactionType.CREDIT_CARD.equals(response.getTransaction().getPaymentType())) {
CreditCardPaymentMeanInfo pmInfo = response.getTransaction().getPaymentMeanInfo(CreditCardPaymentMeanInfo.class);
System.out.println("Credit card is a " + pmInfo.getCardBrand().getFormattedMessage(Locale.ENGLISH));
}
} else {
System.out.println("Failure: " + response.getErrorMessage());
}
}
const gateway = require("payxpert")("123456", "GreatP4ssw0rd").gateway;
let transactionID = "111...";
let responseQuery = await gateway.queryTransaction(transactionID);
if (responseQuery.code == "000") {
// Success
}
var client = new GatewayClient(OriginatorConfig.ORIGINATOR_ID, OriginatorConfig.ORIGINATOR_PASSWORD);
var queryTransactionSale = client.NewQueryTransactionStatus(transactionID);
var transactionInfo = await queryTransactionSale.Send();
Console.WriteLine("Transaction timestamp retrieved from server: " + transactionInfo.transaction.date);
// ...
The body of the response is in JSON format.
The following fields are present in the response :
Name | Type | Description |
---|---|---|
transactionID | String | Transaction reference returned by the system |
errorCode | String | See API Response Codes |
errorMessage | String | See API Response Codes |
transaction | String | Transaction object if found. (see Transaction object) |