Method: refund

退还通过 capture 发起的部分或全部交易。标头中的 requestIdpaymentIntegratorAccountId 的组合是幂等键,用于唯一标识此事务。

如果端点在处理请求时遇到错误,此端点的响应正文应为 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

必需:此交易的唯一标识符。这是 Google 在与此请求关联的 capture 调用期间生成的 requestId

currencyCode

string

必需:ISO 4217 货币代码(由 3 个字母组成)

refundAmount

string (Int64Value format)

必需:退款金额,以货币单位的微单位(正数)表示。

响应正文

退款方法的响应对象。

如果成功,响应正文将包含结构如下的数据:

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

object (ResponseHeader)

必需:所有响应的通用标头。

paymentIntegratorRefundId

string

可选:此标识符专用于集成商,由集成商生成。这是集成商知道这笔退款的标识符。

为方便起见,汇款详情中已包含此标识符

result

enum (RefundResultCode)

必需:本次退款的结果。

rawResult

object (RawResult)

可选:此退款的原始结果。用于帮助了解 Google 的风险引擎和分析数据。在拒绝代码映射的情况下,数据有时会丢失。集成商可以选择向 Google 提供原始代码。例如,信用卡网关(集成商)可能会使用此字段向 Google 传达从 VISA 网络收到的确切拒绝代码。在这种情况下,scope 将为“visa”rawCode 将是 VISA 网络返回的值。

如果 result 不是 SUCCESS,则此值为必需值。

RefundResultCode

唯一结果代码会退款。

枚举
UNKNOWN_RESULT 切勿设置此默认值!
SUCCESS 退款成功。
NO_MONEY_LEFT_ON_TRANSACTION v1.refund 失败,此交易已无剩余资金。通常,这表示集成商与 Google 之间存在 bug。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 由于此申请已超出允许的退款期限,因此无法处理退款。