pay

pay 接口由您的 POS 调用以创建支付请求。在调用此接口前,请确保支付终端已准备就绪可接收支付请求。

方法签名

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

copy
fun pay(
    payRequest: PayRequest,
    options: RequestOptions? = null,
    callBack: PayResultListener? = null
)

参数

参数名称

类型

是否必需

描述

payRequest

PayRequest

包含创建支付请求参数的对象。

options

RequestOptions

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

callBack

PayResultListener

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

callback

参数名称

类型

是否必需

描述

result

PayResultData

表示支付结果。 

返回值

参数名称

类型

是否必需

描述

result

Result

接口调用的结果。

paymentId

String

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

paymentReceipt

Receipt

支付成功后提供给商户和买家的收据信息。

  • 信息以键值结构提供。在卡支付场景中,通过 customerReceiptcashierReceipt 返回值。
  • 在扫码支付场景中,paymentReceipt 返回空值。
copy
{
    "cashierReceipt": "{\"acquirerMerchantId\":\"0000000001XXXXX\",\"acquirerProcessTime\":\"2025-05-13T13:19:51Z\",\"acquirerTerminalId\":\"911XXXXX\",\"aid\":\"A00000000XXXXX\",\"applicationCryptogram\":\"5AC388057A1XXXXX\",\"applicationLabel\":\"VISA CREDIT\",\"approvalCode\":\"0XXXXX\",\"cardBrand\":\"VISA\",\"cardNo\":\"47617300000XXXXX\",\"cvm\":\"NO_CVM\",\"posEntryMode\":\"CONTACTLESS\",\"rrn\":\"2827948XXXXX\",\"tvr\":\"00000XXXXX\"}",
    "customerReceipt": "{\"acquirerMerchantId\":\"0000000001XXXXX\",\"acquirerProcessTime\":\"2025-05-13T13:19:51Z\",\"acquirerTerminalId\":\"911XXXXX\",\"aid\":\"A00000000XXXXX\",\"applicationCryptogram\":\"5AC388057A1XXXXX\",\"applicationLabel\":\"VISA CREDIT\",\"approvalCode\":\"0XXXXX\",\"cardBrand\":\"VISA\",\"cardNo\":\"47617300000XXXXX\",\"cvm\":\"NO_CVM\",\"posEntryMode\":\"CONTACTLESS\",\"rrn\":\"2827948XXXXX\",\"tvr\":\"00000XXXXX\"}"

结果码

结果码

状态码

结果信息

后续操作

SUCCESS

S

成功

无需后续操作。

PROCESS_FAIL

F

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

联系 Antom 技术支持。

PROCESS_FAIL

F

数据格式无效。

联系 Antom 技术支持。

PROCESS_FAIL

F

公钥配对失败。

联系 Antom 技术支持。

PARAM_ILLEGAL

F

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

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

TERMINAL_NOT_LOGIN

F

支付终端未登录。

登录支付终端。

PAYMENT_METHOD_NOT_SUPPORT

F

不支持该支付方式。

选择其他支付方式。

TERMINAL_BUSY

F

支付终端繁忙。

稍后重试。

PAYMENT_FAIL

F

支付失败。

调用 inquiryPayment 接口查询最终支付状态,或在支付终端上手动检查支付状态并在 POS 上手动更新支付状态。如果上述方法无效,请联系 Antom 技术支持以排查问题。

DEVICE_NOT_CONNECT

F

USB 连接失败。

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

TIMEOUT_EXCEPTION

U

响应超时。

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

UNKNOWN_EXCEPTION

U

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

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

UNKNOWN_EXCEPTION

U

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

联系 Antom 技术支持。

UNKNOWN_EXCEPTION

U

消息格式无效。

联系 Antom 技术支持。

示例

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

copy
PaymentManager.pay(
    request,
    RequestOptions(120000L),
    object : PayResultListener {
        override fun result(result: PayResultData) {
            findViewById<TextView>(R.id.tv_response).post {
                findViewById<TextView>(R.id.tv_response).text = result.toString()
            }
        }


    }
)

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

copy
{
    "result":{
        "resultCode": "SUCCESS",
        "resultStatus": "S",
        "resultMessage": "Success."
    },
    "paymentId": "201906081140108001001888202003XXXXX",
    "paymentReceipt":{
        "cashierReceipt": "{\"acquirerMerchantId\":\"0000000001XXXXX\",\"acquirerProcessTime\":\"2025-05-13T13:19:51Z\",\"acquirerTerminalId\":\"911XXXXX\",\"aid\":\"A00000000XXXXX\",\"applicationCryptogram\":\"5AC388057A1XXXXX\",\"applicationLabel\":\"VISA CREDIT\",\"approvalCode\":\"0XXXXX\",\"cardBrand\":\"VISA\",\"cardNo\":\"47617300000XXXXX\",\"cvm\":\"NO_CVM\",\"posEntryMode\":\"CONTACTLESS\",\"rrn\":\"2827948XXXXX\",\"tvr\":\"00000XXXXX\"}",
        "customerReceipt": "{\"acquirerMerchantId\":\"0000000001XXXXX\",\"acquirerProcessTime\":\"2025-05-13T13:19:51Z\",\"acquirerTerminalId\":\"911XXXXX\",\"aid\":\"A00000000XXXXX\",\"applicationCryptogram\":\"5AC388057A1XXXXX\",\"applicationLabel\":\"VISA CREDIT\",\"approvalCode\":\"0XXXXX\",\"cardBrand\":\"VISA\",\"cardNo\":\"47617300000XXXXX\",\"cvm\":\"NO_CVM\",\"posEntryMode\":\"CONTACTLESS\",\"rrn\":\"2827948XXXXX\",\"tvr\":\"00000XXXXX\"}"
    }
}