Method: refund

透過 capture 發起的全額或部分交易退款。標頭中的 paymentIntegratorAccountIdrequestId 的組合是冪等鍵,用於識別這筆交易。

如果端點在處理要求時發生錯誤,此端點的回應內文就應該是 ErrorResponse 類型。

要求範例如下:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
  "currencyCode": "INR",
  "refundAmount": "208000000"
}

回應範例如下:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "result": "SUCCESS",
  "paymentIntegratorRefundId": "cmVmdW5kIGlkZW50aWZpZXINCg"
}

HTTP 要求

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

要求主體

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

JSON 表示法
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "currencyCode": string,
  "refundAmount": string
}
欄位
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

必要:這是付款整合商帳戶 ID,用來定義這筆交易的合約限制。

captureRequestId

string

REQUIRED:這筆交易的專屬 ID。這是 Google 在 capture 呼叫期間與此要求相關聯的 requestId

currencyCode

string

必要:由 3 個字母組成的 ISO 4217 貨幣代碼

refundAmount

string (Int64Value format)

必要:退款金額,正好為貨幣單位的微量

回應主體

退款方法的回應物件。

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

JSON 表示法
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorRefundId": string,
  "result": enum (RefundResultCode),
  "rawResult": {
    object (RawResult)
  }
}
欄位
responseHeader

object (ResponseHeader)

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

paymentIntegratorRefundId

string

OPTIONAL:該識別碼是由整合商所產生。這是整合商所知的退款 ID。

為方便起見,這項資訊會顯示在匯款詳細資料中

result

enum (RefundResultCode)

REQUIRED:這筆退款的結果。

rawResult

object (RawResult)

OPTIONAL:這筆退款的原始金額。有助於通知 Google 的風險引擎和分析。在拒絕代碼中,資料有時會遺失。整合商可以選擇向 Google 提供原始代碼。舉例來說,信用卡支付平台 (整合商) 可能會使用這個欄位,向 Google 提供 VISA 網路傳送的確切拒絕代碼。在這種情況下,scope 會是「visa」,而 rawCode 則是 VISA 網路傳回的任何項目。

如果 result 不是 SUCCESS,這個值就必填

RefundResultCode

專屬結果代碼退款。

列舉
UNKNOWN_RESULT 不要設定這個預設值!
SUCCESS 退款成功。
NO_MONEY_LEFT_ON_TRANSACTION v1.refund 失敗,交易中沒有任何餘額。這通常代表整合商和 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 退款要求已超過允許的退款期限,因此無法處理。