DocumentationRecipesAPI ReferenceChangelog
Documentation
These docs are for v3.2.6. Click to read the latest docs for v4.3.0.

Inquiry payment result

The Payment Inquiry API is used to retrieve the complete payment result by using specific transaction ID.
 
Here are 4 steps to inquiry payment result:


 
Merchant server implementation : Download
 


Step 1: Construct payment inquiry request.

Set API request environment

$api_env = APIEnvironment::SANDBOX . "/paymentInquiry";
📘

API Environment

Please refer: Payment Gateway API Environment

Set request information

$api_version = "1.1";

Set account credentials

$mid = "JT01"; //Get MerchantID when opening account with 2C2P
$secret_key = "7jYcp4FxFdf0"; //Get SecretKey from 2C2P PGW dashboard

Set inquiry information

$transaction_id = "1345111";

Construct payment inquiry request

$payment_inquiry_request = new stdClass();
$payment_inquiry_request->version = $api_version;
$payment_inquiry_request->merchantID = $mid;
$payment_inquiry_request->transactionID = $transaction_id;

Generate signature

$pgw_helper = new PaymentGatewayHelper(); 
$hashed_signature = $pgw_helper->generateSignature($payment_inquiry_request, $secret_key);
$payment_inquiry_request->signature = $hashed_signature;

Step 2: Post inquiry payment result request.
 
Based on payment result, merchant can display successful or failure result to their customer on
your applications.

$encoded_payment_inquiry_response = $pgw_helper->requestAPI($api_env, $payment_inquiry_request);
❗️

IMPORTANT

  • Please do not request Payment Inquiry API directly from your application, which causing exposure data breach or modification attack risk.

Step 3: Verify response signature.

$is_valid_signature = $pgw_helper->validateSignature($encoded_payment_inquiry_response, $secret_key);
if($is_valid_signature) {
    //Valid signature, get payment result
} else {
    //Invalid signature, return error response
}
❗️

IMPORTANT

  • Merchant must always validate signature value of response returned by 2C2P API to ensure integrity.
  • Please return error to your application for invalid signature.
  • Please return encoded response to your application instead of return raw JSON response.

Step 4: Get payment result.

$payment_inquiry_response = $pgw_helper->parseAPIResponse($encoded_payment_inquiry_response);
$invoice_no = $payment_inquiry_response->invoiceNo;
$resp_code = $payment_inquiry_response->respCode;

Complete code:
 
Copy & Paste below source code and put this file in your Web Server.

<?php

//Import necessary classes
require "../utils/PaymentGatewayHelper.php";
require "../enum/APIEnvironment.php";
require "../model/SignatureError.php";

//Set API request enviroment
$api_env = APIEnvironment::SANDBOX . "/paymentInquiry";

//Request information 
$api_version = "1.1";

//Merchant's account information
$mid = "JT01"; //Get MerchantID when opening account with 2C2P
$secret_key = "7jYcp4FxFdf0"; //Get SecretKey from 2C2P PGW dashboard

//Inquiry information
$transaction_id = "1345111"; 

//Construct payment inquiry request
$payment_inquiry_request = new stdClass();
$payment_inquiry_request->version = $api_version;
$payment_inquiry_request->merchantID = $mid;
$payment_inquiry_request->transactionID = $transaction_id;

//Important: Generate signature
$pgw_helper = new PaymentGatewayHelper(); 
$hashed_signature = $pgw_helper->generateSignature($payment_inquiry_request, $secret_key);
$payment_inquiry_request->signature = $hashed_signature;

//Do Payment Inquiry API request
$encoded_payment_inquiry_response = $pgw_helper->requestAPI($api_env, $payment_inquiry_request); 

//Important: Verify response signature
$is_valid_signature = $pgw_helper->validateSignature($encoded_payment_inquiry_response, $secret_key);
if($is_valid_signature) {

    //Valid signature, get payment result
    $payment_inquiry_response = $pgw_helper->parseAPIResponse($encoded_payment_inquiry_response);
    $invoice_no = $payment_inquiry_response->invoiceNo;
    $resp_code = $payment_inquiry_response->respCode;
} else {
    //Invalid signature, return error response
}

?>

Next: Read backend payment response