Method: asynchronousCapture

在客户账号和集成商之间触发资金转移操作。集成商应确认请求,并执行需要完成的任何操作才能完成捕获(例如,向用户收集 PIN 码)。集成商将通过调用 CaptureResultNotification API 将拍摄的最终结果告知 Google。

标头中的 requestIdpaymentIntegratorAccountId 的组合是幂等键,可唯一标识此事务。对此交易(退款)的所有更改都会填充 captureRequestId 字段中的 requestId 值。

如果端点在处理请求时遇到错误,此端点的响应正文应为 ErrorResponse 类型。

示例请求如下所示:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
    "requestTimestamp": "1502220196077"
  },
  "paymentIntegratorAccountId": "InvisiCashIN_INR",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "728000000"
}

示例响应如下所示:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "ACKNOWLEDGED",
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}

HTTP 请求

POST https://www.integratorhost.example.com/v1/asynchronousCapture

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field fopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  },
  "tokenizedInstrumentDetails": {
    object (TokenizedInstrumentDetails)
  }
  // End of list of possible types for union field fopDetails.
}
字段
requestHeader

object (RequestHeader)

必需:所有请求的通用标头。

paymentIntegratorAccountId

string

必需:这是付款集成商账号标识符,用于标识有关此交易的合同限制。

transactionDescription

string

必需:这是可以显示在客户对账单上的交易说明。已本地化为 requestHeader 中的 userLocale。此格式可能会在不另行通知的情况下更改,并且绝不能进行解析。

currencyCode

string

必需:ISO 4217 货币代码(由 3 个字母组成)

amount

string (Int64Value format)

必需:购买金额,以货币单位的千分之一表示。

联合字段 fopDetails

fopDetails 只能是下列其中一项:

upiDetails

object (UpiDetails)

可选:特定于 UPI 付款方式的付款详细信息。

tokenizedInstrumentDetails

object (TokenizedInstrumentDetails)

可选:特定于令牌化付款方式的付款详细信息。

响应正文

拍摄方法的响应对象。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "result": enum (AsynchronousCaptureResultCode)
}
字段
responseHeader

object (ResponseHeader)

必需:所有响应的通用标头。

paymentIntegratorTransactionId

string

必需:此标识符专供集成商使用,由集成商生成。这是集成商用于识别此交易的标识符。

为方便起见,汇款详情中已包含此标识符

result

enum (AsynchronousCaptureResultCode)

必需:异步捕获调用的结果。

UpiDetails

有关要从中捕获的 UPI 账号的详细信息。

JSON 表示法
{
  "vpa": string
}
字段
vpa

string

必需:用户的虚拟付款地址 (VPA),用于通过 UPI 协议转账。例如 foo@icici

TokenizedInstrumentDetails

要从中提取数据的账号的详细信息。

JSON 表示法
{
  "googlePaymentToken": string
}
字段
googlePaymentToken

string

必需:这是两家公司将用于识别彼此购买交易的账号的令牌。

AsynchronousCaptureResultCode

asyncCapture 的结果代码。

枚举
UNKNOWN_RESULT 切勿设置此默认值!
ACKNOWLEDGED 已请求捕获,集成商将执行额外步骤来确定捕获是成功还是拒绝。集成商知道捕获结果后,会通过调用 captureResultNotification API 将结果告知 Google。
ACCOUNT_CLOSED

用户在集成商处拥有的账号已关闭。

返回此值将导致用户的付款方式被 Google 关闭。系统将强制要求用户重新执行关联流程以添加新的付款方式。

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

该用户在集成商处的账号已关闭,因为账号疑似被接管。

返回此值将导致用户的付款方式被 Google 关闭。系统将强制要求用户重新执行关联流程以添加新的付款方式。

ACCOUNT_ON_HOLD 此账号已暂停处理。
ACCOUNT_CLOSED_FRAUD

由于欺诈行为,该用户在集成商处的账号已被关闭。

返回此值将导致用户的付款方式被 Google 关闭。系统将强制要求用户重新执行关联流程以添加新的付款方式。