inquiryPayment
POS 调用 inquiryPayment 接口来查询支付状态,通常在 POS 未从支付终端收到交易响应时使用。
方法签名
调用此方法时,请使用以下标准方法签名格式:
fun inquiryPayment(
queryPaymentRequest: QueryPaymentRequest,
options: RequestOptions? = null,
callBack: QueryPayResultListener? = null
)参数
参数名称 | 类型 | 是否必需 | 描述 |
queryPaymentRequest | 是 | 包含查询支付结果参数的对象。 | |
options | 否 | 包含接口请求中可选参数的对象。 | |
callback | 否 | 用于返回查询结果的回调。详细信息请参阅 callback。 |
callback
参数名称 | 类型 | 是否必需 | 描述 |
result | 否 | 表示查询支付结果的结果。 |
返回值
参数名称 | 类型 | 是否必需 | 描述 |
result | 是 | 接口调用的结果。 | |
paymentRequestId | String | 是 | 由 POS 提供商定义的用于标识支付请求的唯一 ID。
|
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 | 是 | 表示支付的最终状态。有效值为:
|
paymentAmount | 是 | 商户请求以订单币种接收的支付金额。 | |
paymentMethod | String | 是 | 商户或收单机构用于收取付款的支付方式。请参阅支持的支付方式了解更多信息。 |
结果码
结果码 | 状态码 | 结果信息 | 后续操作 |
|
| 成功 | 无需后续操作。 |
|
| 发生常规业务故障。请勿重试。 | 联系 Antom 技术支持。 |
|
| 数据格式无效。 | 联系 Antom 技术支持。 |
|
| 公钥配对失败。 | 联系 Antom 技术支持。 |
PARAM_ILLEGAL |
| 参数名称或值不符合指定要求。结果消息会根据具体错误而有所不同。 | 检查请求参数(包括头部参数和主体参数)是否正确有效。 |
|
| 支付终端未登录。 | 登录支付终端。 |
|
| 支付终端繁忙。 | 稍后重试。 |
|
| 支付不存在。 | 联系 Antom 技术支持。 |
|
| USB 连接失败。 |
|
|
| 响应超时。 | 检查支付终端应用程序是否处于活动状态。如果未激活,请重新激活。 |
|
| 未知原因引起的接口调用失败。 | 使用 paymentRequestId 调用 inquiryPayment 接口查询最终支付结果。 |
|
| 解密支付终端返回的数据失败。 | 联系 Antom 技术支持。 |
|
| 消息格式无效。 | 联系 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"
}