支付请求
以下指南旨在解释如何在商户网站和应用程序中应用相应的源代码,以形成支付请求参数。商户可以将这些参数包含在重定向链接中,并发送给 PayMaster 进行 QR 支付处理。
- Java
- .Net
- PHP
- Python
- Node.js
步骤 1:库文件
商户应将PayMaster商户插件(MPI)Java库 - PayMaster.jar 包含到商户应用程序中。
步骤 2:导入
对于QR支付,商户应在商户代码中导入以下内容:
com.PayMaster.Entities.PayMasterEntity
com.PayMaster.PropertiesReader.PropertiesReader
com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder
步骤 3:源代码
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();
.....
步骤4:指示PayMaster属性文件位置
商家必须使用 PropertiesReader
指示PayMaster属性文件的位置。
步骤5:将值分配到支付请求实体
商家需要将值分配到PayMaster请求实体中。商家代码必须包含样例代码中列出的所有字段,因为这些字段是强制性的。
- 使用setter函数将值分配给参数,并且该函数接受两个参数 –
setter(参数名称, 参数值)
。
参考 QR支付参数 获取PayMaster商家插件(MPI)支持的字段。
步骤6:生成QR支付
一旦分配了所有必填值,商家需调用支付请求消息生成器生成QR支付 – paymentMessage
。
步骤7:发送支付消息到PayMaster网关
paymentMessage
将被用于发送到PayMaster网关进行QR有效负载。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤 1:库文件
商户应将PayMaster商户插件(MPI).Net库 - PayMaster.dll 包含到商户应用程序中。
步骤 2:命名空间
对于QR支付,商户应在商户代码中使用以下命名空间:
using com.PayMaster.Entities
using com.PayMaster.Properties
using com.PayMaster.MessageRequestBuilder
步骤 3:源代码
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;
.....
步骤4:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤5:将值分配到支付请求实体
商家需要将值分配到PayMaster请求实体中。商家代码必须包含样例代码中列出的所有字段,因为这些字段是强制性的。
- 使用setter函数将值分配给参数,并且该函数接受两个参数 –
setter(参数名称, 参数值)
。
参考 QR支付参数 获取PayMaster商家插件(MPI)支持的字段。
步骤6:生成QR支付
一旦分配了所有必填值,商家需调用支付请求消息生成器生成QR支付 – qrPaymentMessage
。
步骤7:发送支付消息到PayMaster网关
qrPaymentMessage
将被用于发送到PayMaster网关进行QR有效负载。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤1:库
商家应将PayMaster商家插件(MPI)的PHP库 PayMaster.phar 包含到商家应用程序中。
步骤2:导入
对于QR支付,商家应将以下内容导入到商家代码中:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
- 为PayMaster QR支付分配所有可接受的值。PaymentRequestMessageBuilder
- 用于生成PayMaster QR支付请求消息。
步骤3:源代码
<?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();
.....
步骤4:定位PayMaster.phar的绝对路径
商家需要在商家源代码中找到PayMaster.phar的绝对路径,并将其作为basePath
(示例中第7行)。
示例:$basePath='phar://<PayMaster.phar的绝对路径>/'
步骤5:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤6:将值分配到支付请求实体
商家需要将值分配到PayMaster请求实体中。商家代码必须包含样例代码中列出的所有字段,因为这些字段是强制性的。
- 使用setter函数将值分配给参数,并且该函数接受两个参数 –
setter(参数名称, 参数值)
。
参考 QR支付参数 获取PayMaster商家插件(MPI)支持的字段。
步骤7:生成QR支付
一旦分配了所有必填值,商家需调用支付请求消息生成器生成QR支付 – paymentMessage
。
步骤8:发送支付消息到PayMaster网关
paymentMessage
将被用于发送到PayMaster网关进行QR有效负载。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤1:包
商家应在商家应用程序中设置并包含PayMaster商家插件(MPI)Python包。
步骤2:导入
对于QR支付,商家应在商家代码中导入以下内容:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
- 为PayMaster QR支付分配所有可接受的值。PaymentRequestMessageBuilder
- 用于生成PayMaster QR支付请求消息。
步骤3:源代码
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
.....
步骤4:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤5:将值分配到支付请求实体
商家需要将值分配到PayMaster请求实体中。商家代码必须包含样例代码中列出的所有字段,因为这些字段是强制性的。
- 使用setter函数将值分配给参数,并且该函数接受两个参数 –
setter(参数名称, 参数值)
。
参考 QR支付参数 获取PayMaster商家插件(MPI)支持的字段。
步骤6:生成QR支付
一旦分配了所有必填值,商家需调用支付请求消息生成器生成QR支付 – qrPaymentMessage
。
步骤7:发送支付消息到PayMaster网关
qrPaymentMessage
将被用于发送到PayMaster网关进行QR有效负载。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤1:库
商家应在商家应用程序中设置并包含PayMaster商家插件(MPI)NodeJS库。
步骤2:源代码
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();
}
});
});
}
步骤3:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤4:将值分配到支付请求实体
商家需要将值分配到PayMaster请求实体中。商家代码必须包含样例代码中列出的所有字段,因为这些字段是强制性的。
- 使用setter函数将值分配给参数,并且该函数接受两个参数 –
setter(参数名称, 参数值)
。
参考 QR支付参数 获取PayMaster商家插件(MPI)支持的字段。
步骤5:生成请求消息
使用MERCH_QRPaymentRequest()
函数生成支付请求消息。
步骤6:发送支付消息到PayMaster
JavaScript返回的支付消息将被用于发送到PayMaster进行QR有效负载。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。