프로토콜 표준

이 API는 일련의 HTTP API 표준을 따르며 멱등성이 있어서 통합하지 않아도 됩니다

Google 호스팅 URL

각 Google 호스팅 방법에 대한 문서에서는 기본 URL을 제공하며 메서드 이름과 주 버전 번호가 포함됩니다. 전체 URL이 생성됨 호출자의 결제 통합업체 계정 ID를 있습니다. 예를 들어 Google 호스팅 에코 메서드에 관한 문서는 다음과 같습니다. 는 URL을 지정합니다.

https://vgw.googleapis.com/secure-serving/gsp/v1/echo

발신자의 결제 통합업체 계정 ID가 INTEGRATOR_1인 경우 다음을 추가합니다. 를 추가하여 다음 양식을 작성합니다.

</ph> https://vgw.googleapis.com/secure-serving/gsp/v1/echo/INTEGRATOR_1

파트너 호스팅 URL

각 파트너 호스팅 API 메서드에 대한 문서에서는 기본 URL을 제공합니다. 메서드 이름과 주 버전 번호가 포함됩니다. 피처스토어에 결제 통합업체 계정 ID (PIAID) 을 입력합니다.

샌드박스 및 프로덕션 환경

Google은 샌드박스 (개발 및 결제용)에서 Standard Payments API를 프로덕션에 사용할 수 있습니다. Google 샌드박스 환경의 요청 실제 재정적 책임이 발생하지 않습니다. 샌드박스와 프로덕션 환경은 완전히 별개이며 키나 거래 정보

Google은 샌드박스가 지속적으로 사용 가능할 것으로 첫 번째 변경사항과 새로운 기능을 테스트할 수 있습니다.

Google의 샌드박스 기본 경로

</ph> https://vgw.sandbox.google.com/secure-serving/gsp/

Google의 프로덕션 기본 경로

</ph> https://vgw.googleapis.com/secure-serving/gsp/

이 가이드에서는 프로덕션 엔드포인트를 사용합니다.

콘텐츠 유형 및 인코딩

PGP 암호화를 사용하는 메시지 페이로드는 콘텐츠 유형을 사용해야 합니다. application/octet-stream; charset=utf-8 PGP 요청 기관은 에 정의된 대로 base64url 인코딩을 사용하여 전송되어야 합니다. rfc4648 §5 JWE 암호화를 사용하는 메시지 페이로드는 콘텐츠 유형을 사용해야 합니다. application/jose; charset=utf-8입니다. 압축 직렬화 옵션 최종 요청 본문의 인코딩을 처리합니다.

HTTP 상태 코드

Standard Payments API는 HTTP 200 상태 코드를 반환하도록 설계되었습니다. 서버에서 처리할 수 있는 모든 요청에 사용합니다 여기에는 비즈니스 관점에서 성공 및 거부된 요청을 처리하거나 애플리케이션 로직에 액세스할 수 있습니다 처리할 수 없는 요청은 HTTP 200 상태 코드는 Google과 있습니다. 대신 API 응답은 선택적 ErrorResponse 객체와 함께 아래 코드를 사용하세요.

HTTP 오류 및 이유
400 BAD REQUEST

클라이언트가 잘못된 인수를 지정했습니다.

이는 시스템이 작업 실행에 필요한 상태가 아닙니다.

시스템 상태가 될 때까지 요청 재시도가 성공할 수 없는 경우에 사용하세요. 명시적으로 수정되었습니다. 예를 들어 다음과 같은 이유로 환불 요청이 실패한 경우 존재하지 않는 캡처를 참조하므로 재시도할 수 없습니다. 스테이트리스(Stateless) 컨테이너를 유지할 수 있습니다

401 UNAUTHORIZED

요청에 연산으로 해석됩니다. 예를 들어 유효하지 않은 서명이나 알 수 없는 서명은 401을 반환합니다

403 FORBIDDEN / PERMISSION DENIED

호출자에 지정한 작업을 실행할 권한이 없습니다.

404 NOT FOUND

결제 또는 사용자와 같은 일부 요청 항목을 찾을 수 없습니다.

409 CONFLICT / ABORTED

작업이 취소되었습니다. 일반적으로 다음과 같은 동시 실행 문제로 인해 발생합니다. 시퀀서 검사 실패, 트랜잭션 취소 등

412 PRECONDITION FAILED

이 코드는 멱등성 키가 사용되고 있는 상황에서 다른 매개변수로 재사용됩니다.

429 RESOURCE EXHAUSTED / TOO MANY REQUESTS

일부 시스템 리소스가 소진되었습니다.

499 CANCELLED

작업이 취소되었습니다. 대개 호출자에 의해 취소됩니다.

500 INTERNAL ERROR

내부 오류가 발생했습니다. 즉, 기본 시스템에서 예상하는 일부 불변량 깨졌습니다.

