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:
- Step 1:Construct payment inquiry request.
- Step 2:Post payment inquiry request.
- Step 3:Verify response signature.
- Step 4:Get payment result.
Merchant server implementation : Download
Step 1: Construct payment inquiry request.
Set API request environment
$api_env = APIEnvironment::SANDBOX . "/paymentInquiry";
API EnvironmentPlease 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.
$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
}
?>
Updated 5 months ago