針對透過 capture
進行的部分或整筆交易辦理退款。標頭中的 requestId
和 paymentIntegratorAccountId
的組合是冪等鍵,可用於識別這筆交易。
如果端點在處理要求時發生錯誤,來自此端點的回應主體應為
類型。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 |
必要項目:此為付款整合商帳戶 ID,定義這筆交易的合約限制。 |
captureRequestId |
必要項目:這筆交易的專屬 ID。這是 Google 在與這項要求相關聯的 |
currencyCode |
必要項目:採用 3 個字母組成的 ISO 4217 貨幣代碼 |
refundAmount |
|
回應主體
退款方法的回應物件。
如果成功,回應主體會含有以下結構的資料:
JSON 表示法 |
---|
{ "responseHeader": { object ( |
欄位 | |
---|---|
responseHeader |
必要項目:所有回應的通用標頭。 |
paymentIntegratorRefundId |
選用:此 ID 僅供整合商使用,由整合商產生。這是整合商知道這筆退款的 ID。 為了方便起見,匯款詳細資料已包含這個 ID。 |
result |
必要項目:這筆退款的結果。 |
rawResult |
選用:這筆退款的原始結果。有助於通知 Google 的風險引擎和分析結果。在拒絕代碼對應的情況下,資料有時會遺失。整合商可以選擇向 Google 提供原始代碼。舉例來說,信用卡支付平台 (整合商) 可使用這個欄位將實際從 VISA 網路收到的拒絕代碼傳送給 Google。在這種情況下, 如果 |
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 |
由於此要求已超過退款期限,因此我們無法處理退款。 |