Antom, leading provider of tailored payment solutions

inquiryPayment

POS 调用 inquiryPayment 接口来查询支付状态,通常在 POS 未从支付终端收到交易响应时使用。

方法签名

调用此方法时,请使用以下标准方法签名格式:

fun inquiryPayment(
    queryPaymentRequest: QueryPaymentRequest,
    options: RequestOptions? = null,
    callBack: QueryPayResultListener? = null
)

参数

参数名称

类型

是否必需

描述

queryPaymentRequest

QueryPaymentRequest

是

包含查询支付结果参数的对象。

options

RequestOptions

否

包含接口请求中可选参数的对象。

callback

QueryPayResultListener

否

用于返回查询结果的回调。详细信息请参阅 callback。

callback

参数名称

类型

是否必需

描述

result

QueryPayResultData

否

表示查询支付结果的结果。 

返回值

参数名称

类型

是否必需

描述

result

Result

是

接口调用的结果。

paymentRequestId

String

是

由 POS 提供商定义的用于标识支付请求的唯一 ID。

  • 最大长度:64 个字符。
  • 仅允许字母(a-z、A-Z)、数字(0-9)和下划线(_)。

注意:此参数对每个门店是唯一的。使用 paymentRequestId 调用 inquiryPayment 接口查询支付状态。每次调用将返回最新的支付结果。

paymentId

String

是

由 POS 提供商定义的用于标识支付的唯一 ID,与交易报告中的 paymentId 一致。

paymentCreateTime

String

是

创建支付的日期和时间。该值遵循 ISO 8601 标准格式,例如,"2019-11-27T12:01:01+08:00"。

paymentTime

String

是

支付达到成功最终状态的日期和时间。该值遵循 ISO 8601 标准格式,例如,"2019-11-27T12:01:01+08:00"。

paymentStatus

String

是

表示支付的最终状态。有效值为:

  • SUCCESS:支付成功。
  • FAIL:支付失败。
  • PROCESSING:支付处理中。
  • CANCELLED:支付取消。
  • PENDING:支付完成,等待最终支付结果。

paymentAmount

Amount

是

商户请求以订单币种接收的支付金额。

paymentMethod

String

是

商户或收单机构用于收取付款的支付方式。请参阅支持的支付方式了解更多信息。

结果码

结果码

状态码

结果信息

后续操作

SUCCESS

S

成功

无需后续操作。

PROCESS_FAIL

F

发生常规业务故障。请勿重试。

联系 Antom 技术支持。

PROCESS_FAIL

F

数据格式无效。

联系 Antom 技术支持。

PROCESS_FAIL

F

公钥配对失败。

联系 Antom 技术支持。

PARAM_ILLEGAL

F

参数名称或值不符合指定要求。结果消息会根据具体错误而有所不同。

检查请求参数(包括头部参数和主体参数)是否正确有效。

TERMINAL_NOT_LOGIN

F

支付终端未登录。

登录支付终端。

TERMINAL_BUSY

F

支付终端繁忙。

稍后重试。

PAYMENT_NOT_EXIST

F

支付不存在。

联系 Antom 技术支持。

DEVICE_NOT_CONNECT

F

USB 连接失败。

  • 检查代码中是否已完成初始化连接。如果未完成,请执行初始化连接。
  • 检查 USB 连接两端是否已在代码中安全连接。如果未连接,请重新连接两个设备。

TIMEOUT_EXCEPTION

U

响应超时。

检查支付终端应用程序是否处于活动状态。如果未激活,请重新激活。

UNKNOWN_EXCEPTION

U

未知原因引起的接口调用失败。

使用 paymentRequestId 调用 inquiryPayment 接口查询最终支付结果。

UNKNOWN_EXCEPTION

U

解密支付终端返回的数据失败。

联系 Antom 技术支持。

UNKNOWN_EXCEPTION

U

消息格式无效。

联系 Antom 技术支持。

示例

以下代码展示了如何调用 inquiryPayment 接口:

PaymentManager.inquiryPayment(
    request,
    null,
    object : QueryPayResultListener {
        override fun result(result: QueryPayResultData) {
            runOnUiThread {
                findViewById<TextView>(R.id.tv_response).text = result.toString()
            }
        }
    }
)

以下代码展示了一个响应示例:

{
  "result":{
    "resultCode": "SUCCESS",
    "resultStatus": "S",
    "resultMessage": "Success."
  },
  "paymentRequestId": "pay_1089760038715669_1027757450XXXXX",
  "paymentId": "202502081140108001001888202003XXXXX",
  "paymentCreateTime": "2025-02-08T12:01:01+08:00",
  "paymentTime": "2025-02-08T12:01:01+08:00",
  "paymentStatus": "Success",
  "paymentAmount":{
    "currency": "SGD",
    "value": "50000"
  },
  "paymentMethod":"CARD"
}