开发者控制台

使用RVS Cloud Sandbox

使用RVS Cloud Sandbox

RVS Cloud Sandbox是一个适用于RVS (收据验证服务) 的沙盒环境,可以用于验证App Tester生成的收据。RVS Cloud Sandbox用于应用的开发阶段,在将应用发布到亚马逊应用商店之前。

环境要求

在使用RVS Cloud Sandbox之前,请确保您的环境符合以下要求。

App Tester

RVS Cloud Sandbox用于验证App Tester生成的收据。您必须在Android移动设备/平板电脑/Fire TV上安装Amazon App Tester工具,才能使用RVS Cloud Sandbox。有关更多详细信息,请参阅App Tester设置

每次完成应用内购买后,App Tester都会发出收据。您需要将App Tester发出的收据传递到您的应用服务器,然后调用RVS Cloud Sandbox以验证收据。

安全协议

该服务器需要通过HTTPS等安全协议安全地与RVS Cloud Sandbox通信。您的服务器将向RVS Cloud Sandbox发送验证请求并处理响应。

RVS响应对象

RVS Cloud Sandbox请求使用来自PurchaseResponse对象或PurchaseUpdatesResponse对象的数据。可以从这些响应对象中提取一个UserId,它表示用户的唯一标识符。PurchaseResponse对象包含ReceiptId,它与UserId一起用于对购买执行带外服务器端验证。

发送RVS Cloud Sandbox请求

要使用RVS Cloud Sandbox,您必须通过HTTPS将请求发送到RVS Cloud Sandbox终端节点:https://appstore-sdk.amazon.com/sandbox

请在请求中使用以下格式,用下表中的值替换尖括号中的术语:

https://appstore-sdk.amazon.com/sandbox/version/{operation-version-number}/verifyReceiptId/developer/{shared-secret}/user/{user-id}/receiptId/{receipt-id}
参数 描述
operation-version-number verifyReceiptId操作版本号。此版本号独立于IAP版本号。当前verifyReceiptId版本号为“1.0”。
shared-secret 用于标识发出请求的开发者的共享密钥。可在开发者控制台共享密钥页面上找到共享密钥:https://developer.amazon.com/zh/sdk/shared-key.html。对于RVS Cloud Sandbox,共享密钥可以是任何非空字符串。RVS Cloud Sandbox服务器不会验证共享密钥,因为只有生产服务器才会验证它。
user-id 代表亚马逊应用商店应用中不同亚马逊客户的ID。从PurchaseResponse.getUserData().getUserId()获取用户ID。
receipt-id 购买的唯一ID:在PurchaseResponse.getReceipt().getReceiptId()PurchaseUpdatesResponse.getReceipts()Receipt.getReceiptId()中查找收据ID。

RVS Cloud Sandbox示例

以下请求会在RVS Cloud Sandbox中验证收据:

https://appstore-sdk.amazon.com/sandbox/version/1.0/verifyReceiptId/developer/developerSecret/user/l3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU=/receiptId/q1YqVbJSyjH28DGPKChw9c0o8nd3ySststQtzSkrzM8tCk43K6z0d_HOTcwwN8vxCrVV0lEqBmpJzs_VS8xNrMrP0ysuTSo2BAqXKFkZ6SilACUNzQxMzAyNjYyNDQ3MgDKJSlZpiTnFqTpK6UpWJUWlQEYahFELAA

此调用会收到一个来自RVS Cloud Sandbox服务器的JSON响应:

{
  "autoRenewing": false,
  "betaProduct": false,
  "cancelDate": null,
  "cancelReason": null,
  "deferredDate": null,
  "deferredSku": null,
  "freeTrialEndDate": 1606985788979,
  "gracePeriodEndDate": 1606985788979,
  "parentProductId": null,
  "productId": "com.amazon.subs1",
  "productType": "SUBSCRIPTION",
  "promotions": null,
  "purchaseDate": 1604613233106,
  "quantity": 1,
  "receiptId": "q1YqVbJSyjH28DGPKChw9c0o8nd3ySststQtzSkrzM8tCk43K6z0d_HOTcwwN8vxCrVV0lEqBmpJzs_VS8xNrMrP0ysuTSo2BAqXKFkZ6SilACUNzQxMzAyNjYyNDQ3MgDKJSlZpiTnFqTpK6UpWJUWlQEYahFELAA",
  "renewalDate": 1606985788979,
  "term": "1 Month",
  "termSku": "com.amazon.subs1_term",
  "testTransaction": true
}

有关响应中字段的说明,请参阅RVS响应字段。有关如何设置应用服务器的示例,请参阅适用于Appstore SDK IAP的RVS生产设置


Last updated: 2024年5月22日