支付请求
以下指南是为了说明如何在商户应用程序中应用相应的源代码,以形成并发送用于PayMaster的定期支付请求参数。
- Java
- .Net
- PHP
- Python
- Node.js
步骤 1:库
商户应将 PayMaster 商户插件(MPI)Java 库 - PayMaster.jar,包含到商户应用程序中。
步骤 2:导入
对于定期支付,商户应将以下内容导入到商户代码中:
com.PayMaster.Entities.PayMasterEntity
com.PayMaster.PropertiesReader.PropertiesReader
com.PayMaster.MessageRequestBuilder.PaymentRequestMessageBuilder
步骤 3:源代码
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();
.....
步骤 4:指示 PayMaster 属性文件位置
商户必须使用 PropertiesReader
指明 PayMaster 属性文件的位置。
步骤 5:将值分配给支付请求实体
商户需要为 PayMaster 请求实体分配值。商户代码必须包含示例代码中所述的所有字段,因为这是强制性的。
- Setter 函数用于分配值,该函数接受两个参数 -
setter(参数名, 参数值)
。
请参阅 定期支付参数 以了解 PayMaster 商户插件 (MPI) 支持的字段。
步骤 6:生成支付消息
一旦分配了所有必填值,商户调用支付请求消息生成器来生成定期支付请求 - paymentMessage
。
步骤 7:发送支付消息至 PayMaster 网关
paymentMessage
将用于发送给 PayMaster 网关以执行定期支付功能。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤 1:库文件
商家应将 PayMaster 商户插件(MPI).Net 库文件 PayMaster.dll 包含到商户应用程序中。
步骤 2:命名空间
对于定期支付,商家应在商户代码中使用以下命名空间:
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/","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;
.....
步骤 4:指示 PayMaster 属性文件位置
商家必须使用 PropertiesReader
指示 PayMaster 属性文件的位置。
步骤 5:向支付请求实体分配值 商家必须为 PayMaster 请求实体分配值。商家代码必须包括示例代码中的所有字段,因为这是强制性的。
setter(parameter name, parameter value)
函数用于分配值,该函数接受两个参数 - 参数名称和参数值。
有关 PayMaster 商户插件(MPI)支持的字段,请参考定期支付参数。
步骤 6:生成支付消息
一旦分配了所有强制性的值,商家调用支付请求消息生成器生成定期支付 - ccPaymentMessage
。
步骤 7:发送支付消息到 PayMaster 网关
ccpaymentMessage
将用于发送给 PayMaster 网关以执行定期支付功能。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤 1:库文件
商家应将 PayMaster 商户插件(MPI)PHP库文件 PayMaster.phar 包含到商户应用程序中。
步骤 2:导入
对于定期支付,商家应在商户代码中导入以下内容:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
- 为 PayMaster 定期支付分配所有可接受的值。PaymentRequestMessageBuilder
- 生成 PayMaster 定期支付请求消息。
步骤 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://<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();
.....
步骤 4:定位PayMaster.phar的绝对路径
商家需要在商家源代码中找到PayMaster.phar的绝对路径,作为basePath
(上述示例中第7行)。
示例: $basePath='phar://<PayMaster.phar的绝对路径>/'
步骤 5:指定PayMaster属性文件位置
商家必须使用PropertiesReader
指定PayMaster属性文件的位置。
步骤 6:将值分配给支付请求实体 商家必须为PayMaster请求实体分配值。商家代码必须包括示例代码中列出的所有字段,因为这是强制性的。
- 使用setter函数分配值,该函数接受两个参数 -
setter(参数名称,参数值)
。
参考定期支付参数,了解PayMaster商家插件(MPI)支持的字段。
步骤 7:生成支付消息
一旦分配了所有强制性值,商家调用支付请求消息生成器以生成定期支付 - paymentMessage
。
步骤 8:将支付消息发送至PayMaster网关
paymentMessage
将用于发送给 PayMaster 网关以执行定期支付功能。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤 1:安装包
商家应设置并包含PayMaster商家插件(MPI)Python包到商家应用程序中。
步骤 2:导入
对于定期支付,商家应在商家代码中包含以下内容:
PropertiesReader
- 用于读取属性文件。PayMasterEntity
- 用于为PayMaster定期支付指定所有可接受的值。PaymentRequestMessageBuilder
- 用于生成PayMaster定期支付请求消息。
步骤 3:源代码
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
步骤 4:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤 5:将值分配给支付请求实体
商家必须为PayMaster请求实体分配值。商家代码必须包括示例代码中列出的所有字段,因为这是强制性的。
- 使用setter函数分配值,该函数接受两个参数 –
setter(参数名称, 参数值)
。
请参考支付参数,了解PayMaster商家插件(MPI)支持的字段。
步骤 6:生成定期支付
一旦分配了所有强制性值,商家调用支付请求消息生成器以生成定期支付 - ccPaymentMessage
。
步骤 7:发送支付消息至PayMaster网关
ccpaymentMessage
将用于发送给 PayMaster 网关以执行定期支付功能。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。
步骤 1:库
商家应设置并包含PayMaster商家插件(MPI)NodeJS包到商家应用程序中。
步骤 2:源代码
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();
}
});
});
}
步骤 3:指示PayMaster属性文件位置
商家必须使用PropertiesReader
指示PayMaster属性文件的位置。
步骤 4:将值分配给支付请求实体
商家必须为PayMaster请求实体分配值。商家代码必须包括示例代码中列出的所有字段,因为这是强制性的。
- 使用setter函数分配值,该函数接受两个参数 –
setter(参数名称, 参数值)
。
请参考支付参数,了解PayMaster商家插件(MPI)支持的字段。
步骤 5:生成定期支付
使用 MERCH_CardPaymentRequest() 函数生成定期支付请求消息。
步骤 6:发送支付消息至PayMaster网关
支付消息将用于发送给 PayMaster 网关以执行定期支付功能。
请参考支付响应,了解PayMaster商户插件(MPI)支持的安全控制。