跳到主要内容

支付查询

以下指南旨在说明如何在商家网站或商家应用程序中应用相应的源代码,以便生成强制性的支付请求参数,商家可以将其放在重定向链接中,并发送给PayMaster进行QR支付查询处理

步骤 1:库

商家应将 PayMaster 商家插件(MPI)Java库 - PayMaster.jar 加入商家应用程序。

步骤 2:导入

对于 QR 支付查询,商家应将以下内容导入到商家代码中:

  • com.PayMaster.Entities.PayMasterEntity
  • com.PayMaster.PropertiesReader.PropertiesReader
  • com.PayMaster.MessageRequestBuilder.WebservicePaymentRequestMessageBuilder

步骤 3:源代码

import com.PayMaster.Entities.PayMasterEntity;
import com.PayMaster.PropertiesReader.PropertiseReader;
import com.PayMaster.MessageRequestBuilder.WebservicePaymentRequestMessageBuilder;

.....

//Declare variable for Payment Master Properties - 1st Parameter = File Path , 2nd Parameter = File name
PropertiesReader propertiesReader = new PropertiesReader("./PayMasterProperties/","UPPPayment.properties");

//Declare variable for Payment Master Entity
PayMasterEntity paymentRequestEntity = new PayMasterEntity();

//Get all the parameter value from the user side and set into Payment Master Entity
paymentRequestEntity.setter("PaymentID", "U02");
paymentRequestEntity.setter("MerchantID", "000010000099939");
paymentRequestEntity.setter("ServiceID", "FNX");
paymentRequestEntity.setter("MerchRefNo", "MYB2023030315435025LL");
paymentRequestEntity.setter("QueryRespURL", "https://XXX.XXXXX.XXX/query.jsp");

//Call Payment Master Payment Request Message Builder to generate the message
WebservicePaymentRequestMessageBuilder messageBuilder = new WebservicePaymentRequestMessageBuilder();
messageBuilder.buildUPPQueryRequestMessage(paymentRequestEntity, propertiesReader);

String MerchantID = paymentRequestEntity.getter("MerchantID");
String CardNo = paymentRequestEntity.getter("CardNo");
String TxnDtTm = paymentRequestEntity.getter("TxnDtTm");
String TxnAmt = paymentRequestEntity.getter("TxnAmt");
String TxnStatus = paymentRequestEntity.getter("TxnStatus");
String CurrCode = paymentRequestEntity.getter("CurrCode");
String AuthIDRespCode = paymentRequestEntity.getter("AuthIDRespCode");
String ExpTxnAmt = paymentRequestEntity.getter("ExpTxnAmt");
String RetrievalRefNo = paymentRequestEntity.getter("RetrievalRefNo");
String OrgRespCode = paymentRequestEntity.getter("OrgRespCode");
String OrigTxnAmt = paymentRequestEntity.getter("OrigTxnAmt");
String OrigCurrCode = paymentRequestEntity.getter("OrigCurrCode");
String TxnChannel = paymentRequestEntity.getter("TxnChannel");
String FICode = paymentRequestEntity.getter("FICode");
String PymtGwRefNo = paymentRequestEntity.getter("PymtGwRefNo");
String TxnStatDetCde = paymentRequestEntity.getter("TxnStatDetCde");
String TxnStatMsg = paymentRequestEntity.getter("TxnStatMsg");
String ServiceID = paymentRequestEntity.getter("ServiceID");
String MerchHostID = paymentRequestEntity.getter("MerchHostID");
String MerchSessionID = paymentRequestEntity.getter("MerchSessionID");
String MerchRefNo = paymentRequestEntity.getter("MerchRefNo");
String OrderRefNo = paymentRequestEntity.getter("OrderRefNo");
String QueryStatus = paymentRequestEntity.getter("QueryStatus");
String FPXRefNo = paymentRequestEntity.getter("FPXRefNo");
String UppPymtMode = paymentRequestEntity.getter("UppPymtMode");
String OrigRespCode = paymentRequestEntity.getter("OrigRespCode");
String ExporigTxnAmt = paymentRequestEntity.getter("ExporigTxnAmt");

.....

步骤 4:使用 PropertiesReader 指示 PayMaster 属性文件位置

商家必须使用 PropertiesReader 指示 PayMaster 属性文件的位置。

步骤 5:将值分配给 PayMaster 请求实体

商家需要将值分配给 PayMaster 请求实体。商家代码必须包含所有字段,如示例代码中所述,因为这是强制性的。

  • 使用 setter 函数将值分配给参数,并且该函数接受两个参数 - setter(参数名称, 参数值)

步骤 6:调用 Web Service 支付请求消息生成器

一旦分配了所有必需的值,商家将调用 Web Service 支付请求消息生成器,使用 buildUPPPaymentQueryRequest 函数。

  • 将生成支付查询请求消息,并提交给 PayMaster Gateway。
  • 从 PayMaster Gateway 接收到的查询响应将被处理并重新分配回 PayMaster 请求实体

步骤 7:从 PayMaster 请求实体中检索值

商家可以使用同一个 PayMaster 请求实体来检索查询响应的信息。

  • 使用 getter 函数来检索值,该函数只接受一个参数 - getter(参数名称)
信息

参考 QR 支付查询参数 了解 PayMaster 商家插件(MPI)支持的字段。