- HTTP 요청
- 요청 본문
- 응답 본문
- MandateDetails
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- MandateWithNotificationDetails
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- CaptureContext
<ph type="x-smartling-placeholder">
- </ph>
- JSON 표현
- CaptureResultCode
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 |
필수: 3자리 ISO 4217 통화 코드 |
amount |
필수: 구매 금액(통화 단위의 마이크로)입니다. |
captureContext |
필수: 이 캡처에 관한 컨텍스트입니다. |
통합 필드 fopDetails . 필수: Capture 거래의 FOP 세부정보입니다. fopDetails 은 다음 중 하나일 수 있습니다. |
|
googlePaymentToken |
두 회사가 상호 구매용 계정을 식별하는 데 사용하는 토큰입니다. |
mandateDetails |
위임장별 결제 세부정보입니다. |
mandateWithNotificationDetails |
|
통합 필드
|
|
authenticationRequestId |
선택사항: 연결된 인증 요청의 이 속성이 있으면 사용자가 이 호출 직전에 인증되었거나 자동 결제 일정이 설정될 때 인증된 것입니다. |
otpVerification |
선택사항: |
응답 본문
캡처 메서드의 응답 객체입니다.
성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.
JSON 표현 |
---|
{ "responseHeader": { object ( |
필드 | |
---|---|
responseHeader |
REQUIRED: 모든 응답의 공통 헤더입니다. |
paymentIntegratorTransactionId |
선택사항: 이 식별자는 통합업체별로 지정되며 통합업체에서 생성합니다. 이 ID는 통합업체가 이 트랜잭션을 아는 식별자입니다. 편의를 위해 송금 세부정보에 이 식별자가 포함되어 있습니다. |
userMessage |
지원 중단됨: 결과가 |
result |
REQUIRED: 이 캡처의 결과입니다. |
rawResult |
선택사항: 캡처의 원시 결과입니다. Google의 위험 엔진 및 분석에 정보를 제공하는 데 사용됩니다. 거부 코드 매핑 시 데이터가 손실될 수 있습니다. 통합업체는 Google에 원시 코드를 제공할 수 있습니다. 예를 들어 신용카드 게이트웨이 (통합업체)는 이 입력란을 사용하여 VISA 네트워크에서 수신한 거부 코드를 Google에 정확히 알릴 수 있습니다. 이 경우 이 값은 |
transactionLimit |
OPTIONAL: Result가 이는 요청의 |
currentBalance |
선택사항: Result가 이 값의 통화는 요청의 |
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 |
위임장 반복 결제와 관련하여 사용자에게 전송된 알림이 만료되었습니다. |