生成二维码请求
以下指南将解释如何在商户网站和应用程序中应用相应的源代码,以形成商户可以在重定向链接中拥有的支付请求参数,并将其发送到 PayMaster 进行二维码支付处理。
- Java
- .Net
- PHP
- Python
- Node.js
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) Java 库 PayMaster.jar。
第 2 步:导入
对于二维码支付,商户应将以下内容导入到其代码中:
com.PayMaster.Entities.PayMasterEntitycom.PayMaster.PropertiesReader.PropertiesReadercom.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/", "QRPayment.properties");
// Declare variable for Payment Master Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();
// Set parameter values into Payment Master Entity
paymentRequestEntity.set("PaymentID", "Q01");
paymentRequestEntity.set("MerchRefNo", "merchant-refNo-0001");
paymentRequestEntity.set("CurrCode", "458");
paymentRequestEntity.set("TxnAmt", "1.00");
paymentRequestEntity.set("ExpTxnAmt", "2");
paymentRequestEntity.set("TerminalID", "200039XX");
paymentRequestEntity.set("PayloadInd", "12");
paymentRequestEntity.set("PANInd", "26");
// Generate the payment request message
PaymentRequestMessageBuilder messageBuilder = new PaymentRequestMessageBuilder();
String paymentMessage = messageBuilder.buildPaymentRequestMessage(paymentRequestEntity, propertiesReader);
// POST request to Payment Master Gateway for QR Payload
String initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.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 步: 生成二维码支付
分配所有必填值后,使用付款请求消息生成器生成 QR 付款消息。
第 7 步:将付款消息发送至 PayMaster 网关
将 paymentMessage 发送到 PayMaster 网关以获取 QR 负载。
请参阅 二维码支付响应了解PayMaster商户插件(MPI)支持的安全控制。
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) .NET 库 PayMaster.dll。
第 2 步:命名空间
对于二维码支付,商户应在商户代码中包含以下命名空间:
using com.PayMaster.Entitiesusing com.PayMaster.Propertiesusing 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/", "QRPayment.properties");
// Declare variable for Payment Master Entity
PayMasterEntity qrPaymentRequestEntity = new PayMasterEntity();
// Set parameter values into Payment Master Entity
qrPaymentRequestEntity.setter("PaymentID", "Q01");
qrPaymentRequestEntity.setter("MerchRefNo", "merchant-refNo-0001");
qrPaymentRequestEntity.setter("CurrCode", "458");
qrPaymentRequestEntity.setter("TxnAmt", "1.00");
qrPaymentRequestEntity.setter("ExpTxnAmt", "2");
qrPaymentRequestEntity.setter("TerminalID", "200039XX");
qrPaymentRequestEntity.setter("PayloadInd", "12");
qrPaymentRequestEntity.setter("PANInd", "26");
// Generate the payment request message
PaymentRequestMessageBuilder qrMessageBuilder = new PaymentRequestMessageBuilder();
string qrPaymentMessage = qrMessageBuilder.buildPaymentRequestMessage(qrPaymentRequestEntity, propertiesReader);
// POST request to Payment Master Gateway for QR Payload
string initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.xhtml?" + qrPaymentMessage;
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函数来赋值,它接受两个参数:setter(参数名,参数值)。
PayMaster商户插件(MPI)支持的字段请参考 二维码支付参数。
第 6 步: 生成二维码支付
分配所有强制值后,调用PaymentRequestMessageBuilder生成 QR 支付消息(qrPaymentMessage)。
第 7 步:将付款消息发送至 PayMaster 网关
将qrPaymentMessage发送到 PayMaster 网关以获取 QR 负载。
请参阅 二维码支付响应了解PayMaster商户插件(MPI)支持的安全控制。
第 1 步:图书馆
商户必须在商户应用程序中包含 PayMaster 商户插件 (MPI) PHP 库 PayMaster.phar。
第 2 步:导入
对于二维码支付,商户应将以下内容导入到其代码中:
PropertiesReader– 读取属性文件。PayMasterEntity– 为 PayMaster QR 支付分配所有可接受的值。PaymentRequestMessageBuilder– 生成PayMaster二维码支付请求消息。
第 3 步:源代码
<?php
use com\PayMaster\Entities\PayMasterEntity;
use com\PayMaster\PropertiesReader\PropertiesReader;
use com\PayMaster\MessageRequestBuilder\PaymentRequestMessageBuilder;
use com\PayMaster\Import\ImportFile;
// 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/", "QRPayment.ini");
// Declare variable for Payment Master Entity
$paymentRequestEntity = new PayMasterEntity();
// Set parameter values into Payment Master Entity
$paymentRequestEntity->setter("PaymentID", "Q01");
$paymentRequestEntity->setter("MerchRefNo", "merchant-refNo-0001");
$paymentRequestEntity->setter("CurrCode", "458");
$paymentRequestEntity->setter("TxnAmt", "1.00");
$paymentRequestEntity->setter("ExpTxnAmt", "2");
$paymentRequestEntity->setter("TerminalID", "200039XX");
$paymentRequestEntity->setter("PayloadInd", "12");
$paymentRequestEntity->setter("PANInd", "26");
// Generate the payment request message
$paymentRequestMessageBuilder = new PaymentRequestMessageBuilder();
$paymentMessage = $paymentRequestMessageBuilder->buildPaymentRequestMessage($paymentRequestEntity, $propertiesReader);
// POST request to Payment Master Gateway for QR Payload
$initialUrl = "https://xxx.finexusgroup.com/upp/faces/generateQrPayload.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();
?>