付款请求
通过 银行列表 获取银行列表后,在付款请求中使用返回的 FICode 和 AcqBank 值来处理付款。
- Java
- .Net
- PHP
- Python
- Node.js
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) Java 库 PayMaster.jar。
第 2 步:导入
对于付款,商户应将以下内容导入到其代码中:
com.PayMaster.Entities.PayMasterEntitycom.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuildercom.PayMaster.MessageResponseBuilder.PaymentResponseMessageBuildercom.PayMaster.PropertiesReader.PropertiesReader
第 3 步:源代码
import com.PayMaster.Entities.PayMasterEntity;
import com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder;
import com.PayMaster.MessageResponseBuilder.PaymentResponseMessageBuilder;
import com.PayMaster.PropertiesReader.PropertiesReader;
// Declare variable for PayMaster Properties - 1st Parameter = File Path, 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "DDPayment.properties");
// Declare variable for PayMaster Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
// Get all the parameter values from the user side and set into PayMaster Entity
paymentRequestEntity.setter("MerchantID", "000010000099939");
paymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL");
paymentRequestEntity.setter("PaymentID", "D01");
paymentRequestEntity.setter("TxnAmt", "1.00");
paymentRequestEntity.setter("ExpTxnAmt", "2");
paymentRequestEntity.setter("CurrCode", "458");
paymentRequestEntity.setter("CountryCode", "MY");
paymentRequestEntity.setter("EcommMerchInd", "2");
paymentRequestEntity.setter("TerminalID", "10002303");
// Get the FICode and AcqBank from the BankListing
paymentRequestEntity.setter("FICode", "RPP");
paymentRequestEntity.setter("AcqBank", "FNXSMYNB");
// Call PaymentRequestMessageBuilder to generate the message
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
String paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
// Redirect the message generated for settlement
response.sendRedirect(<Your_Payment_Screen_URL> + paymentMessage);
第 4 步:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader 指定 PayMaster 属性文件的位置。
第 5 步:为付款请求实体分配值
商户必须使用 setter 函数为 PayMaster 请求实体分配值:setter(参数名,参数值)。
从银行列表响应中获取 FICode 和 AcqBank。请参阅 付款参数了解 PayMaster 商户插件 (MPI) 支持的字段。
第 6 步:生成付款消息
分配所有必填值后,调用 PaymentRequestMessageBuilder 以生成付款消息(paymentMessage)。
第 7 步:将付款消息发送至 PayMaster 网关
paymentMessage 将被发送到 PayMaster 网关进行结算。
请参阅 付款响应了解 PayMaster 商户插件 (MPI) 支持的安全控制。
第 3 步:源代码
using com.PayMaster.Entities;
using com.PayMaster.Properties;
using com.PayMaster.MessageRequestBuilder;
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "DDPayment.properties");
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
paymentRequestEntity.Setter("MerchantID", "000010000099939");
paymentRequestEntity.Setter("MerchRefNo", "MYB2023030315435025LL");
paymentRequestEntity.Setter("PaymentID", "D01");
paymentRequestEntity.Setter("TxnAmt", "1.00");
paymentRequestEntity.Setter("ExpTxnAmt", "2");
paymentRequestEntity.Setter("CurrCode", "458");
paymentRequestEntity.Setter("CountryCode", "MY");
paymentRequestEntity.Setter("EcommMerchInd", "2");
paymentRequestEntity.Setter("TerminalID", "10002303");
paymentRequestEntity.Setter("FICode", "RPP");
paymentRequestEntity.Setter("AcqBank", "FNXSMYNB");
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
string paymentMessage = messageBuilder.BuildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
Response.Redirect(<Your_Payment_Screen_URL> + paymentMessage);
第 3 步:源代码
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageRequestBuilder\PaymentRequestMessageBuilder;
$propertiesReader = new PropertiesReader();
$propertiesReader->PropertiesReader('<absolute path>', 'DDPayment.ini');
$paymentRequestEntity = new PayMasterEntity();
$paymentRequestEntity->setter('MerchantID', '000010000099939');
$paymentRequestEntity->setter('MerchRefNo', 'MYB2023030315435025LL');
$paymentRequestEntity->setter('PaymentID', 'D01');
$paymentRequestEntity->setter('TxnAmt', '1.00');
$paymentRequestEntity->setter('ExpTxnAmt', '2');
$paymentRequestEntity->setter('CurrCode', '458');
$paymentRequestEntity->setter('CountryCode', 'MY');
$paymentRequestEntity->setter('EcommMerchInd', '2');
$paymentRequestEntity->setter('TerminalID', '10002303');
$paymentRequestEntity->setter('FICode', 'RPP');
$paymentRequestEntity->setter('AcqBank', 'FNXSMYNB');
$paymentRequestMessageBuilder = new PaymentRequestMessageBuilder();
$paymentMessage = $paymentRequestMessageBuilder->buildPaymentRequestMessage($paymentRequestEntity, $propertiesReader);
header('Location: ' . <Your_Payment_Screen_URL> . $paymentMessage);
exit();
?>
第 3 步:源代码
from com.PayMaster.Entities.PayMasterEntity import PayMasterEntity
from com.PayMaster.PropertiesReader.PropertiesReader import PropertiesReader
from com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder import PaymentRequestMessageBuilder
propertiesReader = PropertiesReader("PayMasterProperties/", "DDPayment.properties")
paymentRequestEntity = PayMasterEntity()
paymentRequestEntity.setter("MerchantID", "000010000099939")
paymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL")
paymentRequestEntity.setter("PaymentID", "D01")
paymentRequestEntity.setter("TxnAmt", "1.00")
paymentRequestEntity.setter("ExpTxnAmt", "2")
paymentRequestEntity.setter("CurrCode", "458")
paymentRequestEntity.setter("CountryCode", "MY")
paymentRequestEntity.setter("EcommMerchInd", "2")
paymentRequestEntity.setter("TerminalID", "10002303")
paymentRequestEntity.setter("FICode", "RPP")
paymentRequestEntity.setter("AcqBank", "FNXSMYNB")
messageBuilder = PaymentRequestMessageBuilder()
paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader)
redirect(<Your_Payment_Screen_URL> + paymentMessage)
第 3 步:源代码
module.exports = function (app) {
app.post('/DDPayment', (req, res) => {
const paymaster = require('./js/PayMaster.min.js');
paymaster.PropertiesReader('./properties/', 'DDPayment.properties');
paymaster.setter('MerchantID', '000010000099939');
paymaster.setter('MerchRefNo', 'MYB2023030315435025LL');
paymaster.setter('PaymentID', 'D01');
paymaster.setter('TxnAmt', '1.00');
paymaster.setter('ExpTxnAmt', '2');
paymaster.setter('CurrCode', '458');
paymaster.setter('CountryCode', 'MY');
paymaster.setter('EcommMerchInd', '2');
paymaster.setter('TerminalID', '10002303');
paymaster.setter('FICode', 'RPP');
paymaster.setter('AcqBank', 'FNXSMYNB');
paymaster.MERCH_CardPaymentRequest(paymaster.PaymentRequestEntity, paymaster.propDetails, function(err, response, result) {
if (response) {
res.redirect(<Your_Payment_Screen_URL> + result);
}
});
});
}