샘플 토큰으로 테스트

이 페이지에서는 샘플 토큰을 사용하여 통합을 테스트하는 방법에 대해 설명합니다.

샘플 토큰 생성

직접 통합의 경우 서버에서 토큰 복호화를 테스트하려면 PaymentsClient 인스턴스를 구성할 때 환경을 TEST로 설정하여 샘플 토큰을 생성하면 됩니다.

PaymentsClient 인스턴스를 구성할 때 환경을 TEST로 설정하면 loadPaymentData 호출이 평상시처럼 작동하고 사용자에게 실제 카드 중 하나를 선택하도록 요청합니다. 하지만 실제로는 선택한 카드에서 실제 정보를 반환하지 않습니다. 그 대신 결과 토큰에 항상 일정한 페이로드가 포함됩니다.

서명 확인

TEST 환경에서 생성된 토큰은 이전에 Google에 전송된 테스트 공개 키로 암호화됩니다.

토큰은 Google의 테스트 키로 서명됩니다. Tink를 사용하는 경우 .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST)PaymentMethodTokenRecipient 객체를 빌드할 때 설정되었는지 확인합니다.

복호화된 페이로드

샘플 토큰이 복호화되면 일반 텍스트 페이로드가 수신됩니다. 페이로드 구조는 선택한 카드가 토큰화되어 Google Pay에 추가되었는지 여부에 따라 다릅니다. 또한 토큰화된 카드의 페이로드는 카드 네트워크에 따라 다릅니다. 토큰화되지 않은 카드의 페이로드는 카드 네트워크에 관계없이 항상 동일합니다.

다음 3개 필드는 복호화된 페이로드에서 이 페이지의 샘플과 다를 수 있습니다.

  • messageExpiration: 현재 시간을 기준으로 1주일 후로 설정된 타임스탬프입니다.
  • messageId: 각 페이로드별로 무작위로 생성됩니다.
  • expirationYear: 현재 연도를 기준으로 5년 후로 설정됩니다.

두 프로토콜 버전 ECv1과 ECv2는 복호화된 페이로드 구조가 서로 다릅니다. 새로운 통합을 구현한다면 버전이 ECv2입니다. 프로토콜 버전이 확실하지 않으면 Google 담당자에게 확인하세요.

토큰화되지 않은 카드

Visa

다음은 토큰화되지 않은 Visa 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574736277",
    "messageId": "AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "4111111111111111",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "4111111111111111"
  }
}

Mastercard

다음은 토큰화되지 않은 Mastercard 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574585777",
    "messageId": "AH2Ejte23Sp0DBWqKVQ1d8ICVQialPGgXSsTT4NnCjNy3i-jdJg6B_wllO8590dFfrLg16GqGcuSrEPjl-sQZ-K8sKCL62ahwh5kzUv4ggLwioImJmuEuKfAiEQBRW0L8zlo0Nv6LFuk",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "5555555555554444",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "5555555555554444"
  }
}

American Express

다음은 토큰화되지 않은 Amex 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574857349",
    "messageId": "AH2EjtcmoURSXm2RhZ8ihnJrsty-7Ewm3NEnJDM-Atw9ewbIPvuarglows0vtaCV33b4z3PpM5RsMklbpe0aNPK5_BanGxmp_JSsOEtZYuf4m3cHTtKnxpQeonN07XDK-DUPKAaRwLfY",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "378282246310005",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "378282246310005"
  }
}

Discover

다음은 토큰화되지 않은 Discover 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1650574781399",
    "messageId": "AH2EjteSxPPpbJOXKXzG1Cqkh1kzJz0UP1AG4w75n9q7gCtWsawfRlqtUZofjIBnKlbozvASxKkkdbjv2-rOfNGd_st4kFqPeb6O3IE-fXeIcHzH8x56tMRylEnfnrF6x01ET8KdUeLS",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "6011111111111117",
        "authMethod": "PAN_ONLY"
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "expirationMonth": 12,
    "pan": "6011111111111117"
  }
}

토큰화된 카드

'토큰화된 카드'는 Google Pay에 추가된 카드를 나타냅니다.

토큰화된 카드의 복호화된 페이로드는 선택한 카드의 유형에 따라 다릅니다. 다음 3가지 예시에서는 여러 가지 토큰화된 카드의 복호화된 페이로드를 보여줍니다.

Visa

다음은 토큰화된 Visa 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561533871082",
    "messageId": "AH2Ejtc8qBlP_MCAV0jJG7ErQKeDrkEUtQ0N3QRvPXWJc-jgC0VTfgmarDRZvTwuzirQPdUjkMkiQ7tnDidZbtlQTO-mAgMIdXRMuYedhZXnCcokmkJOOnE7jBn-pvkyBncOgpPWFFn3",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "4895370012003478",
        "authMethod": "CRYPTOGRAM_3DS",
        "eciIndicator": "07",
        "cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "4895370012003478",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
    "eciIndicator": "07"
  }
}

American Express

다음은 토큰화된 American Express 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561534208255",
    "messageId": "AH2Ejtf3Lp6LzjK6BswXBvVKZapBJNgMUbVHF_TORaVi7lV0tvRfzvApsZm-RAXF_szQq9qS_BwLTgZGrXvk0ZydZwUISo4x6dxojDoz0fl7loXwZ8JApFrQWU__ExxljKY4Y4mu2aQz",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "370295136149943",
        "authMethod": "CRYPTOGRAM_3DS",
        "cryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "370295136149943",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
  }
}

기타 모든 네트워크

다음은 기타 모든 네트워크에서 토큰화된 카드의 복호화된 페이로드 예시입니다.

ECv2

{
    "gatewayMerchantId": "some-merchant-id",
    "messageExpiration": "1561534208255",
    "messageId": "AH2EjterqtEqlB9vQvy2kJEugwCDYtMzVtLrVH26Qd1RDFK_EFsFmPdpPOqcCIedXNpAc6sCM61GuYM_bgVl930tU8I0Ar0WUx87MIw36skUC-IT_APvbx4qRqw9Hfu2W-7zY6LMdgZ5",
    "paymentMethod": "CARD",
    "paymentMethodDetails": {
        "expirationYear": 2028,
        "expirationMonth": 12,
        "pan": "5204240250197840",
        "authMethod": "CRYPTOGRAM_3DS",
        "cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
    }
}

ECv1

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2028,
    "dpan": "5204240250197840",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
  }
}