Method: asynchronousCapture

觸發客戶帳戶與整合服務供應商之間的資金轉移作業。整合商應確認要求,並執行任何必要動作才能完成擷取 (例如向使用者收集 PIN 碼)。整合商會呼叫 CaptureResultNotification API,通知 Google 拍攝的最終結果。

標頭與 paymentIntegratorAccountId 的組合 requestId 是冪等鍵,可以用來識別這筆交易。這筆交易的所有異動 (退款) 都會在 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

必要項目:此付款整合商帳戶 ID,可識別這筆交易的合約限制。

transactionDescription

string

必要項目:可填入客戶對帳單中的交易說明。已翻譯成 requestHeader 中的 userLocale。此格式可能會在未通知的情況下變更,且一律不得剖析。

currencyCode

string

必要項目:採用 3 個字母組成的 ISO 4217 貨幣代碼

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

必要項目:此 ID 專屬於整合商,由整合商產生。這是整合商瞭解這筆交易的 ID。

為了方便起見,匯款詳細資料已包含這個 ID。

result

enum (AsynchronousCaptureResultCode)

必要項目:非同步擷取呼叫的結果。

UpiDetails

要擷取哪個 UPI 帳戶的詳細資料。

JSON 表示法
{
  "vpa": string
}
欄位
vpa

string

必要項目:使用者透過 UPI 通訊協定轉移款項時使用的虛擬收款地址 (VPA)。例如 foo@icici

TokenizedInstrumentDetails

要擷取哪個帳戶的詳細資料。

JSON 表示法
{
  "googlePaymentToken": string
}
欄位
googlePaymentToken

string

必要項目:兩家公司彼此交易時所用的權杖會用來識別帳戶。

AsynchronousCaptureResultCode

非同步擷取的結果代碼。

列舉
UNKNOWN_RESULT 切勿設定這個預設值!
ACKNOWLEDGED 已提出要求,整合服務商會執行額外步驟,判斷是否是拍攝成功或遭拒。整合商知道拍攝結果後,將呼叫 captureResultNotification API 將結果通知 Google。
ACCOUNT_CLOSED

與整合商合作的帳戶已關閉。

如果傳回這個值,系統就會透過 Google 關閉使用者的付款方式。系統會要求使用者再次完成關聯流程,以新增付款方式。

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

整合商的使用者的帳戶已遭關閉,疑似帳戶接管。

如果傳回這個值,系統就會透過 Google 關閉使用者的付款方式。系統會要求使用者再次完成關聯流程,以新增付款方式。

ACCOUNT_ON_HOLD 帳戶目前處於保留狀態。
ACCOUNT_CLOSED_FRAUD

您提供給整合商的帳戶因詐欺行為而遭到關閉。

如果傳回這個值,系統就會透過 Google 關閉使用者的付款方式。系統會要求使用者再次完成關聯流程,以新增付款方式。