在發出 refund 方法呼叫後,通知 Google 退款結果。
系統會在 refund 方法呼叫期間同步處理退款,但這個方法會向 Google 提供快速的備份訊號,以免同步呼叫在執行動作後失敗,但在系統可傳回結果前就傳回結果。這可以避免 Google 安排在日後重新嘗試而造成延遲。
此 refundRequestId 的 refundResult 值為冪等,因此之後呼叫這個方法時,無法變更此值。
如果端點在處理要求時發生錯誤,這個端點的回應就會是 類型。ErrorResponse
如果這個方法未傳回 HTTP 200,則這項查詢的回應不得為空白。回應主體空白時,附帶清楚說明的 可用於協助攻擊者瞭解其他整合商的付款整合商帳戶 ID。在這些情況下,如果簽署金鑰不符、找不到付款整合商 ID,或是加密金鑰不明,這個方法就會傳回含有空白主體的 HTTP 404。如果要求簽章可供驗證,系統會在回應主體中傳回與錯誤相關的額外資訊。ErrorResponse
要求範例如下:
{
"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 |
必要項目:退款發生的付款整合商帳戶 ID。 |
refundRequestId |
必要項目:這筆退款的專屬 ID,在呼叫 |
refundResult |
必要項目:這筆退款的結果。 |
paymentIntegratorRefundId |
必要項目:此 ID 專屬於整合商,由整合商產生。這是整合商知道這筆退款的 ID。 為了方便起見,匯款詳細資料已包含這個 ID。 |
回應主體
refundResultNotification 方法的回應物件。
如果成功,回應主體會含有以下結構的資料:
| JSON 表示法 |
|---|
{ "responseHeader": { object ( |
| 欄位 | |
|---|---|
responseHeader |
必要項目:所有回應的通用標頭。 |
result |
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 |
退款結果通知已成功。 |