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

必需:用户的虚拟付款地址 (VPA),用于通过 UPI 协议转账。例如 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

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