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에 원시 코드를 제공할 수 있습니다. 예를 들어 신용카드 게이트웨이 (통합업체)는 이 필드를 사용하여 VISA 네트워크에서 수신한 거부 코드를 Google에 정확히 알릴 수 있습니다. 이 경우
|
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가 통합업체에서 보낸 내용과 일치하지 않습니다. |
OTP_ALREADY_USED |
OTP가 이미 사용되었습니다. |
RISK_DECLINED |
통합업체 측의 위험 확인으로 인해 거래가 거부되었습니다. 이 결제는 영구적으로 실패하지만 사용자의 결제 수단이 Google에서 해지되지는 않습니다. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
사용자의 계정에 거래 금액을 지불할 수 있는 유효한 결제 수단이 설정되어 있지 않습니다. |
FUNDING_SOURCE_UNAVAILABLE |
기본 발급기관 또는 자금 출처를 확인할 수 없으므로 기존 결제를 다시 시도해도 재시도할 수 없습니다. Google은 파트너가 4xx 또는 5xx 응답 코드를 반환하면 결제를 다시 시도합니다. 따라서 기본 자금 출처를 다시 사용할 수 있게 되었을 때 동일한 결제를 재시도할 수 있는 경우 파트너는 일반적으로 응답 코드 중 하나를 반환해야 합니다. 단, Google의 결제 재시도가 계속 실패하는 기술적인 이유가 있는 경우 파트너는 'FUNDING_SOURCE_UNAVAILABLE'을 반환하여 동일한 결제를 다시 시도해서는 안 된다고 Google에 알릴 수 있습니다. 참고: Google에서 requestId만 다른 방식으로 결제를 재시도할 수는 있지만 이 결제 요청은 거부됨으로 표시됩니다. |
MANDATE_NOT_ACTIVE |
이 캡처에 사용된 위임장이 더 이상 활성 상태가 아닙니다. 이 반환 값으로 인해 사용자의 위임장이 Google에서 종료됩니다. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
위임장 반복 결제를 위해 사용자에게 전송된 알림이 만료되었습니다. |