在發出 capture 或 asynchronousCapture 方法呼叫後,將擷取結果通知 Google。
此 captureRequestId 的 captureResult 值是等冪的,因此後續呼叫這個方法時就無法變更其值。
如果端點在處理要求時發生錯誤,這個端點的回應就會是 類型。ErrorResponse
如果這個方法未傳回 HTTP 200,則這項查詢的回應不得為空白。回應主體空白時,附帶清楚說明的 可用於協助攻擊者瞭解其他整合商的付款整合商帳戶 ID。在這些情況下,如果簽署金鑰不符、找不到付款整合商 ID,或是加密金鑰不明,這個方法就會傳回含有空白主體的 HTTP 404。如果要求簽章可供驗證,系統會在回應主體中傳回與錯誤相關的額外資訊。ErrorResponse
要求範例如下:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 1,
"revision": 0
},
"requestId": "KcgwSKrV76eVNDUbsZ4UA3",
"requestTimestamp": "1481852928293"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"captureRequestId": "awNaC510cefae3IJdNEvW2",
"captureResult": {
"captureResultCode": "SUCCESS"
}
}
回應範例如下所示:
{
"responseHeader": {
"responseTimestamp": "1481852928324"
},
"result": "SUCCESS"
}
HTTP 要求
POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID
要求主體
要求主體的資料會採用以下結構:
| JSON 表示法 |
|---|
{ "requestHeader": { object ( |
| 欄位 | |
|---|---|
requestHeader |
必要項目:所有要求的通用標頭。 |
paymentIntegratorAccountId |
必要項目:發生擷取的付款整合商帳戶 ID。 |
captureRequestId |
必要項目:這筆交易的專屬 ID。這是 Google 在與這項要求相關聯的 這個字串的長度上限為 100 個半形字元,而且只能包含「a-z」、「A-Z」、「0-9」、「:」、「-」和「_」等字元。 |
captureResult |
必要項目:這項擷取作業的結果。 |
paymentIntegratorTransactionId |
選用:此 ID 僅供整合商使用,由整合商產生。這是整合商瞭解這筆交易的 ID。 為了方便起見,匯款詳細資料已包含這個 ID。 |
回應主體
captureResultNotification 方法的回應物件。
如果成功,回應主體會含有以下結構的資料:
| JSON 表示法 |
|---|
{ "responseHeader": { object ( |
| 欄位 | |
|---|---|
responseHeader |
必要項目:所有回應的通用標頭。 |
result |
REQUIRED:呼叫的結果。 |
CaptureResult
與拍攝最終結果相關的資訊。
| JSON 表示法 |
|---|
{ "captureResultCode": enum ( |
| 欄位 | |
|---|---|
captureResultCode |
必要項目:此擷取作業的結果代碼。 |
rawResult |
OPTIONAL:擷取的原始結果。有助於通知 Google 的風險引擎和分析結果。在拒絕代碼對應的情況下,資料有時會遺失。整合商可以選擇向 Google 提供原始代碼。舉例來說,信用卡支付平台 (整合商) 可使用這個欄位將實際從 VISA 網路收到的拒絕代碼傳送給 Google。在這種情況下, 如果 |
聯集欄位
|
|
transactionMaxLimit |
選用:如果 這個量是與原始 |
transactionMinLimit |
OPTIONAL:如果 這個量是與原始 |
currentBalance |
選用:如果結果是 這個值必須與要求中的 |
CaptureResultCode
擷取的結果代碼。
| 列舉 | |
|---|---|
UNKNOWN_RESULT |
切勿設定這個預設值! |
SUCCESS |
拍攝成功。 |
CHARGE_UNDER_TRANSACTION_LIMIT |
要求的擷取金額與整合商的最低單筆交易金額不符。如果使用這組代碼,請在 transactionMinLimit 欄位填入最低交易金額,以便使用者傳送訊息。 |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
要求的擷取量超過整合商設定的單筆交易上限。如果使用這組代碼,請在 transactionMaxLimit 欄位填入交易上限,以便使用者傳送訊息。 |
CHARGE_EXCEEDS_DAILY_LIMIT |
使用者的帳戶已超過每日上限,因此目前無法用於購物。 |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
使用者的帳戶已超過每月使用上限,因此目前無法用於購物。 |
INSUFFICIENT_FUNDS |
這個帳戶的資金不足,無法保證這筆費用。 |
SUSPECTED_FRAUD |
整合商合理懷疑這是詐欺交易。 |
ACCOUNT_CLOSED |
與整合商一同保留的使用者帳戶已關閉。這個傳回值會關閉使用者的付款方式,並向 Google 關閉。系統將強制使用者新增付款方式。 |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
整合商的使用者的帳戶已遭關閉,疑似帳戶接管。這個傳回值會關閉使用者的付款方式,並向 Google 關閉。系統將強制使用者新增付款方式。 |
ACCOUNT_CLOSED_FRAUD |
您提供給整合商的帳戶因詐欺行為而遭到關閉。這個傳回值會關閉使用者的付款方式,並向 Google 關閉。系統將強制使用者新增付款方式。 |
ACCOUNT_ON_HOLD |
使用者帳戶為保留狀態。 |
OTP_NOT_MATCHED |
動態密碼與整合服務供應商傳送的資料不符。 |
OTP_ALREADY_USED |
動態密碼已有人使用。 |
CAPTURE_REQUEST_EXPIRED |
整合商擷取使用者資金所需的時間過長。Google 會將拒絕交易視為最終狀態,因此整合商必須確保不會在稍後擷取使用者資金,或是在拍攝成功後自動退款給使用者。 |
INVALID_PIN |
使用者提供的 PIN 碼無效。 |
OS_LOCK_FAILED |
此付款流程需要進行 OS 鎖定驗證,而使用者無法解鎖裝置。 |
PIN_ENTRY_ATTEMPTS_EXHAUSTED |
在這個付款流程中,必須輸入使用者 PIN 碼。使用者輸入 PIN 碼的次數已達上限,已經用完。 |
USER_EXITED_PAYMENT_FLOW |
使用者已取消所有付款嘗試 (可能在作業系統鎖定或輸入 PIN 碼)。 |
MONTHLY_FREQUENCY_LIMIT_EXCEEDED |
使用者的帳戶已超過每月交易嘗試上限,因此目前無法用於購物。 |
DECLINED_BY_ISSUER |
此拒絕代碼不應在穩定狀態下使用。這是一種暫時性的通用代碼,可在整合商遇到使用者付款方式的基礎發行機構核發的不明拒絕代碼時使用。當整合商決定更適當的結果代碼時,可以使用這個結果代碼,或協商在這個規格中加入新結果代碼時進行協商。 值得注意的是,這個拒絕代碼非常「真實」下降。Google 對這項決定都會永久拒絕。如果整合商傳回這項資訊,對方必須追蹤發卡機構的代碼的真正意義,並在發現代碼確實代表 如果這組拒絕代碼用於相同的基礎拒絕代碼達一定天數,Google 會將該代碼視為錯誤,並據此追蹤。若因合約錯誤而修正錯誤,也會採取相應的追蹤措施。 |
RawResult
原始結果物件。
| JSON 表示法 |
|---|
{ "scope": string, "rawCode": string } |
| 欄位 | |
|---|---|
scope |
OPTIONAL:rawCode 的範圍可留空。 |
rawCode |
必要項目:整合服務供應商或子系統中的原始程式碼。 |
CaptureResultNotificationResultCode
captureResultNotification 方法的結果代碼。
| 列舉 | |
|---|---|
UNKNOWN_RESULT |
切勿設定這個預設值! |
SUCCESS |
已成功處理擷取結果通知。 |