Payment Request
The following guideline is to provide explanation on how to apply the corresponding source code in merchant's application to form and send the payment request parameters to PayMaster, for recurring payment.
- 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 recurring 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.PropertiesReader;
import com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder;
.....
//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/","CCPayment.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.setter("PaymentID","C04");
paymentRequestEntity.setter("MerchRefNo","merchant-refNo-0001");
paymentRequestEntity.setter("CurrCode","458");
paymentRequestEntity.setter("TxnAmt","1.00");
paymentRequestEntity.setter("ExpTxnAmt","2");
paymentRequestEntity.setter("ECI","12");
paymentRequestEntity.setter("CardNo","8853010000095323");
paymentRequestEntity.setter("TokenFlag","Y");
paymentRequestEntity.setter("POSEnvFlag","R");
paymentRequestEntity.setter("MerchUserID","guest");
paymentRequestEntity.setter("ExpiryYear","20");
paymentRequestEntity.setter("ExpiryMth","12");
paymentRequestEntity.setter("TokenShrtName", "testcard");
//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 recurring
String initialUrl = "https://xxx.finexusgroup.com/upp/faces/ccpayment.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 Recurring Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate Payment Message
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the Recurring – paymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The paymentMessage
will be used to send to PayMaster Gateway for the recurring payment function.
Refer to 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 recurring 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/","CCPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity ccPaymentRequestEntity = new PayMasterEntity();
//Get all the parameter values from the user side and set into Payment Master Entity
ccPaymentRequestEntity.setter("PaymentID","C04");
ccPaymentRequestEntity.setter("ECI","12");
ccPaymentRequestEntity.setter("MerchRefNo","merchant-refNo-0001");
ccPaymentRequestEntity.setter("CurrCode","458");
ccPaymentRequestEntity.setter("TxnAmt","1.00");
ccPaymentRequestEntity.setter("ExpTxnAmt","2");
ccPaymentRequestEntity.setter("CardNo","8853010000095323");
ccPaymentRequestEntity.setter("ExpiryYear","20");
ccPaymentRequestEntity.setter("ExpiryMth","12");
ccPaymentRequestEntity.setter("TokenFlag","Y");
ccPaymentRequestEntity.setter("MerchUserID","guest");
ccPaymentRequestEntity.setter("TokenShrtName","testcard");
//Call Payment Master Payment Request Message Builder to generate the message
PaymentRequestMessageBuilder ccMessageBuilder = new PaymentRequestMessageBuilder();
string ccPaymentMessage = ccMessageBuilder.buildPaymentRequestMessage(ccPaymentRequestEntity, propertiesReader);
//POST request to Payment Master Gateway for recurring
string initialUrl = "https://xxx.finexusgroup.com/upp/faces/ccpayment.xhtml?" + ccPaymentMessage;
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 Recurring Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate Payment Message
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the Recurring – ccPaymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The ccPaymentMessage
will be used to send to PayMaster Gateway for the recurring payment function.
Refer to 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 recurring payment, merchant shall import below into merchant code:
PropertiesReader
– to read the properties files.PayMasterEntity
– to assign all the acceptable values for PayMaster Recurring payment.PaymentRequestMessageBuilder
– to generate PayMaster Recurring 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://<absolute path of PayMaster.phar>/';
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();
//Path to the root project folder
$propertiesReader->PropertiesReader(<absolute path>,"CCPayment.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", "C04");
$paymentRequestEntity->setter("MerchRefNo", "merchant-refNo-0001");
$paymentRequestEntity->setter("CurrCode", "458");
$paymentRequestEntity->setter("TxnAmt", "1.00");
$paymentRequestEntity->setter("ExpTxnAmt", "2");
$paymentRequestEntity->setter("ECI","12");
$paymentRequestEntity->setter("CardNo","8853010000095323");
$paymentRequestEntity->setter("TokenFlag","Y");
$paymentRequestEntity->setter("POSEnvFlag","R");
$paymentRequestEntity->setter("MerchUserID","guest");
$paymentRequestEntity->setter("TokenShrtName","testcard");
$paymentRequestEntity->setter("ExpiryYear","20");
$paymentRequestEntity->setter("ExpiryMth","12");
//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 recurring
$initialUrl = "https://xxx.finexusgroup.com/upp/faces/ccpayment.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 Recurring Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 7 : Generate Payment Message
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the Recurring – paymentMessage
.
Step 8 : Send payment message to PayMaster Gateway
The paymentMessage
will be sent to PayMaster Gateway for the recurring payment function.
Refer to 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 recurring payment, merchant shall include below into merchant code:
PropertiesReader
– to read the properties files.PayMasterEntity
– to assign all the acceptable values for PayMaster Recurring payment.PaymentRequestMessageBuilder
- to generate PayMaster Recurring request message.
Step 3 : Source Code
from com.PayMaster.Entities.PayMasterEntity import PayMasterEntity
from com.PayMaster.PropertiesReader.PropertiesReader import PropertiesReader
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("CCPayment.properties","PayMasterProperties/")
##Declare variable for Payment Master Entity
ccPaymentRequestEntity = PayMasterEntity()
##Get all the parameter values from the user side and set into Payment Master Entity
ccPaymentRequestEntity.setter("PaymentID", "C04")
ccPaymentRequestEntity.setter("ECI", "12");
ccPaymentRequestEntity.setter("MerchRefNo", "merchant-refNo-0001")
ccPaymentRequestEntity.setter("TxnDtTm", "");
ccPaymentRequestEntity.setter("CurrCode", "458")
ccPaymentRequestEntity.setter("TxnAmt", "1.00")
ccPaymentRequestEntity.setter("ExpTxnAmt", "2")
ccPaymentRequestEntity.setter("CardNo", "8853010000095323");
ccPaymentRequestEntity.setter("ExpiryYear", "20");
ccPaymentRequestEntity.setter("ExpiryMth", "12");
ccPaymentRequestEntity.setter("TokenFlag", "y")
ccPaymentRequestEntity.setter("MerchUserID","guest");
ccPaymentRequestEntity.setter("TokenShrtName","testcard");
##Call Payment Master Payment Request Message Builder to generate the message
ccMessageBuilder = PaymentRequestMessageBuilder()
ccPaymentMessage = ccMessageBuilder.buildPaymentRequestMessage(ccPaymentRequestEntity, propertiesReader)
##POST request to Payment Master Gateway for recurring
initial_url = "https://xxx.finexusgroup.com/upp/faces/ccpayment.xhtml?" + ccPaymentMessage
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 Recurring Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 6 : Generate Payment Message
Once all the mandatory values are assigned, merchant call to Payment Request Message Builder to generate the Recurring – ccPaymentMessage
.
Step 7 : Send payment message to PayMaster Gateway
The ccPaymentMessage
will be used to send to PayMaster Gateway for the recurring payment function.
Refer to 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('/CCPayment', (req, res)=>{
.....
paymaster.PropertiesReader('./properties/','CCPayment.properties');
paymaster.setter('PaymentID', 'C04');
paymaster.setter('MerchRefNo', 'merchant-refNo-0001');
paymaster.setter('CurrCode', '458');
paymaster.setter('TxnAmt', '1.00');
paymaster.setter('ExpTxnAmt', '2');
paymaster.setter('ECI', '12');
paymaster.setter('CardNo', '8853010000095323');
paymaster.setter('TokenFlag', 'Y');
paymaster.setter('POSEnvFlag', 'R');
paymaster.setter('MerchUserID', 'guest');
paymaster.setter('ExpiryYear', '20');
paymaster.setter('ExpiryMth', '12');
paymaster.setter('TokenShrtName', 'testcard');
payment.MERCH_CardPaymentRequest(paymaster.PaymentRequestEntity, paymaster.propDetails, function(err, response, result){
if(err){
throw err;
}
if(response){
const initialUrl = "https://xxx.finexusgroup.com/upp/faces/ccpayment.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 Recurring Payment Parameters for fields supported by PayMaster Merchant Plug-In (MPI).
Step 5 : Generate request message
MERCH_CardPaymentRequest()
function to generate the recurring payment request message.
Step 6 : Send payment message to PayMaster
The payment message will be sent to PayMaster Gateway for the recurring payment function.
Refer to Payment Response for security control supported by PayMaster Merchant Plug-In (MPI).