501 UNIMPLEMENTED

이 서비스에서 작업이 구현되거나 지원되지 않거나 사용 설정되지 않았습니다.

503 UNAVAILABLE

현재 서비스를 사용할 수 없습니다. 일시적인 오류일 가능성이 높으며 다시 시도하여 수정할 수 있습니다.

504 GATEWAY TIMEOUT / DEADLINE EXCEEDED

작업을 완료하기 전에 기한이 지났습니다. Kubernetes에서 변경할 수 없는 경우, 이 오류는 작업이 완료되었습니다. 예를 들어 성공적인 응답 서버로부터 얻는 데이터가 전송되는 데 걸리는 시간만큼 지연되었을 수 있습니다. 만료됩니다.

요청 멱등성

요청 멱등성은 표준 결제에서 가장 중요한 전략입니다. Google과 파트너 간의 시스템 상호작용을 보장하는 데 사용되는 API는 내결함성을 제공합니다 멱등적 요청은 다른 요청에도 여러 번 전송될 수 있지만 단일 요청과 효과가 같습니다. 이 전략은 안전하게 재시도하여 Google 시스템이 리소스의 상태를 나타냅니다

Google Cloud API는 멱등성을 활용하여 다음을 수행합니다.

  • 모든 작업을 쉽게 추적하고 추적할 수 있도록 하여 조정 문제를 줄입니다. 감사할 수 있습니다
  • 서로 동일한 여러 요청이 전송되도록 하여 동일한 클라이언트가 다른 최종 상태로 이어지지 않습니다.
  • 요청이 격리된 상태로 이해될 수 있도록 하여 상태를 최소화하고, 서버 부하를 제거하여 성능 및 처리량 개선을 위해 데이터 보관
  • 요청이 재시도인지 여부를 나타내기 위해 추가 필드를 사용하지 않아도 됩니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

예 1: 응답을 수신하기 전에 연결 끊김

시나리오:

  1. Google이 통합업체에 요청을 보냅니다.
  2. 통합업체 서버가 이 요청을 받아 성공적으로 처리합니다.
  3. Google 서버가 2단계에서 응답을 받기 전에 전원이 끊깁니다.
  4. Google의 서버 전원이 복구되고 동일한 요청이 전송됩니다. 매개변수가 모두 같지만 요청 ID와 요청 세부정보는 동일하지만 requestTimestamp)를 통합업체의 서버로 전송합니다.

결과:

이 경우 통합업체 서버는 2단계입니다. responseTimestamp를 제외한 모든 매개변수가 동일하기 때문입니다. 부작용은 2단계에서 한 번만 발생합니다. 4단계에는 부작용이 없습니다.

예 2: 유지보수가 진행 중인 서버에 전송된 요청

시나리오:

  1. 통합업체 서버의 데이터베이스가 유지보수를 위해 중단되었습니다.
  2. Google이 통합업체에 요청을 보냅니다.
  3. 통합업체가 UNAVAILABLE 상태 코드를 올바르게 반환합니다.
  4. Google 서버가 응답을 수신하고 재시도를 예약합니다.
  5. 통합업체 서버의 데이터베이스가 다시 온라인 상태가 됩니다.
  6. Google이 2단계에서 요청을 다시 보냅니다 (동일한 요청 ID 및 요청 세부정보). requestTimestamp)를 업데이트했습니다. 두 요청의 요청 ID는 는 동일해야 합니다.
  7. 통합업체 서버가 요청을 수신하고 그에 따라 OK 상태 코드를 반환합니다. 완전한 응답을 제공할 수 있습니다.

결과:

이 경우 통합업체 서버는 7단계에서 요청을 처리해야 하며 HTTP 503 (UNAVAILABLE)를 반환합니다. 대신 통합업체 서버는 요청을 처리하고 적절한 메시지와 함께 OK를 반환합니다. 참고로 UNAVAILABLE입니다. Google은 다음과 같이 반복적으로 요청할 수 있습니다. 있습니다. 각 요청에서 3단계와 비슷한 메시지를 표시합니다. 결국 6단계와 7단계가 발생합니다.

예 3: 복구 오류로 인해 재시도한 메시지가 초기 메시지와 일치하지 않음

시나리오:

  1. Google이 통합업체에 요청을 보냅니다.
  2. 통합업체 서버가 이 요청을 받아 성공적으로 처리합니다.
  3. Google 서버가 2단계에서 응답을 받기 전에 전원이 끊깁니다.
  4. Google의 서버 전원이 복구되고 동일한 요청을 전송하려고 시도합니다. 안타깝게도 일부 매개변수가 다릅니다.

결과:

이 경우 통합업체 서버는 HTTP 412로 응답합니다. (PRECONDITION FAILED) 오류 코드 확인할 수 있습니다.