在 Google 持有的客户帐号与付款处理方之间发起资金转移。标头中的 requestId
和 paymentIntegratorAccountId
的组合是幂等键,可唯一标识此事务。此交易(退款)中的所有变更都会填充 captureRequestId
字段中的 requestId
值。
如果端点在处理请求时遇到错误,来自此端点的响应正文的类型应为
。ErrorResponse
示例请求如下所示:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
示例响应如下所示:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
HTTP 请求
POST https://www.integratorhost.example.com/v1/capture
请求正文
请求正文中包含结构如下的数据:
JSON 表示法 |
---|
{ "requestHeader": { object ( |
字段 | |
---|---|
requestHeader |
必需:所有请求的通用标头。 |
paymentIntegratorAccountId |
必需:这是付款集成商帐号标识符,用于标识有关此交易的合同限制。 |
transactionDescription |
必需:这是可显示在客户对账单上的交易说明。已本地化为 |
currencyCode |
必需:ISO 4217 货币代码(由 3 个字母组成) |
amount |
|
captureContext |
必需:有关此捕获的上下文。 |
联合字段 fopDetails 。必需:此 Capture 事务的 FOP 详细信息。fopDetails 只能是下列其中一项: |
|
googlePaymentToken |
两家公司将用来标识彼此之间用于购买交易的帐号的令牌。 |
mandateDetails |
授权书特有的付款信息。 |
mandateWithNotificationDetails |
授权书特有的付款详细信息,其中必须提供 |
联合字段
|
|
authenticationRequestId |
可选:关联的身份验证请求的 如果存在该字段,则表示用户在此调用之前立即通过了身份验证,或者在设置自动付款时间安排时通过了身份验证。 |
otpVerification |
可选:验证通过 |
响应正文
拍摄方法的响应对象。
如果成功,响应正文将包含结构如下的数据:
JSON 表示法 |
---|
{ "responseHeader": { object ( |
字段 | |
---|---|
responseHeader |
必需:所有响应的通用标头。 |
paymentIntegratorTransactionId |
可选:此标识符特定于集成商,由集成商生成。集成商通过这个标识符获知此交易。 为方便起见,此标识符已包含在汇款明细中 |
userMessage |
已弃用:当结果不是 |
result |
必需:此捕获的结果。 |
rawResult |
可选:此拍摄的原始结果。用于帮助了解 Google 的风险引擎和分析数据。在拒绝代码映射的情况下,数据有时会丢失。集成商可以选择向 Google 提供原始代码。例如,信用卡网关(集成商)可能会使用此字段向 Google 传达从 VISA 网络收到的确切拒绝代码。在这种情况下, 如果 |
transactionLimit |
可选:如果结果为 此值必须是相对于请求 |
currentBalance |
可选:如果结果为 此值必须采用与请求中的 |
MandateDetails
要从中捕获的授权书的详细信息。
JSON 表示法 |
---|
{ "mandateId": string } |
字段 | |
---|---|
mandateId |
必需:在 |
MandateWithNotificationDetails
有关需要获取的授权书的详细信息,以及必要的通知详细信息。
JSON 表示法 |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
字段 | |
---|---|
mandateId |
必需:在 |
upcomingTransactionNotificationId |
必需: |
CaptureContext
此对象可提供有关如何请求捕获的上下文。
JSON 表示法 |
---|
{ "userIpAddress": string } |
字段 | |
---|---|
userIpAddress |
可选:如果购买交易是由用户在会话中进行的,则此值为用户设备的 IP 地址。如果用户未处于会话中,此字段将为空。如果特定协定未规定此字段的必要性,则此字段将始终为空。 |
CaptureResultCode
捕获的结果代码。
枚举 | |
---|---|
UNKNOWN_RESULT |
切勿设置此默认值! |
SUCCESS |
成功拍摄,交付商品。 |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
此捕获请求的 amount 超出了每次交易的限制。如果使用此代码,请填写 transactionLimit 字段进行用户消息传递。 |
CHARGE_EXCEEDS_DAILY_LIMIT |
此账号已超出每日上限,因此目前无法用于购买。 |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
此账号已超出每月限额,因此目前无法用于购买。 |
CHARGE_UNDER_LIMIT |
此拍摄请求的 amount 未达到最低交易金额要求。 |
INSUFFICIENT_FUNDS |
此账号资金不足,无法保证此次捕获。 |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
此账号不支持所请求的币种。 |
ACCOUNT_CLOSED |
该用户在集成商处持有的帐号已被关闭。 返回此值将导致用户付款工具被 Google 关闭。用户必须再次完成关联流程,以添加新付款方式。 |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
用户在集成商处的账号已关闭,疑似盗用账号。 返回此值将导致用户付款工具被 Google 关闭。用户必须再次完成关联流程,以添加新付款方式。 |
ACCOUNT_ON_HOLD |
该帐号处于暂停状态。 |
ACCOUNT_CLOSED_FRAUD |
用户在集成商处保留的帐号由于欺诈而被关闭。 返回此值将导致用户付款工具被 Google 关闭。用户必须再次完成关联流程,以添加新付款方式。 |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
帐号处于有效状态,但用户已在集成商方面使 GPT 失效。 返回此值将导致用户付款工具被 Google 关闭。用户必须再次完成关联流程,以添加新付款方式。 |
TOKEN_REFRESH_REQUIRED |
如果返回,则用户需要完成刷新流程。 |
OTP_NOT_MATCHED |
动态密码与集成商发送的动态密码不一致。 |
OTP_ALREADY_USED |
动态密码已使用。 |
RISK_DECLINED |
交易已被拒绝,因为集成商采取了风险检查。 此付款永久失败,但用户所用付款方式在 Google 被关闭。 |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
用户的帐号中未配置任何能够支付交易的有效资金来源。 |
FUNDING_SOURCE_UNAVAILABLE |
基础发卡机构或资金来源不可用,并且重试此现有付款不会成功。 当合作伙伴返回 4xx 或 5xx 响应代码时,Google 会重新尝试付款。因此,如果当底层资金来源再次可用时,如果同一付款重试成功,合作伙伴通常应返回这些响应代码之一。但是,如果出于技术原因导致 Google 重试付款失败,合作伙伴可以返回“FUNDING_SOURCE_UNAVAILABLE”,以告知 Google 不应重试同一笔付款。 注意:Google 仍可能会重试此次付款,只是会使用不同的 requestId,但此付款请求将被标记为“已拒绝”。 |
MANDATE_NOT_ACTIVE |
用于此次捕获的授权书已失效。此返回值会导致用户的授权书付款方式被 Google 关闭。 |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
之前向用户发送的定期授权书付款通知已过期。 |