付款响应
以下指南将解释如何应用相应的源代码,从 PayMaster 返回的消息中检索付款响应参数。
- Java
- .Net
- PHP
- Python
- Node.js
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) Java 库 PayMaster.jar。
第 2 步:导入
对于付款,商户必须将以下内容导入到商户代 码中:
com.PayMaster.Entities.PayMasterEntitycom.PayMaster.PropertiesReader.PropertiesReadercom.PayMaster.MessageResponseBuilder.PaymentResponseMessageBuilder
第 3 步:源代码
import com.PayMaster.Entities.PayMasterEntity;
import com.PayMaster.PropertiesReader.PropertiesReader;
import com.PayMaster.MessageResponseBuilder.PaymentResponseMessageBuilder;
// Declare variable for Payment Master Properties - 1st Parameter = File Path, 2nd Parameter = File Name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "DDPayment.properties");
// Declare variable for Payment Master Entity
PayMasterEntity paymentResponseEntity = new PayMasterEntity();
// Get response message from PayMaster and set it into Payment Master Entity
paymentResponseEntity.setter("ResponseMessage", responseMessage);
paymentResponseEntity.setter("MerchantID", "000010000099939");
PaymentResponseMessageBuilder paymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
paymentResponseMessageBuilder.buildFPXPaymentResponseMessage(paymentResponseEntity, propertiesReader);
if (paymentResponseEntity.getter("TxnStatDetCde").equals("0000")) {
String merchRefNo = paymentResponseEntity.getter("MerchRefNo");
String txnStatus = paymentResponseEntity.getter("TxnStatus");
String queryStatus = paymentResponseEntity.getter("QueryStatus");
String txnStatMsg = paymentResponseEntity.getter("TxnStatMsg");
String merchantID = paymentResponseEntity.getter("MerchantID");
String cardNo = paymentResponseEntity.getter("CardNo");
String txnDtTm = paymentResponseEntity.getter("TxnDtTm");
String txnAmt = paymentResponseEntity.getter("TxnAmt");
String currCode = paymentResponseEntity.getter("CurrCode");
String versionNo = paymentResponseEntity.getter("VersionNo");
String retrievalRefNo = paymentResponseEntity.getter("RetrievalRefNo");
String uppPymtMode = paymentResponseEntity.getter("UppPymtMode");
String succRespURL = paymentResponseEntity.getter("SuccRespURL");
String txnStatDetCde = paymentResponseEntity.getter("TxnStatDetCde");
String preAuthFlag = paymentResponseEntity.getter("PreAuthFlag");
String pymtGwRefNo = paymentResponseEntity.getter("PymtGwRefNo");
// To do ...
}
第 4 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 5 步:使用 Setter 指示 PayMaster 属性文件位置
商户必须使用 setter 函数指示 PayMaster 属性文件的位置:setter("ResponseMessage","<PayMaster 网关返回的响应消息>")。
setter 函数用于赋值,接受两个参数:setter(参数名,参数值)。
第 6 步:为 PayMaster 响应 实体分配值
商户应调用付款响应消息生成器来处理响应消息,并将值分配给 PayMaster 响应实体。
请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
第 7 步:从 PayMaster 响应实体检索值
商户可以使用 getter 函数从 PayMaster 响应实体检索值,该函数仅接受一个参数:getter(参数名)。
请确保 TxnStatDetCde 的值不等于 5015,因 为这表示安全哈希值无效。
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) .NET 库 PayMaster.dll。
第 2 步:命名空间
对于付款,商户应在商户代码中包含以下命名空间:
using com.PayMaster.Entitiesusing com.PayMaster.Propertiesusing com.PayMaster.MessageResponseBuilder
第 3 步:源代码
using com.PayMaster.Entities;
using com.PayMaster.Properties;
using com.PayMaster.MessageResponseBuilder;
// Declare variable for Payment Master Properties - 1st Parameter = File Path, 2nd Parameter = File Name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "DDPayment.properties");
// Declare variable for Payment Master Entity
PayMasterEntity paymentResponseEntity = new PayMasterEntity();
// Get response message from PayMaster and set it into Payment Master Entity
paymentResponseEntity.setter("ResponseMessage", responseMessage);
paymentResponseEntity.setter("MerchantID", "000010000099939");
// Call Payment Master Payment Response Message Builder to set value
PaymentResponseMessageBuilder paymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
paymentResponseMessageBuilder.buildFPXPaymentResponseMessage(paymentResponseEntity, propertiesReader);
if (paymentResponseEntity.getter("TxnStatDetCde").Equals("0000")) {
string merchRefNo = paymentResponseEntity.getter("MerchRefNo");
string txnStatus = paymentResponseEntity.getter("TxnStatus");
string queryStatus = paymentResponseEntity.getter("QueryStatus");
string txnStatMsg = paymentResponseEntity.getter("TxnStatMsg");
string merchantID = paymentResponseEntity.getter("MerchantID");
string cardNo = paymentResponseEntity.getter("CardNo");
string txnDtTm = paymentResponseEntity.getter("TxnDtTm");
string txnAmt = paymentResponseEntity.getter("TxnAmt");
string currCode = paymentResponseEntity.getter("CurrCode");
string versionNo = paymentResponseEntity.getter("VersionNo");
string retrievalRefNo = paymentResponseEntity.getter("RetrievalRefNo");
string uppPymtMode = paymentResponseEntity.getter("UppPymtMode");
string succRespURL = paymentResponseEntity.getter("SuccRespURL");
string txnStatDetCde = paymentResponseEntity.getter("TxnStatDetCde");
string preAuthFlag = paymentResponseEntity.getter("PreAuthFlag");
string pymtGwRefNo = paymentResponseEntity.getter("PymtGwRefNo");
// To do ...
}
第 4 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 5 步:将响应消息分配给付款响应实体
商户应使用 setter 函数将 PayMaster 返回的响应消息分配给 PayMaster 响应实体:setter("ResponseMessage","<PayMaster 网关返回的响应消息>")。
第 6 步:为 PayMaster 响应实体分配值
商户应调用付款响应消息生成器来处理响应消息,并将值分配给 PayMaster 响应实体。
请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
第 7 步:从 PayMaster 响应实体检索值
商户可以使用 getter 函数从 PayMaster 响应实体检索值,该函数仅接受一个参数:getter(参数名)。
请确保 TxnStatDetCde 的值不等于 5015,因为这表示安全哈希值无效。
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) PHP 库 PayMaster.phar。
第 2 步:商户代码
对于付款,商户应将以下内容导入到其代码中:
PropertiesReader– 读取属性文件。PayMasterEntity– 为 PayMaster 付款分配所有可接受的值。PaymentResponseMessageBuilder– 生成 PayMaster 付款响应消息。
第 3 步:源代码
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageResponseBuilder\PaymentResponseMessageBuilder;
use com\PayMaster\Import\ImportFile;
// Locate the absolute path of PayMaster.phar
$basePath = 'phar://<absolute path of PayMaster.phar>/paymaster/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();
$propertiesReader->PropertiesReader(<absolute path> . "/paymaster", "DDPayment.ini");
// Declare variable for Payment Master Entity
$paymentResponseEntity = new PayMasterEntity();
// Get response message from PayMaster and set it into Payment Master Entity
$paymentResponseEntity->setter("ResponseMessage", $responseMessage);
$paymentResponseEntity->setter("MerchantID", "000010000099939");
// Call Payment Master Payment Response Message Builder to set value
$paymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
$paymentResponseMessageBuilder->buildFPXPaymentResponseMessage($paymentResponseEntity, $propertiesReader);
if (strncmp($paymentResponseEntity->getter("TxnStatDetCde"), "0000") == 0) {
$merchRefNo = $paymentResponseEntity->getter("MerchRefNo");
$txnStatus = $paymentResponseEntity->getter("TxnStatus");
$queryStatus = $paymentResponseEntity->getter("QueryStatus");
$txnStatMsg = $paymentResponseEntity->getter("TxnStatMsg");
$merchantID = $paymentResponseEntity->getter("MerchantID");
$cardNo = $paymentResponseEntity->getter("CardNo");
$txnDtTm = $paymentResponseEntity->getter("TxnDtTm");
$txnAmt = $paymentResponseEntity->getter("TxnAmt");
$currCode = $paymentResponseEntity->getter("CurrCode");
$versionNo = $paymentResponseEntity->getter("VersionNo");
$retrievalRefNo = $paymentResponseEntity->getter("RetrievalRefNo");
$uppPymtMode = $paymentResponseEntity->getter("UppPymtMode");
$succRespURL = $paymentResponseEntity->getter("SuccRespURL");
$txnStatDetCde = $paymentResponseEntity->getter("TxnStatDetCde");
$preAuthFlag = $paymentResponseEntity->getter("PreAuthFlag");
$pymtGwRefNo = $paymentResponseEntity->getter("PymtGwRefNo");
// To do ...
}
?>
第 4 步:找到 PayMaster.phar 的绝对路径
商户必须找到 PayMaster.phar 的绝对路径,并将其设置为商户源代码中的 $basePath(上例中的第 7 行)。
例子:$basePath='phar://<PayMaster.phar 的绝对路径>/'
第 5 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 6 步:将响应消息分配给付款响应实体
商户应使用 setter("ResponseMessage",<PayMaster 网关返回的响应消息>) 函数将 PayMaster 返回的响应消息分配给 PayMaster 响应实体。
第 7 步:为 PayMaster 响应实体分配值
商户应调用付款响应消息生成器来处理响应消息,并将值分配给 PayMaster 响应实体。
请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
第 8 步:从 PayMaster 响应实体检索值
商户可以使用 getter(参数名) 函数从 PayMaster 响应实体检索值,该函数仅接受一个参数。
请确保 TxnStatDetCde 的值不等于 5015,因为这表示安全哈希值无效。
第 1 步:打包
商户必须在商户应用程序中设置并包含 PayMaster 商户插件 (MPI) Python 包。
第 2 步:导入
对于付款,商户应将以下模块导入到商户代码中:
PropertiesReader– 读取属性文件。PayMasterEntity– 为 PayMaster 付款分配所有可接受的值。PaymentResponseMessageBuilder– 生成 PayMaster 付款响应消息。
第 3 步:源代码
from com.PayMaster.Entities.PayMasterEntity import PayMasterEntity
from com.PayMaster.PropertiesReader.PropertiesReader import PropertiesReader
from com.PayMaster.MessageResponseBuilder.PaymentResponseMessageBuilder import PaymentResponseMessageBuilder
# Declare variable for Payment Master Properties - 1st Parameter = File Path, 2nd Parameter = File Name
propertiesReader = PropertiesReader("PayMasterProperties/", "DDPayment.properties")
# Declare variable for Payment Master Entity
paymentResponseEntity = PayMasterEntity()
# Get response message from PayMaster and set it into Payment Master Entity
paymentResponseEntity.setter("ResponseMessage", responseMessage)
paymentResponseEntity.setter("MerchantID", "000010000099939")
# Call Payment Master Payment Response Message Builder to set value
paymentResponseMessageBuilder = PaymentResponseMessageBuilder()
paymentResponseMessageBuilder.buildFPXPaymentResponseMessage(paymentResponseEntity, propertiesReader)
if paymentResponseEntity.getter("TxnStatDetCde") == '0000':
merchRefNo = paymentResponseEntity.getter("MerchRefNo")
txnStatus = paymentResponseEntity.getter("TxnStatus")
queryStatus = paymentResponseEntity.getter("QueryStatus")
txnStatMsg = paymentResponseEntity.getter("TxnStatMsg")
merchantID = paymentResponseEntity.getter("MerchantID")
cardNo = paymentResponseEntity.getter("CardNo")
txnDtTm = paymentResponseEntity.getter("TxnDtTm")
txnAmt = paymentResponseEntity.getter("TxnAmt")
currCode = paymentResponseEntity.getter("CurrCode")
versionNo = paymentResponseEntity.getter("VersionNo")
retrievalRefNo = paymentResponseEntity.getter("RetrievalRefNo")
uppPymtMode = paymentResponseEntity.getter("UppPymtMode")
succRespURL = paymentResponseEntity.getter("SuccRespURL")
txnStatDetCde = paymentResponseEntity.getter("TxnStatDetCde")
preAuthFlag = paymentResponseEntity.getter("PreAuthFlag")
pymtGwRefNo = paymentResponseEntity.getter("PymtGwRefNo")
# To do ...
第 4 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 5 步:将响应消息分配给付款响应实体
商户应使用 setter("ResponseMessage",<PayMaster 网关返回的响应消息>) 函数将 PayMaster 返回的响应消息分配给 PayMaster 响应实体。
第 6 步:为 PayMaster 响应实体分配值
商户应调用付款响应消息生成器来处理响应消息,并将值分配给 PayMaster 响应实体。
请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
第 7 步:从 PayMaster 响应实体检索值
商户可以使用 getter(参数名) 从 PayMaster 响应实体检索值。
请确保 TxnStatDetCde 的值不等于 5015,因为这表示安全哈希值无效。
第 1 步:图书馆
商户应设置 PayMaster 商户插件 (MPI) Node.js 库并将其包含到商户应用程序中。
第 2 步:函数
MERCH_FPXPaymentResponse()- 此函数应在商户的付款响应页面中使用。
- 它处理 PayMaster 网关返回的 响应参数,并返回商户所需的结果。
第 3 步:源代码
module.exports = function (app) {
app.get('/CompletionResponse', (req, res) => {
delete require.cache[
require.resolve("./js/PayMaster.min.js")
];
const paymaster = require("./js/PayMaster.min.js");
paymaster.PropertiesReader('./properties/', 'DDPayment.properties');
paymaster.MERCH_FPXPaymentResponse(req, paymaster.propDetails, function(err, response, result) {
if (err) {
throw err;
}
if (response) {
if (paymaster.getter('TxnStatDetCde') === "0000") {
var MerchRefNo = paymaster.getter('MerchRefNo');
var TxnStatus = paymaster.getter('TxnStatus');
var QueryStatus = paymaster.getter('QueryStatus');
var TxnStatMsg = paymaster.getter('TxnStatMsg');
var MerchantID = paymaster.getter('MerchantID');
var CardNo = paymaster.getter('CardNo');
var TxnDtTm = paymaster.getter('TxnDtTm');
var TxnAmt = paymaster.getter('TxnAmt');
var CurrCode = paymaster.getter('CurrCode');
var VersionNo = paymaster.getter('VersionNo');
var RetrievalRefNo = paymaster.getter('RetrievalRefNo');
var UppPymtMode = paymaster.getter('UppPymtMode');
var SuccRespURL = paymaster.getter('SuccRespURL');
var TxnStatDetCde = paymaster.getter('TxnStatDetCde');
var PreAuthFlag = paymaster.getter('PreAuthFlag');
var PymtGwRefNo = paymaster.getter('PymtGwRefNo');
// To do ...
}
}
});
// More code here...
});
};
第 4 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 5 步:从 PayMaster 响应实体检索值
商户可以使用 getter(参数名) 函数从 PayMaster 响应实体检索值,该函数仅接受一个参数。
请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
请确保 TxnStatDetCde 的值不等于 5015,因为这表示安全哈希值无效。