使用示例令牌进行测试

对于直接集成,若想在您的服务器上测试令牌解密,您可以在构造 PaymentsClient 实例时通过设置 ENVIRONMENT_TEST 来生成示例令牌。

当您在环境设置为 ENVIRONMENT_TEST 的情况下构造 PaymentsClient 实例时,对 loadPaymentData 的调用会照常执行,并会要求用户选择一张真实的卡。不过,该调用其实并不会返回所选卡的实际信息,而且产生的令牌始终具有恒定载荷。

加密

ENVIRONMENT_TEST 中生成的令牌会使用您之前发送给 Google 的测试公钥进行加密。

这些令牌会使用 Google 的测试密钥进行签名。如果您使用 Tink,请确保在构建 PaymentMethodTokenRecipient 对象时设置了 .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST)

测试载荷

令牌内的载荷取决于所选卡是否已令牌化(即是否已添加到 Google Pay)。此外,不同的令牌化卡会有不同的载荷,具体取决于卡网络。而无论卡网络为何,非令牌化卡的载荷始终相同。

对比以下示例,下列三个字段在您的测试载荷中可能会不同:

  • messageExpiration:时间戳,已设为自当前时间起的一周后。
  • messageId:针对每个载荷随机生成。
  • expirationYear:已设为自当前年份起的五年后。

非令牌化卡

以下示例显示了非令牌化卡的测试负荷:

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

令牌化卡

“令牌化卡”是指已添加到 Google Pay 的卡。

令牌化卡的载荷取决于所选卡的类型。以下示例显示了不同类型的令牌化卡的测试载荷:

Visa:

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

American Express:

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

所有其他网络:

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