Payment Request
The following guideline is to provide explanation on how to apply the corresponding source code in merchant website and application in order to form the payment request parameters which the merchant can have in the redirect link and send to PayMaster for QR payment processing.
- Java
- .Net
- PHP
- Python
- Node.js
Step 1 : Library
Merchant shall include PayMaster Merchant Plug-In (MPI) Java library – PayMaster.jar into merchant application.
Step 2 : Import
For QR payment, merchant shall import below into merchant code:
com.PayMaster.Entities.PayMasterEntity
com.PayMaster.PropertiesReader.PropertiesReader
com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder
Step 3 : Source Code
import com.PayMaster.Entities.PayMasterEntity;
import com.PayMaster.PropertiesReader.PropertiseReader;
import com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder;
.....
//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/","QRPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
//Get all the parameter values from the user side and set into Payment Master Entity
paymentRequestEntity("PaymentID", "Q01");
paymentRequestEntity("MerchRefNo", "merchant-refNo-0001");
paymentRequestEntity("CurrCode", "458");
paymentRequestEntity("TxnAmt", "1.00");
paymentRequestEntity("ExpTxnAmt", "2");
paymentRequestEntity("TerminalID", "200039XX");
paymentRequestEntity("PayloadInd", "12");
paymentRequestEntity("PANInd", "26");
//Call Payment Master Payment Request Message Builder to generate the message
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
string paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
//POST request to Payment Master Gateway for QR Payload
String initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + paymentMessage;
HttpURLConnection connection = null;
URL url = new URL(initialUrl);
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
in.close();
String finalUrl = connection.getURL().toString();
.....
Step 4 : Indicate PayMaster Properties File location
Merchant must indicate where the PayMaster Properties File located using PropertiesReader
.
Step 5 : Assign value into Payment Request Entity
Merchant to assign value into PayMaster Request Entity. Merchant code must include all the fields as stated in sample code as it’s mandatory.
- The setter function is used to assign value and the function accepts two parameters –
setter(parameter name, parameter value)
.
Refer to QR Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate QR Payment
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the QR Payment – paymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The paymentMessage
will be used to send to PayMaster Gateway for the QR Payload.
Refer to QR Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).
Step 1 : Library
Merchant shall include PayMaster Merchant Plug-In (MPI) .Net library – PayMaster.dll into merchant application.
Step 2 : Namespace
For QR Payment, merchant shall use the namespace below in the merchant code:
using com.PayMaster.Entities
using com.PayMaster.Properties
using com.PayMaster.MessageRequestBuilder
Step 3 : Source Code
using com.PayMaster.Entities;
using com.PayMaster.Properties;
using com.PayMaster.MessageRequestBuilder;
.....
//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/","QRPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity qrPaymentRequestEntity = new PayMasterEntity();
//Get all the parameter values from the user side and set into Payment Master Entity
qrPaymentRequestEntity.setter("PaymentID", "Q01");
qrPaymentRequestEntity.setter("MerchRefNo", "merchant-refNo-0001");
qrPaymentRequestEntity.setter("CurrCode", "458");
qrPaymentRequestEntity.setter("TxnAmt", "1.00");
qrPaymentRequestEntity.setter("ExpTxnAmt", "2");
qrPaymentRequestEntity.setter("TerminalID", "200039XX");
qrPaymentRequestEntity.setter("PayloadInd", "12");
qrPaymentRequestEntity.setter("PANInd", "26");
//Call Payment Master Payment Request Message Builder to generate the message
PaymentRequestMessageBuilder qrMessageBuilder = new PaymentRequestMessageBuilder();
string qrPaymentMessage = qrMessageBuilder.buildPaymentRequestMessage(qrPaymentRequestEntity, propertiesReader);
//POST request to Payment Master Gateway for QR Payload
string initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + qrPaymentMessage;
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, initialUrl );
HttpResponseMessage response = await httpClient.SendAsync(request);
Uri finalUrl = response.RequestMessage.RequestUri;
.....
Step 4 : Indicate PayMaster Properties File location
The merchant must indicate where the PayMaster Properties File is located using the PropertiesReader
.
Step 5 : Assign value into Payment Request Entity
The merchant has to assign value into the PayMaster Request Entity. Merchant code must include all the fields as stated in sample code as it’s mandatory.
- The setter function is used to assign value and the function accepts two parameters –
setter(parameter name, parameter value)
.
Refer to QR Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate QR Payment
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the QR Payment – qrPaymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The qrPaymentMessage
will be used to send to PayMaster Gateway for the QR Payload.
Refer to QR Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).
Step 1 : Library
Merchant shall include PayMaster Merchant Plug-In (MPI) PHP library – PayMaster.phar into merchant application.
Step 2 : Import
For QR payment, merchant shall import below into merchant code:
PropertiesReader
- to read the properties files.PayMasterEntity
– to assign all the acceptable values for PayMaster QR payment.PaymentRequestMessageBuilder
– to generate PayMaster QR payment request message.
Step 3 : Source Code
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageRequestBuilder\PaymentRequestMessageBuilder;
use com\PayMaster\Import\ImportFile;
//Merchant to locate the absolute path of PayMaster.phar
$basePath = 'phar://<PayMaster.phar path>/';
include_once = $basePath.'com/PayMaster/Import/ImportFile.php';
$import = new ImportFile();
$import->includeFile($basePath);
.....
//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
$propertiesReader = new PropertiesReader();
$propertiesReader->PropertiesReader("./PayMasterProperties/","QRPayment.ini");
//Declare variable for Payment Master Entity
$paymentRequestEntity = new PayMasterEntity();
//Get all the parameter values from the user side and set into Payment Master Entity
$paymentRequestEntity->setter("PaymentID", "Q01");
$paymentRequestEntity->setter("MerchRefNo", "merchant-refNo-0001");
$paymentRequestEntity->setter("CurrCode", "458");
$paymentRequestEntity->setter("TxnAmt", "1.00");
$paymentRequestEntity->setter("ExpTxnAmt", "2");
$paymentRequestEntity->setter("TerminalID", "200039XX");
$paymentRequestEntity->setter("PayloadInd", "12");
$paymentRequestEntity->setter("PANInd", "26");
//Call Payment Master Payment Request Message Builder to generate the message
$paymentRequestMessageBuilder = new PaymentRequestMessageBuilder();
$paymentMessage = $paymentRequestMessageBuilder->buildPaymentRequestMessage($paymentRequestEntity, $propertiesReader);
//POST request to Payment Master Gateway for QR Payload
$initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + $paymentMessage;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $initialUrl);
curl_setopt($ch, CURLOPT_POST, 1);
$response = curl_exec($ch);
curl_close($ch);
$finalUrl = curl_getinfo($ch, CURLINFO_REDIRECT_URL);
exit();
.....
Step 4 : Locate absolute path of PayMaster.phar
Merchant to locate the absolute path of PayMaster.phar as the basePath
in Merchant source code (line 7 in the example above).
Example:$basePath='phar://<absolute path of PayMaster.phar>/'
Step 5 : Indicate PayMaster Properties File location
The merchant must indicate where the PayMaster Properties File is located using the PropertiesReader
.
Step 6 : Assign value into Payment Request Entity
The merchant has to assign value into the PayMaster Request Entity. Merchant code must include all the fields as stated in sample code as it’s mandatory.
- The setter function is used to assign value and the function accepts two parameters –
setter(parameter name, parameter value)
.
Refer to QR Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 7 : Generate QR Payment
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the QR Payment – paymentMessage
.
Step 8 : Send payment message to PayMaster Gateway
The paymentMessage
will be used to send to PayMaster Gateway for the QR Payload.
Refer to QR Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).
Step 1 : Packages
Merchant shall setup and include PayMaster Merchant Plug-In (MPI) Python packages into merchant application.
Step 2 : Import
For QR payment, merchant shall include below into merchant code:
PropertiesReader
– to read the properties files.PayMasterEntity
– to assign all the acceptable values for PayMaster QR payment.PaymentRequestMessageBuilder
- to generate PayMaster QR Payment request message.
Step 3 : Source Code
from com.PayMaster.Entities.PayMasterEntity import PayMasterEntity
from com.PayMaster.PropertiesReader.PropertiseReader import PropertiseReader
from com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder import PaymentRequestMessageBuilder
##Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("QRPayment.properties","PayMasterProperties/")
##Declare variable for Payment Master Entity
qrPaymentRequestEntity = PayMasterEntity()
##Get all the parameter values from the user side and set into Payment Master Entity
qrPaymentRequestEntity.setter("PaymentID", "Q01")
qrPaymentRequestEntity.setter("MerchRefNo", "merchant-refNo-0001")
qrPaymentRequestEntity.setter("CurrCode", "458")
qrPaymentRequestEntity.setter("TxnAmt", "1.00")
qrPaymentRequestEntity.setter("ExpTxnAmt", "2")
qrPaymentRequestEntity.setter("TerminalID", "200039XX")
qrPaymentRequestEntity.setter("PayloadInd", "12")
qrPaymentRequestEntity.setter("PANInd", "26")
##Call Payment Master Payment Request Message Builder to generate the message
qrMessageBuilder = PaymentRequestMessageBuilder()
qrPaymentMessage = qrMessageBuilder.buildPaymentRequestMessage(qrPaymentRequestEntity, propertiesReader)
##POST request to Payment Master Gateway for QR Payload
initial_url = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + qrPaymentMessage
response = requests.post(initial_url)
final_url = response.url
.....
Step 4 : Indicate PayMaster Properties File location
The merchant must indicate where the PayMaster Properties File is located using the PropertiesReader
.
Step 5 : Assign value into Payment Request Entity
The merchant has to assign value into the PayMaster Request Entity. Merchant code must include all the fields as stated in sample code as it’s mandatory.
- The setter function is used to assign value and the function accepts two parameters –
setter(parameter name, parameter value)
.
Refer to QR Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate QR Payment
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the QR Payment – qrPaymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The qrPaymentMessage
will be used to send to PayMaster Gateway for the QR Payload.
Refer to QR Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).
Step 1 : Library
Merchant shall setup and include PayMaster Merchant Plug-In (MPI) NodeJS library into merchant application.
Step 2 : Source Code
var paymaster = require('./js/PayMaster.min.js');
module.exports = function (app) {
app.post('/QRPayment', (req, res)=>{
.....
paymaster.PropertiesReader('./properties/','QRPayment.properties');
paymaster.setter('PaymentID', 'Q01');
paymaster.setter('MerchRefNo', 'merchant-refNo-0001');
paymaster.setter('CurrCode', '458');
paymaster.setter('TxnAmt', '1.00');
paymaster.setter('ExpTxnAmt', '2');
paymaster.setter("TerminalID", "200039XX");
paymaster.setter("PayloadInd", "12");
paymaster.setter("PANInd", "26");
payment.MERCH_QRPaymentRequest(paymaster.PaymentRequestEntity, paymaster.propDetails, function(err, response, result){
if(err){
throw err;
}
if(response){
const initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + result;
async function sendPostRequest() {
const response = await axios.post(initialUrl);
const finalUrl = response.request.res.responseUrl;
.....
}
sendPostRequest();
}
});
});
}
Step 3 : Indicate PayMaster Properties File location
The merchant must indicate where the PayMaster Properties File is located using the PropertiesReader
.
Step 4 : Assign value into Payment Request Entity
The merchant has to assign value into the PayMaster Request Entity. Merchant code must include all the fields as stated in sample code as it’s mandatory.
- The setter function is used to assign value and the function accepts two parameters –
setter(parameter name, parameter value)
.
Refer to QR Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 5 : Generate request message
MERCH_QRPaymentRequest()
function to generate the payment request message.
Step 6 : Send payment message to PayMaster
The payment message returned by the JavaScript will be used to send to PayMaster for the QR Payload.
Refer to QR Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).