Method: disburseFunds

在付款处理方和客户帐号之间发起资金转移。标头中的 requestIdpaymentIntegratorAccountId 的组合是幂等键,可唯一标识此事务。此事务中的所有变更都会填充 disburseFundsRequestId 字段中的 requestId 值。

如果端点在处理请求时遇到错误,来自此端点的响应正文的类型应为 ErrorResponse

示例请求如下所示:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "liUrreQY233839dfFFb24gaQM",
    "requestTimestamp": "1502220434778"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "upiDetails": {
      "vpa": "foo@icici"
  },
  "transactionDescription": "Google - Music",
  "currencyCode": "INR",
  "amount": "208000000"
}

示例响应如下所示:


{
  "responseHeader": {
    "responseTimestamp": "1481900013178"
  },
  "paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA",
  "disburseFundsResult": {
    "disburseFundsResultCode": "SUCCESS"
  }
}

HTTP 请求

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

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "transactionDescription": string,
  "currencyCode": string,
  "amount": string,

  // Union field destinationFopDetails can be only one of the following:
  "upiDetails": {
    object (UpiDetails)
  }
  // End of list of possible types for union field destinationFopDetails.
}
字段
requestHeader

object (RequestHeader)

必需:所有请求的通用标头。

paymentIntegratorAccountId

string

必需:这是付款集成商帐号标识符,用于标识有关此交易的合同限制。

transactionDescription

string

必需:这是可显示在客户对账单上的交易说明。已本地化为 requestHeader 中的 userLocale。这种格式可以更改,恕不另行通知;且一律不得解析。

currencyCode

string

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

amount

string (Int64Value format)

必需:购买金额,以货币单位的千分之一表示。

联合字段 destinationFopDetails

destinationFopDetails 只能是下列其中一项:

upiDetails

object (UpiDetails)

可选:针对 UPI 付款方式的付款详细信息。

响应正文

付款方式的响应对象。

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

JSON 表示法
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorTransactionId": string,
  "disburseFundsResult": {
    object (DisburseFundsResult)
  }
}
字段
responseHeader

object (ResponseHeader)

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

paymentIntegratorTransactionId

string

必需:此标识符特定于集成商,由集成商生成。集成商通过这个标识符获知此交易。

为方便起见,此标识符已包含在汇款明细中

disburseFundsResult

object (DisburseFundsResult)

必需:付款调用的结果。

UpiDetails

有关收款目标 UPI 账号的详细信息。

JSON 表示法
{
  "vpa": string
}
字段
vpa

string

必需:用于通过 UPI 协议转账的用户虚拟付款地址 (VPA)。例如 foo@icici

DisburseFundsResult

有关付款最终结果的信息。

JSON 表示法
{
  "disburseFundsResultCode": enum (DisburseFundsResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string
  // End of list of possible types for union field FailureDetail.
}
字段
disburseFundsResultCode

enum (DisburseFundsResultCode)

必需:此付款的结果代码。

rawResult

object (RawResult)

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

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

联合字段 FailureDetail

FailureDetail 只能是下列其中一项:

transactionMaxLimit

string (Int64Value format)

可选:如果 disburseFundsResultCodeDISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT,则这是允许的最大交易的值。它用于面向用户的结构化消息发送和拒绝率分析。

此数量与原始 disburseFunds 方法调用的 currencyCode 相同

transactionMinLimit

string (Int64Value format)

可选:如果 disburseFundsResultCodeDISBURSEMENT_UNDER_TRANSACTION_LIMIT,则此值是允许的最小交易的值。它用于面向用户的结构化消息发送和拒绝率分析。

此数量与原始 disburseFunds 方法调用的 currencyCode 相同

DisburseFundsResultCode

付款调用的结果代码。

枚举
UNKNOWN_RESULT 切勿设置此默认值!
SUCCESS 付款成功。
DISBURSEMENT_UNDER_TRANSACTION_LIMIT 请求的付款金额不符合集成商每次交易的最低金额。如果使用此代码,请在 transactionMinLimit 字段中填充用于向用户显示消息的最低交易金额。
DISBURSEMENT_EXCEEDS_TRANSACTION_LIMIT 申请的付款金额超出了集成商每次交易的最高限额。如果使用此代码,请在 transactionMaxLimit 字段中填充用于向用户显示消息的交易限额。
ACCOUNT_CLOSED 用户在集成商处保留的帐号已关闭。此返回值会导致通过 Google 关闭用户付款方式。用户必须添加新付款方式。
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER 用户在集成商处的账号已关闭,涉嫌盗用账号。此返回值会导致通过 Google 关闭用户付款方式。用户必须添加新付款方式。
ACCOUNT_CLOSED_FRAUD 用户在集成商处保留的帐号由于欺诈而被关闭。此返回值会导致通过 Google 关闭用户付款方式。用户必须添加新付款方式。
ACCOUNT_ON_HOLD 用户的帐号处于保全状态。

RawResult

原始结果对象。

JSON 表示法
{
  "scope": string,
  "rawCode": string
}
字段
scope

string

可选: rawCode 的范围可以为空。

rawCode

string

必需:来自集成商或内部子系统的原始代码。