支付查询
以下指南旨在说明如何在商家网站或商家应用程序中应用相应的源代码,以便生成强制性的支付请求参数,商家可以将其放在重定向链接中,并发送给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.WebservicePaymentRequestMessageBuilder
步骤 3:源代码
import com.PayMaster.Entities.PayMasterEntity;
import com.PayMaster.PropertiesReader.PropertiseReader;
import com.PayMaster.MessageRequestBuilder.WebservicePaymentRequestMessageBuilder;
.....
//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/","UPPPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
//Get all the parameter value from the user side and set into Payment Master Entity
paymentRequestEntity.setter("PaymentID", "U02");
paymentRequestEntity.setter("MerchantID", "000010000099939");
paymentRequestEntity.setter("ServiceID", "FNX");
paymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL");
paymentRequestEntity.setter("QueryRespURL", "https://XXX.XXXXX.XXX/query.jsp");
//Call Payment Master Payment Request Message Builder to generate the message
WebservicePaymentRequestMessageBuilder messageBuilder = new WebservicePaymentRequestMessageBuilder();
messageBuilder.buildUPPQueryRequestMessage(paymentRequestEntity, propertiesReader);
String MerchantID = paymentRequestEntity.getter("MerchantID");
String CardNo = paymentRequestEntity.getter("CardNo");
String TxnDtTm = paymentRequestEntity.getter("TxnDtTm");
String TxnAmt = paymentRequestEntity.getter("TxnAmt");
String TxnStatus = paymentRequestEntity.getter("TxnStatus");
String CurrCode = paymentRequestEntity.getter("CurrCode");
String AuthIDRespCode = paymentRequestEntity.getter("AuthIDRespCode");
String ExpTxnAmt = paymentRequestEntity.getter("ExpTxnAmt");
String RetrievalRefNo = paymentRequestEntity.getter("RetrievalRefNo");
String OrgRespCode = paymentRequestEntity.getter("OrgRespCode");
String OrigTxnAmt = paymentRequestEntity.getter("OrigTxnAmt");
String OrigCurrCode = paymentRequestEntity.getter("OrigCurrCode");
String TxnChannel = paymentRequestEntity.getter("TxnChannel");
String FICode = paymentRequestEntity.getter("FICode");
String PymtGwRefNo = paymentRequestEntity.getter("PymtGwRefNo");
String TxnStatDetCde = paymentRequestEntity.getter("TxnStatDetCde");
String TxnStatMsg = paymentRequestEntity.getter("TxnStatMsg");
String ServiceID = paymentRequestEntity.getter("ServiceID");
String MerchHostID = paymentRequestEntity.getter("MerchHostID");
String MerchSessionID = paymentRequestEntity.getter("MerchSessionID");
String MerchRefNo = paymentRequestEntity.getter("MerchRefNo");
String OrderRefNo = paymentRequestEntity.getter("OrderRefNo");
String QueryStatus = paymentRequestEntity.getter("QueryStatus");
String FPXRefNo = paymentRequestEntity.getter("FPXRefNo");
String UppPymtMode = paymentRequestEntity.getter("UppPymtMode");
String OrigRespCode = paymentRequestEntity.getter("OrigRespCode");
String ExporigTxnAmt = paymentRequestEntity.getter("ExporigTxnAmt");
.....
步骤 4:使用 PropertiesReader
指示 PayMaster 属性文件位置
商家必须使用 PropertiesReader
指示 PayMaster 属性文件的位置。
步骤 5:将值分配给 PayMaster 请求实体
商家需要将值分配给 PayMaster 请求实体。商家代码必须包含所有字段,如示例代码中所述,因为这是强制性的。
- 使用 setter 函数将值分配给参数,并且该函数接受两个参数 -
setter(参数名称, 参数值)
。
步骤 6:调用 Web Service 支付请求消息生成器
一旦分配了所有必需的值,商家将调用 Web Service 支付请求消息生成器,使用 buildUPPPaymentQueryRequest
函数。
- 将生成支付查询请求消息,并提交给 PayMaster Gateway。
- 从 PayMaster Gateway 接收到的查询响应将被处理并重新分配回 PayMaster 请求实体
步骤 7:从 PayMaster 请求实体中检索值
商家可以使用同一个 PayMaster 请求实体来检索查询响应的信息。
- 使用 getter 函数来检索值,该函数只接受一个参数 -
getter(参数名称)
。
参考 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/","UPPPayment.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", "U02");
qrPaymentRequestEntity.setter("MerchantID", "000010000099939");
qrPaymentRequestEntity.setter("ServiceID", "FNX");
qrPaymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL");
qrPaymentRequestEntity.setter("QueryRespURL", "https://XXX.XXXXX.XXX/query.jsp");
//Call Payment Master Web Service Payment Request Message Builder for QR query request
WebServicePaymentRequestMessageBuilder qrMessageBuilder = new WebServicePaymentRequestMessageBuilder();
qrMessageBuilder.builderUPPPaymentQueryRequest(qrPaymentRequestEntity, propertiesReader);
String MerchantID = qrPaymentRequestEntity.getter("MerchantID");
String CardNo = qrPaymentRequestEntity.getter("CardNo");
String TxnDtTm = qrPaymentRequestEntity.getter("TxnDtTm");
String TxnAmt = qrPaymentRequestEntity.getter("TxnAmt");
String TxnStatus = qrPaymentRequestEntity.getter("TxnStatus");
String CurrCode = qrPaymentRequestEntity.getter("CurrCode");
String AuthIDRespCode = qrPaymentRequestEntity.getter("AuthIDRespCode");
String ExpTxnAmt = qrPaymentRequestEntity.getter("ExpTxnAmt");
String RetrievalRefNo = qrPaymentRequestEntity.getter("RetrievalRefNo");
String OrgRespCode = qrPaymentRequestEntity.getter("OrgRespCode");
String OrigTxnAmt = qrPaymentRequestEntity.getter("OrigTxnAmt");
String OrigCurrCode = qrPaymentRequestEntity.getter("OrigCurrCode");
String TxnChannel = qrPaymentRequestEntity.getter("TxnChannel");
String FICode = qrPaymentRequestEntity.getter("FICode");
String PymtGwRefNo = qrPaymentRequestEntity.getter("PymtGwRefNo");
String TxnStatDetCde = qrPaymentRequestEntity.getter("TxnStatDetCde");
String TxnStatMsg = qrPaymentRequestEntity.getter("TxnStatMsg");
String ServiceID = qrPaymentRequestEntity.getter("ServiceID");
String MerchHostID = qrPaymentRequestEntity.getter("MerchHostID");
String MerchSessionID = qrPaymentRequestEntity.getter("MerchSessionID");
String MerchRefNo = qrPaymentRequestEntity.getter("MerchRefNo");
String OrderRefNo = qrPaymentRequestEntity.getter("OrderRefNo");
String QueryStatus = qrPaymentRequestEntity.getter("QueryStatus");
String FPXRefNo = qrPaymentRequestEntity.getter("FPXRefNo");
String UppPymtMode = qrPaymentRequestEntity.getter("UppPymtMode");
String OrigRespCode = qrPaymentRequestEntity.getter("OrigRespCode");
String ExporigTxnAmt = qrPaymentRequestEntity.getter("ExporigTxnAmt");
.....
步骤 4:指示属性文件位置
商家必须使用 PropertiesReader
指示 PayMaster 属性文件的位置。
步骤 5:将值分配给支付请求实体
商家需要将值分配给 PayMaster 请求实体。商家代码必须包含示例代码中的所有字段,因为这是强制性的。
- setter 函数用于分配值,该函数接受两个参数 –
setter(参数名, 参数值)
。
步骤 6:调用 Web 服务支付请求
一旦分配了所有强制性的值,商家使用 buildQRPaymentQueryRequest
函数调用 Web 服务支付请求消息生成器。
- 将生成支付查询请求消息,并提交给 PayMaster Gateway。
- 从 PayMaster Gateway 接收到的查询响应将被消息化并重新分配回 PayMaster 请求实体。
步骤 7:从 PayMaster 请求实体检索值
商家可以使用相同的 PayMaster 请求实体来检索查询响应的信息。
- getter 函数用于检索值,该函数只接受一个参数 –
getter(参数名)
。
参考 QR 支付查询参数 了解 PayMaster 商家插件(MPI)支持的字段。
步骤 1:库
商家应将 PayMaster 商家插件(MPI)PHP 库 - PayMaster.phar 加入商家应用程序。
步骤 2:商家代码
对于 QR 支付查询,商家应在商家代码中导入以下内容:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
- 为 PayMaster QR 支付查询分配所有可接受的值。WebServicePaymentRequestMessageBuilder
- 用于生成 PayMaster QR 支付查询请求消息。
步骤 3:源代码
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageRequestBuilder\WebServicePaymentRequestMessageBuilder;
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/","UPPPayment.ini");
//Declare variable for Payment Master Entity
$paymentRequestEntity = new PayMasterEntity();
//Get response message from PayMaster and set into Payment Master Entity
$paymentRequestEntity->setter("PaymentID", "U02");
$paymentRequestEntity->setter("MerchantID", "000010000099939"); s
$paymentRequestEntity->setter("ServiceID", "FNX");
$paymentRequestEntity->setter("MerchRefNo", "MYB2023030315435025LL");
$paymentRequestEntity->setter("QueryRespURL", "https://XXX.XXXXX.XXX/query.jsp");
//Call Payment Master Payment Response Message Builder to set value
$WebServicePaymentRequestMessageBuilder = new WebServicePaymentRequestMessageBuilder();
$WebServicePaymentRequestMessageBuilder->buildUPPQueryRequestMessage($paymentRequestEntity, $propertiesReader);
$MerchantID = $paymentRequestEntity->getter("MerchantID");
$CardNo = $paymentRequestEntity->getter("CardNo");
$TxnDtTm = $paymentRequestEntity->getter("TxnDtTm");
$TxnAmt = $paymentRequestEntity->getter("TxnAmt");
$TxnStatus = $paymentRequestEntity->getter("TxnStatus");
$CurrCode = $paymentRequestEntity->getter("CurrCode");
$AuthIDRespCode = $paymentRequestEntity->getter("AuthIDRespCode");
$ExpTxnAmt = $paymentRequestEntity->getter("ExpTxnAmt");
$RetrievalRefNo = $paymentRequestEntity->getter("RetrievalRefNo");
$OrgRespCode = $paymentRequestEntity->getter("OrgRespCode");
$OrigTxnAmt = $paymentRequestEntity->getter("OrigTxnAmt");
$OrigCurrCode = $paymentRequestEntity->getter("OrigCurrCode");
$TxnChannel = $paymentRequestEntity->getter("TxnChannel");
$FICode = $paymentRequestEntity->getter("FICode");
$PymtGwRefNo = $paymentRequestEntity->getter("PymtGwRefNo");
$TxnStatDetCde = $paymentRequestEntity->getter("TxnStatDetCde");
$TxnStatMsg = $paymentRequestEntity->getter("TxnStatMsg");
$ServiceID = $paymentRequestEntity->getter("ServiceID");
$MerchHostID = $paymentRequestEntity->getter("MerchHostID");
$MerchSessionID = $paymentRequestEntity->getter("MerchSessionID");
$MerchRefNo = $paymentRequestEntity->getter("MerchRefNo");
$OrderRefNo = $paymentRequestEntity->getter("OrderRefNo");
$QueryStatus = $paymentRequestEntity->getter("QueryStatus");
$FPXRefNo = $paymentRequestEntity->getter("FPXRefNo");
$UppPymtMode = $paymentRequestEntity->getter("UppPymtMode");
$OrigRespCode = $paymentRequestEntity->getter("OrigRespCode");
$ExporigTxnAmt = $paymentRequestEntity->getter("ExporigTxnAmt");
.....
步骤 4:定位绝对路径
商家需在商家源代码中定位 PayMaster.phar 的绝对路径作为 basePath
(在上述示例中为第7行)。
示例: $basePath='phar://<PayMaster.phar的绝对路径>/'
步骤 5:为 PayMaster 请求实体分配值
商家需要为 PayMaster 请求实体分配值。商家代码必须包含示例代码中提到的所有字段,因为这是强制性的。
- setter 函数用于分配值,该函数接受两个参数 –
setter(参数名, 参数值)
。
步骤 6:调用 Web 服务支付请求
一旦分配了所有强制性的值,商家使用 buildQRPaymentQueryRequest
函数调用 Web 服务支付请求消息生成器。
- 将生成支付查询请求消息,并提交给 PayMaster Gateway。
- 从 PayMaster Gateway 接收到的查询响应将被消息化并重新分配回 PayMaster 请求实体。
步骤 7:从 PayMaster 请求实体检索值
商家可以使用相同的 PayMaster 请求实体来检索查询响应的信息。
- getter 函数用于检索值,该函数只接受一个参数 –
getter(参数名)
。
请参考 QR 支付查询参数 了解 PayMaster 商家插件(MPI)支持的字段。
步骤 1:包
商家应在商家应用程序中设置并包含 PayMaster 商家插件(MPI)Python 包。
步骤 2:导入
对于 QR 支付查询,商家应在商家代码中包含以下内容:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
– 为 PayMaster QR 支付查询分配所有可接受的值。WebServicePaymentRequestMessageBuilder
- 用于生成 PayMaster QR 支付查询请求消息。
步骤 3:源代码
from com.PayMaster.Entities.PayMasterEntity import PayMasterEntity
from com.PayMaster.PropertiesReader.PropertiseReader import PropertiseReader
from com.PayMaster.MessageRequestBuilder.WebServicePaymentRequestMessageBuilder import WebServicePaymentRequestMessageBuilder
##Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader = PropertiesReader("UPPPayment.properties","PayMasterProperties/")
##Declare variable for Payment Master Entity
qrPaymentRequestEntity = PayMasterEntity()
##Get all the parameter value from the user side and set into Payment Master Entity
qrPaymentRequestEntity.setter("PaymentID", "U02")
qrPaymentRequestEntity.setter("MerchantID", "000010000099939")
qrPaymentRequestEntity.setter("ServiceID", "FNX")
qrPaymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL")
qrPaymentRequestEntity.setter("QueryRespURL", "https://XXX.XXXXX.XXX/query.jsp")
##Call Payment Master Web Service Payment Request Message Builder for QR query request
qrMessageBuilder = WebServicePaymentRequestMessageBuilder()
qrMessageBuilder.buildUPPPaymentQueryRequest(qrPaymentRequestEntity, propertiesReader)
MerchantID = qrPaymentRequestEntity.getter("MerchantID")
CardNo = qrPaymentRequestEntity.getter("CardNo")
TxnDtTm = qrPaymentRequestEntity.getter("TxnDtTm")
TxnAmt = qrPaymentRequestEntity.getter("TxnAmt")
TxnStatus = qrPaymentRequestEntity.getter("TxnStatus")
CurrCode = qrPaymentRequestEntity.getter("CurrCode")
AuthIDRespCode = qrPaymentRequestEntity.getter("AuthIDRespCode")
ExpTxnAmt = qrPaymentRequestEntity.getter("ExpTxnAmt")
RetrievalRefNo = qrPaymentRequestEntity.getter("RetrievalRefNo")
OrgRespCode = qrPaymentRequestEntity.getter("OrgRespCode")
OrigTxnAmt = qrPaymentRequestEntity.getter("OrigTxnAmt")
OrigCurrCode = qrPaymentRequestEntity.getter("OrigCurrCode")
TxnChannel = qrPaymentRequestEntity.getter("TxnChannel")
FICode = qrPaymentRequestEntity.getter("FICode")
PymtGwRefNo = qrPaymentRequestEntity.getter("PymtGwRefNo")
TxnStatDetCde = qrPaymentRequestEntity.getter("TxnStatDetCde")
TxnStatMsg = qrPaymentRequestEntity.getter("TxnStatMsg")
ServiceID = qrPaymentRequestEntity.getter("ServiceID")
MerchHostID = qrPaymentRequestEntity.getter("MerchHostID")
MerchSessionID = qrPaymentRequestEntity.getter("MerchSessionID")
MerchRefNo = qrPaymentRequestEntity.getter("MerchRefNo")
OrderRefNo = qrPaymentRequestEntity.getter("OrderRefNo")
QueryStatus = qrPaymentRequestEntity.getter("QueryStatus")
FPXRefNo = qrPaymentRequestEntity.getter("FPXRefNo")
UppPymtMode = qrPaymentRequestEntity.getter("UppPymtMode")
OrigRespCode = qrPaymentRequestEntity.getter("OrigRespCode")
ExporigTxnAmt = qrPaymentRequestEntity.getter("ExporigTxnAmt")
步骤 4:指示 PayMaster 属性文件位置
商家必须使用 PropertiesReader
指示 PayMaster 属性文件的位置。
步骤 5:为 PayMaster 请求实体分配值
商家需要将值分配到 PayMaster 请求实体中。商家代码必须包含示例代码中提到的所有字段,因为这是强制性的。
- setter 函数用于分配值,该函数接受两个参数 –
setter(参数名, 参数值)
。
步骤 6:调用 Web 服务支付请求
一旦分配了所有强制性的值,商家使用 buildQRPaymentQueryRequest
函数调用 Web 服务支付请求消息生成器。
- 将生成支付查询请求消息,并提交给 PayMaster Gateway。
- 从 PayMaster Gateway 接收到的查询响应将被消息化并重新分配回 PayMaster 请求实体。
步骤 7:从 PayMaster 请求实体检索值
商家可以使用相同的 PayMaster 请求实体来检索查询响应的信息。
- getter 函数用于检索值,该函数只接受一个参数 –
getter(参数名)
。
请参考 QR 支付查询参数 了解 PayMaster 商家插件(MPI)支持的字段。
步骤 1:库
商家应在商家应用程序中设置并包含 PayMaster 商家插件(MPI)NodeJS 库。
步骤 2:源代码
var paymaster = require('./js/PayMaster.min.js');
module.exports = function (app) {
app.get('/QRQuery', (req, res)=>{
paymaster.setter('PaymentID', 'U02');
paymaster.setter('MerchantID', '000010000099939');
paymaster.setter('ServiceID', 'FNX');
paymaster.setter('MerchRefNo', 'MYB2023030315435025LL');
paymaster.setter('QueryRespURL', 'https://XXX.XXXXX.XXX/query.jsp');
payment.MERCH_QRPaymentQueryRequest(paymaster.PaymasterRequestEntity, paymaster.propDetails, function(err, response, result){
if(err){
throw err;
}
if(response){
var MerchantID = paymaster.getter('MerchantID');
var CardNo = paymaster.getter('CardNo');
var TxnDtTm = paymaster.getter('TxnDtTm');
var TxnAmt = paymaster.getter('TxnAmt');
var TxnStatus = paymaster.getter('TxnStatus');
var CurrCode = paymaster.getter('CurrCode');
var AuthIDRespCode = paymaster.getter('AuthIDRespCode');
var ExpTxnAmt = paymaster.getter('ExpTxnAmt');
var RetrievalRefNo = paymaster.getter('RetrievalRefNo');
var OrgRespCode = paymaster.getter('OrgRespCode');
var OrigTxnAmt = paymaster.getter('OrigTxnAmt');
var OrigCurrCode = paymaster.getter('OrigCurrCode');
var TxnChannel = paymaster.getter('TxnChannel');
var FICode = paymaster.getter('FICode');
var PymtGwRefNo = paymaster.getter('PymtGwRefNo');
var TxnStatDetCde = paymaster.getter('TxnStatDetCde');
var TxnStatMsg = paymaster.getter('TxnStatMsg');
var ServiceID = paymaster.getter('ServiceID');
var MerchHostID = paymaster.getter('MerchHostID');
var MerchSessionID = paymaster.getter('MerchSessionID');
var MerchRefNo = paymaster.getter('MerchRefNo');
var OrderRefNo = paymaster.getter('OrderRefNo');
var QueryStatus = paymaster.getter('QueryStatus');
var FPXRefNo = paymaster.getter('FPXRefNo');
var UppPymtMode = paymaster.getter('UppPymtMode');
var OrigRespCode = paymaster.getter('OrigRespCode');
var ExporigTxnAmt = paymaster.getter('ExporigTxnAmt');
}
});
.....
});
}
步骤 3:指示 PayMaster 属性文件位置
商家必须使用 PropertiesReader
指示 PayMaster 属性文件的位置。
步骤 4:为所有字段分配值
商家代码必须包含并为所有字段分配值,如示例代码中所述,因为这是强制性的。
- setter 函数用于分配值,该函数接受两个参数 –
setter(参数名, 参数值)
。
步骤 5:向 PayMaster 提交支付请求
MERCH_QrPaymentQueryRequest()
函数用于生成并提交支付请求消息给 PayMaster。
步骤 6:PayMaster 返回的响应参数
PayMaster 返回的响应参数将由 PayMaster MPI NodeJS 进行消息传递。
步骤 7:检索支付查询响应参数的值
商家可以检索支付查询响应参数的值。
- getter 函数用于检索值,该函数只接受一个参数 –
getter(参数名)
。
请参考 QR 支付查询参数 了解 PayMaster 商家插件(MPI)支持的字段。