支付响应
QR支付的冲正功能仅适用于DuitNow和支付宝+。
- Java
- .Net
- PHP
- Python
- Node.js
步骤1:库
商户应将PayMaster商户插件(MPI)Java库 - PayMaster.jar,包含到商户应用程序中。
步骤2:导入
对于冲正支付,商户应将以下内容导入商户代码:
com.PayMaster.Entities.PayMasterEntity
com.PayMaster.PropertiesReader.PropertiesReader
com.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/","CardPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity paymentResponseEntity = new PayMasterEntity();
//Get response message from PayMaster and set into Payment Master Entity
paymentResponseEntity.setter("ResponseMessage", responseMessage);
//Call Payment Master Payment Response Message Builder to set value
PaymentResponseMessageBuilder paymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
paymentResponseMessageBuilder.buildCardPaymentResponseMessage(paymentResponseEntity, propertiesReader);
String MerchantID = paymentResponseEntity.getter("MerchantID");
String MerchRefNo = paymentResponseEntity.getter("MerchRefNo");
String TxnStatus = paymentResponseEntity.getter("TxnStatus");
String SHAlgorithmType = paymentResponseEntity.getter("SHAlgorithmType");
String SHValue = paymentResponseEntity.getter("SHValue");
.....
步骤4:使用 PropertiesReader
指定 PayMaster 属性文件位置
商户必须使用 PropertiesReader
指定 PayMaster 属性文件的位置。
步骤5:使用 setter 指定 PayMaster 属性文件位置
商户必须使用 setter("ResponseMessage", "<PayMaster网关返回的响应消息>")
指定 PayMaster 属性文件的位置。
步骤6:将值赋予 PayMaster 响应实体
商户调用卡支付响应消息构建器来处理响应消息,并将值赋予 PayMaster 响应实体。
请参考 冲正支付参数,了解PayMaster商户插件(MPI)支持的字段。
步骤7:从 PayMaster 响应实体中检索值
商户可以从 PayMaster 响应实体中检索值。
- 获取函数用于检索值,该函数仅接受一个参数 -
getter(参数名称)
。
请确保TxnStatDetCde
的值不等于5015,因为这代表着一个无效的安全哈希值。
步骤1:库
商户应将PayMaster商户插件(MPI).Net库 - PayMaster.dll,包含到商户应用程序中。
步骤2:命名空间
对于冲正支付,商户应在商户代码中使用以下命名空间:
using com.PayMaster.Entities
using com.PayMaster.Properties
using 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/","CCPayment.properties");
//Declare variable for Payment Master Entity
PayMasterEntity ccPaymentResponseEntity = new PayMasterEntity();
//Get response message from PayMaster and set into Payment Master Entity
ccPaymentResponseEntity.setter("ResponseMessage", responseMessage);
//Call Payment Master Payment Response Message Builder to set value
PaymentResponseMessageBuilder cardPaymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
cardPaymentResponseMessageBuilder.buildCardPaymentResponseMessage(ccPaymentResponseEntity, propertiesReader);
String MerchantID = ccPaymentResponseEntity.getter("MerchantID");
String MerchRefNo = ccPaymentResponseEntity.getter("MerchRefNo");
String TxnStatus = ccPaymentResponseEntity.getter("TxnStatus");
String SHAlgorithmType = ccPaymentResponseEntity.getter("SHAlgorithmType");
String SHValue = ccPaymentResponseEntity.getter("SHValue");
.....
步骤4:指定属性文件位置
商户必须使用 PropertiesReader
指定 PayMaster 属性文件的位置。
步骤5:将响应消息赋予支付响应实体
商户使用 setter("ResponseMessage", "<PayMaster网关返回的响应消息>")
将从 PayMaster 收到的响应消息赋予 PayMaster 响应实体。
步骤6:将值赋予 PayMaster 响应实体
商户调用卡支付响应消息构建器来处理响应消息,并将值赋予 PayMaster 响应实体。
请参考 冲正支付参数,了解PayMaster商户插件(MPI)支持的字段。
步骤7:从 PayMaster 响应实体中检索值
商户可以从 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;
//Merchant to 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","CCPayment.ini");
//Declare variable for Payment Master Entity
$paymentResponseEntity = new PayMasterEntity();
//Get all the parameter values from the user side and set into Payment Master Entity
$paymentResponseEntity->setter("ResponseMessage", $responseMessage);
//Call Payment Master Payment Response Message Builder to set value
$paymentResponseMessageBuilder = new PaymentResponseMessageBuilder();
$paymentResponseMessageBuilder-> buildCardPaymentResponseMessage
($paymentResponseEntity, $propertiesReader);
$MerchantID = $paymentResponseEntity->getter("MerchantID");
$MerchRefNo = $paymentResponseEntity->getter("MerchRefNo");
$TxnStatus = $paymentResponseEntity->getter("TxnStatus");
$SHAlgorithmType = $paymentResponseEntity->getter("SHAlgorithmType");
$SHValue = $paymentResponseEntity->getter("SHValue");
.....
步骤4:定位绝对路径
商户应在商户源代码中找到PayMaster.phar的绝对路径,作为basePath(在上述示例中为第7行)。
示例:$basePath='phar://<PayMaster.phar的绝对路径>/'
步骤5:指定PayMaster属性文件
商户必须使用 PropertiesReader
指定 PayMaster 属性文件的位置。
步骤6:将响应消息赋予支付响应实体
商户使用 setter("ResponseMessage", <PayMaster网关返回的响应消息>)
将从 PayMaster 收到的响应消息赋予 PayMaster 响应实体。
步骤7:将值赋予 PayMaster 响应实体
商户调用CC支付响应消息构建器来检索响应消息并将值赋予 PayMaster 响应实体。
请参考 冲正支付参数,了解PayMaster商户插件(MPI)支持的字段。
步骤8:从 PayMaster 响应实体中检索值
商户可以从 PayMaster 响应实体中检索值。
- 获取函数用于检索值,该函数仅接受一个参数
getter(参数名称)
。 TxnStatus
应为 00,TxnStatDetCde
应为 0000。
请确保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 = new PropertiesReader("CCPayment.properties","PayMasterProperties/")
##Declare variable for Payment Master Entity
ccPaymentResponseEntity = PayMasterEntity()
##Get response message from PayMaster and set into Payment Master Entity
ccPaymentResponseEntity.setter("ResponseMessage", responseMessage)
##Call Payment Master Payment Response Message Builder to set value
cardPaymentResponseMessageBuilder = PaymentResponseMessageBuilder()
cardPaymentResponseMessageBuilder.buildCardPaymentResponseMessage(ccPaymentResponseEntity, propertiesReader)
MerchantID = ccPaymentResponseEntity.getter("MerchantID")
MerchRefNo = ccPaymentResponseEntity.getter("MerchRefNo")
TxnStatus = ccPaymentResponseEntity.getter("TxnStatus")
SHAlgorithmType = ccPaymentResponseEntity.getter("SHAlgorithmType")
SHValue = ccPaymentResponseEntity.getter("SHValue")
步骤4:指定PayMaster属性文件位置
商户必须使用 PropertiesReader
指定 PayMaster 属性文件的位置。
步骤5:将响应消息赋予支付响应实体
商户使用 setter("ResponseMessage", <PayMaster网关返回的响应消息>)
将从 PayMaster 收到的响应消息赋予 PayMaster 响应实体。
步骤6:将值赋予 PayMaster 响应实体
商户调用卡支付响应消息构建器来检索响应消息并将值赋予 PayMaster 响应实体。
请参考 冲正支付参数,了解PayMaster商户插件(MPI)支持的字段。
步骤7:从 PayMaster 响应实体中检索值
商户可以从 PayMaster 响应实体中检索值。
- 获取函数用于检索值,该函数仅接受一个参数 –
getter(参数名称)
。
请确保TxnStatDetCde
的值不等于5015,因为这代表着一个无效的安全哈希值。
步骤1:库
商户应设置并包含PayMaster商户插件(MPI)NodeJS库到商户应用程序中。
步骤2:函数
MERCH_CardPaymentResponse()
- 该函数应在商户的响应页面上运行,用于处理冲正支付。
- 该函数将检索从PayMaster网关返回的响应参数,并返回商户所需的结果。
步骤3:源代码
var paymaster = require('./js/PayMaster.min.js');
module.exports = function (app) {
app.get('/UPPPayment', (req, res)=>{
paymaster.PropertiesReader('./properties/','CCPayment.properties');
payment.MERCH_CardPaymentResponse(req, paymaster.propDetails, function(err, response, result){
if(err){
throw err;
}
if(response){
if(paymaster.getter('TxnStatDetCde') === "0000"){
var MerchantID = paymaster.getter('MerchantID');
var MerchRefNo = paymaster.getter('MerchRefNo');
var TxnStatus = paymaster.getter('TxnStatus');
var SHAlgorithmType = paymaster.getter('SHAlgorithmType');
var SHValue = paymaster.getter('SHValue');
//to do ...
}
}
});
.....
});
}
步骤4:指定PayMaster属性文件
商户必须使用 PropertiesReader
指定 PayMaster 属性文件的位置。
请参考 冲正支付参数,了解PayMaster商户插件(MPI)支持的字段。
步骤5:从 PayMaster 响应实体中检索值
商户可以从 PayMaster 响应实体中检索值。
- 获取函数用于检索值,该函数仅接受一个参数 –
getter(参数名称)
。
请确保TxnStatDetCde
的值不等于5015,因为这代表着一个无效的安全哈希值。