付款请求
DuitNow 和 Alipay+ 支持二维码支付的撤销功能。请参阅【重要说明】(/myxaas/zh-cn/docs/paymaster/important-notes)。
- 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 PayMaster Properties - 1st Parameter = File Path, 2nd Parameter = File Name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "CCPayment.properties");
// Declare variable for PayMaster Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
// Set values into PayMaster Entity
paymentRequestEntity.set("PaymentID", "C15");
paymentRequestEntity.set("MerchRefNo", "merchant-refNo-0001");
paymentRequestEntity.set("CurrCode", "458");
paymentRequestEntity.set("TxnAmt", "1.00");
paymentRequestEntity.set("ExpTxnAmt", "2");
// Call Payment Request Message Builder to generate the message
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
String paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
// POST request to PayMaster Gateway for reversal
String initialUrl = "https://xxx.finexusgroup.com/upp/faces/reversal0400.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 步: 为付款请求实体分配值
商家必须为PayMasterRequestEntity
分配值。代码必须包含示例代码中指定的所有必填字段。使用setter函数来赋值,该函数接受两个参数:setter(参数名,参数值)
PayMaster商户插件(MPI)支持的字段请参见 冲销支付参数。
第 6 步: 生成付款消息
分配所有必需值后,调用PaymentRequestMessageBuilder
以生成撤消付款消息(paymentMessage
)。
第 7 步:将付款消息发送至 PayMaster 网关
paymentMessage
将用于发送到PayMaster网关以实现撤销支付功能。
请参阅 QR 反转完成响应 了解 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 PayMaster Properties - 1st Parameter = File Path, 2nd Parameter = File Name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/", "CCPayment.properties");
// Declare variable for PayMaster Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
// Set parameter values into PayMaster Entity
paymentRequestEntity.Setter("PaymentID", "C15");
paymentRequestEntity.Setter("MerchRefNo", "merchant-refNo-0001");
paymentRequestEntity.Setter("CurrCode", "458");
paymentRequestEntity.Setter("TxnAmt", "1.00");
paymentRequestEntity.Setter("ExpTxnAmt", "2");
// Call Payment Request Message Builder to generate the message
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
string paymentMessage = messageBuilder.BuildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
// POST request to PayMaster Gateway for reversal
string initialUrl = "https://xxx.finexusgroup.com/upp/faces/reversal0400.xhtml?" + paymentMessage;
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 步为付款请求实体分配值
商家必须为 PayMasterEntity 分配值。代码必须包含示例代码中指定的所有必填字段。使用Setter函数来赋值,该函数接受两个参数:setter(参数名,参数值)
。
PayMaster商户插件(MPI)支持的字段请参见 冲销支付参数。
第 6 步: 生成付款消息
分配所有必需值后,调用PaymentRequestMessageBuilder
以生成撤消付款消息(paymentMessage
)。
第 7 步:将付款消息发送至 PayMaster 网关
paymentMessage
将被发送到PayMaster网关以实现撤销支付功能。
请参阅 QR 反转完成响应 了解 PayMaster 商户插件 (MPI) 支持的安全控制。
第 1 步:图书馆
商户应将 PayMaster 商户插件 (MPI) PHP 库 PayMaster.phar 包含到商户应用程序中。
第 2 步:导入
对于冲销付款,商家应将以下内容导入其代码中:
PropertiesReader
– 读取属性文件。PayMasterEntity
– 为 PayMaster 冲销付款分配所有可接受的值。PaymentRequestMessageBuilder
– 生成 PayMaster 撤销付款请求消息。
第 3 步:源代码
<?php
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageRequestBuilder\PaymentRequestMessageBuilder;
use com\PayMaster\Import\ImportFile;
// Merchant must 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 PayMaster Properties - 1st Parameter = File Path, 2nd Parameter = File Name
$propertiesReader = new PropertiesReader();
$propertiesReader->PropertiesReader('<absolute path>', 'CCPayment.ini');
// Declare variable for PayMaster Entity
$paymentRequestEntity = new PayMasterEntity();
// Set parameter values into PayMaster Entity
$paymentRequestEntity->setter('PaymentID', 'C15');
$paymentRequestEntity->setter('MerchRefNo', 'merchant-refNo-0001');
$paymentRequestEntity->setter('CurrCode', '458');
$paymentRequestEntity->setter('TxnAmt', '1022.00');
$paymentRequestEntity->setter('ExpTxnAmt', '2');
// Call Payment Request Message Builder to generate the message
$paymentRequestMessageBuilder = new PaymentRequestMessageBuilder();
$paymentMessage = $paymentRequestMessageBuilder->buildPaymentRequestMessage($paymentRequestEntity, $propertiesReader);
// POST request to PayMaster Gateway for reversal
$initialUrl = "https://xxx.finexusgroup.com/upp/faces/reversal0400.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://<absolute path of PayMaster.phar>/'
第 5 步:指示 PayMaster 属性文件位置
商家必须使用PropertiesReader
指定 PayMaster 属性文件的位置。
第 6 步:为付款请求实体分配值
商家必须为 PayMasterEntity 分配值。该代码必须包含示例代码中指定的所有必填字段。使用setter函数来赋值,该函数接受两个参数:setter(参数名,参数值)
。
MerchRefNo
是从需要冲销的付款中获取的。
PayMaster商户插件(MPI)支持的字段请参见 冲销支付参数。
第 7 步: 产生反转
分配所有必需值后,调用PaymentRequestMessageBuilder
以生成反转 paymentMessage
。
第 8 步: 发送撤销消息至 PayMaster 网关
paymentMessage
将被发送到PayMaster网关以实现撤销支付功能。
请参阅 QR 反转完成响应 了解 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
import requests
# Declare variable for PayMaster Properties - 1st Parameter = File Path, 2nd Parameter = File Name
propertiesReader = PropertiesReader("PayMasterProperties/", "CCPayment.properties")
# Declare variable for PayMaster Entity
paymentRequestEntity = PayMasterEntity()
# Set parameter values into PayMaster Entity
paymentRequestEntity.setter("PaymentID", "C15")
paymentRequestEntity.setter("MerchRefNo", "merchant-refNo-0001")
paymentRequestEntity.setter("CurrCode", "458")
paymentRequestEntity.setter("TxnAmt", "1.00")
paymentRequestEntity.setter("ExpTxnAmt", "2")
# Call Payment Request Message Builder to generate the message
messageBuilder = PaymentRequestMessageBuilder()
paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader)
# POST request to PayMaster Gateway for reversal
initial_url = "https://xxx.finexusgroup.com/upp/faces/reversal0400.xhtml?" + paymentMessage
response = requests.post(initial_url)
final_url = response.url
第 4 步:指示 PayMaster 属性文件位置
商家必须使用PropertiesReader
指定 PayMaster 属性文件的位置。
第 5 步为付款请求实体分配值
商家必须为 PayMasterEntity 分配值。该代码必须包含示例代码中指定的所有必填字段。使用setter函数来赋值,该函数接受两个参数:setter(参数名,参数值)
PayMaster商户插件(MPI)支持的字段请参见 冲销支付参数。
第 6 步: 生成付款消息
分配所有必需值后,调用PaymentRequestMessageBuilder
以生成反转 paymentMessage
。
第 7 步:将付款消息发送至 PayMaster 网关
paymentMessage
将被发送到PayMaster网关以实现撤销支付功能。
请参阅 QR 反转完成响应 了解 PayMaster 商户插件 (MPI) 支持的安全控制。
第 1 步:图书馆
商户应设置 PayMaster 商户插件 (MPI) Node.js 库并将其包含到商户应用程序中。
第 2 步源代码
var paymaster = require('./js/PayMaster.min.js');
var axios = require('axios');
module.exports = function (app) {
app.post('/CCPayment', async (req, res) => {
try {
// Initialize PropertiesReader
paymaster.PropertiesReader('./properties/', 'CCPayment.properties');
// Set parameters for Payment Request Entity
paymaster.setter('PaymentID', 'C15');
paymaster.setter('MerchRefNo', 'merchant-refNo-0001');
paymaster.setter('CurrCode', '458');
paymaster.setter('TxnAmt', '1.00');
paymaster.setter('ExpTxnAmt', '2');
// Generate payment request message
paymaster.MERCH_CardPaymentRequest(paymaster.PaymentRequestEntity, paymaster.propDetails, async function(err, response, result) {
if (err) {
throw err;
}
if (response) {
const initialUrl = "https://xxx.finexusgroup.com/upp/faces/reversal0400.xhtml?" + result;
try {
const response = await axios.post(initialUrl);
const finalUrl = response.request.res.responseUrl;
// Handle final URL or response as needed
res.send({ finalUrl: finalUrl });
} catch (error) {
console.error('Error sending POST request:', error);
res.status(500).send('Error sending POST request');
}
}
});
} catch (error) {
console.error('Error processing payment:', error);
res.status(500).send('Error processing payment');
}
});
}
第 3 步:指示 PayMaster 属性文件位置
商家必须使用PropertiesReader
指定 PayMaster 属性文件的位置。
第 4 步为付款请求实体分配值
商家必须向 PayMaster 请求实体分配值。该代码必须包含示例代码中指定的所有必填字段。使用setter函数来赋值,该函数接受两个参数:setter(参数名,参数值)
。
PayMaster商户插件(MPI)支持的字段请参见 冲销支付参数。
第 5 步生成请求消息
使用 MERCH_CardPaymentRequest()
函数生成冲销支付请求消息。
第 6 步:将付款消息发送至 PayMaster
支付消息将被发送至PayMaster网关以实现冲销支付功能。
请参阅 QR 反转完成响应 了解 PayMaster 商户插件 (MPI) 支持的安全控制。