Method: refundResultNotification

在發出 refund 方法呼叫後,通知 Google 退款結果。

系統會在 refund 方法呼叫期間同步處理退款,但這個方法會向 Google 提供快速的備份訊號,以免同步呼叫在執行動作後失敗,但在系統可傳回結果前就傳回結果。這可以避免 Google 安排在日後重新嘗試而造成延遲。

refundRequestIdrefundResult 值為冪等,因此之後呼叫這個方法時,無法變更此值。

如果端點在處理要求時發生錯誤,這個端點的回應就會是 ErrorResponse 類型。

如果這個方法未傳回 HTTP 200,則這項查詢的回應不得為空白。回應主體空白時,附帶清楚說明的 ErrorResponse 可用於協助攻擊者瞭解其他整合商的付款整合商帳戶 ID。在這些情況下,如果簽署金鑰不符、找不到付款整合商 ID,或是加密金鑰不明,這個方法就會傳回含有空白主體的 HTTP 404。如果要求簽章可供驗證,系統會在回應主體中傳回與錯誤相關的額外資訊。

要求範例如下:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1481855928301"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "refundRequestId": "hH1T32PI86CpKwjuf6oD2r",
  "paymentIntegratorRefundId": "invisi/Id::xx__1243",
  "refundResult": "SUCCESS"
}

回應範例如下所示:


{
  "responseHeader": {
    "responseTimestamp": "1481855928376"
  },
  "result": "SUCCESS"
}

HTTP 要求

POST https://vgw.googleapis.com/secure-serving/gsp/v1/refundResultNotification/:PIAID

要求主體

要求主體的資料會採用以下結構:

JSON 表示法
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "refundRequestId": string,
  "refundResult": enum (RefundResultCode),
  "paymentIntegratorRefundId": string
}
欄位
requestHeader

object (RequestHeader)

必要項目:所有要求的通用標頭。

paymentIntegratorAccountId

string

必要項目:退款發生的付款整合商帳戶 ID。

refundRequestId

string

必要項目:這筆退款的專屬 ID,在呼叫 refund 方法時由 requestId 欄位建立。

refundResult

enum (RefundResultCode)

必要項目:這筆退款的結果。

paymentIntegratorRefundId

string

必要項目:此 ID 專屬於整合商,由整合商產生。這是整合商知道這筆退款的 ID。

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

回應主體

refundResultNotification 方法的回應物件。

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (RefundResultNotificationResultCode)
}
欄位
responseHeader

object (ResponseHeader)

必要項目:所有回應的通用標頭。

result

enum (RefundResultNotificationResultCode)

REQUIRED:呼叫的結果。

RefundResultCode

專屬結果代碼會退款。

列舉
UNKNOWN_RESULT 切勿設定這個預設值!
SUCCESS 退款成功。
NO_MONEY_LEFT_ON_TRANSACTION 退款失敗,交易中沒有餘額。一般來說,這代表整合商與 Google 之間的錯誤。Google 不應要求退款金額超過原始拍攝金額。
ACCOUNT_CLOSED

與整合商共用的帳戶已關閉。

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

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

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

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

ACCOUNT_CLOSED_FRAUD

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

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

ACCOUNT_ON_HOLD 使用者帳戶目前處於暫緩狀態,無法接受退款,但使用者日後或許可以透過帳戶接受退款。Google 日後可能會申請另一筆退款,但會重新申請 requestId,因此這項要求應視為已完成。
REFUND_EXCEEDS_MAXIMUM_BALANCE 目前無法處理退款,因為這會導致使用者的餘額超過允許的上限。Google 日後可能會申請另一筆退款,但會重新申請 requestId,因此這項要求應視為已完成。
REFUND_WINDOW_EXCEEDED 由於此要求已超過退款期限,因此我們無法處理退款。

RefundResultNotificationResultCode

refundResultNotification 方法的結果代碼。

列舉
UNKNOWN_RESULT 切勿設定這個預設值!
SUCCESS 退款結果通知已成功。