获取订阅数据 (V5)
重要
该方法仅适用于通过 Pay SDK 购买的订阅。
该方法允许您通过购买ID获取用户的订阅信息。
提示
如果您不知道从哪里开始,请参阅使用场景中的 操作指南。
请求参数
对于正式(真实)订阅:
GET
https://public-api.rustore.ru/public/v5/subscription/{packageName}/{subscriptionId}/{purchaseId}
对于测试订阅,请使用单独的方法:
GET
https://public-api.rustore.ru/public/sandbox/v5/subscription/{packageName}/{subscriptionId}/{purchaseId}
| 属性 | 类型 | 描述 | 是否必需 | 位置 | 示例 |
|---|---|---|---|---|---|
Public-Token | string | RuStore Public API 的 JWE 授权令牌。 如何获取授权令牌 | 是 | header | N/A |
packageName | string | 应用程序包名称。 | 是 | path | com.MashaAndTheBear.HairSalon |
subscriptionId | string | 订阅产品代码。 由开发者在 RuStore 控制台 中创建产品时指定。 如何创建订阅。 | 是 | path | daily_sub |
purchaseId | string | UUID 格式的购买 ID。可从 SDK 的购买结果、服务器通知或通过查询购买信息获取。 | 是 | path | 3aa0c7bd-964e-4562-b218-fe365adb4ae3 |
响应参数
| 属性 | 类型 | 描述 | 是否必需 | 位置 | 示例 |
|---|---|---|---|---|---|
code | string | 响应代码。 | 是 | body | OK / ERROR |
message | string | 响应代码的说明。 | 否 | body | Bad request |
body{} | object | 响应体。 | 否 | body | N/A |
timestamp | string | 响应时间。 | 是 | body | 2024-07-29T12:00:00.000Z |
body{}
| 属性 | 类型 | 描述 | 是否必需 | 示例 |
|---|---|---|---|---|
startTimeMillis | string | 订阅生效时间(自纪元以来的毫秒数)。 | 是 | 1694431707000 |
expiryTimeMillis | string | 订阅到期时间(自纪元以来的毫秒数)。 | 是 | 1697083457000 |
autoRenewing | boolean | 订阅在当前期限到期后是否会自动续订。 | 是 | false |
developerPayload | string | 包含额外订单信息的字符串,您可以在 SDK 中确认购买时设置。 | 否 | External id = 1 |
priceCurrencyCode | string | 订阅价格的 ISO 4217 货币代码。 | 是 | RUB |
priceAmountMicros | string | 订阅价格。价格以微单位表示,其中 1,000,000 微单位代表一个货币单位。例如,如果订阅价格为 100 卢布,则 AmountMicros 价格为 100,000,000。 | 是 | 749000000 |
countryCode | string | 订阅生效时用户的账单国家/地区代码。 | 是 | RU |
paymentState | number | 订阅支付状态。可能的值: • 0 — 等待支付• 1 — 已收到付款;• 2 — 免费试用。对于已取消且到期的订阅不返回此字段。 | 否,仅对有效订阅返回 | 1 |
cancelReason | number | 订阅被取消的原因。可能的值: • 0 — 用户取消订阅• 1 — 系统取消订阅,例如由于支付问题• 3 — 开发者取消订阅 | 否,仅对状态为 CLOSED 的已取消订阅返回 | 0 |
userCancellationTimeMillis | string | 用户取消订阅的时间(自纪元以来的毫秒数)。 | 否,仅对状态为 CLOSED 的已取消订阅返回 | 1697083457000 |
orderId | string | 与订阅购买相关的最后一个账单的标识符。如果订阅有多个账单,则通过分隔符 ".." 将数量附加到 ID 后,从 0 开始计数。 | 是 | 3352..1 |
acknowledgementState | string | 订阅产品的确认状态。可能的值: • "PENDING" — 尚未确认;• "ACKNOWLEDGED" — 已确认;• "UNKNOWN" — 未知状态。 | 是 | "ACKNOWLEDGED" |
externalAccountId | string | 外部应用程序中的用户标识符。 | 否,仅当在开始购买时设置了 appUserId 时返回 | any_string |
kind | string | 始终为 androidpublisher#subscriptionPurchase。 | 是 | androidpublisher#subscriptionPurchase |
purchaseType | number | 购买类型:0 — 测试订阅。 | 否,仅对测试订阅返回,真实订阅不传递 | 0 |
introductoryPriceInfo{} | object | 订阅免费试用期的信息。此字段并不表示订阅当前处于免费试用期。 | 否,仅当订阅配置了免费试用期时返回 | 见下文 |
promoPriceInfo{} | object | 订阅优惠期(首期优惠)的信息。仅当存在优惠期时填充。此字段并不表示订阅当前处于优惠期。 | 否,仅当订阅配置了优惠期时返回 | 见下文 |
introductoryPriceInfo{}
| 属性 | 类型 | 描述 | 示例 |
|---|---|---|---|
introductoryPriceCurrencyCode | string | 优惠价格的 ISO-4217 货币代码。 | RUB |
introductoryPriceAmountMicros | string | 优惠期费用(以微单位计)。免费试用期值为 0。 | 0 |
introductoryPricePeriod | string | 免费试用期时长,采用 ISO-8601 格式(P1W、P1M、P3M、P6M、P1Y)。 | P1Y |
introductoryPriceCycles | string | 优惠适用的计费周期数。 | 1 |
promoPriceInfo{}
| 属性 | 类型 | 描述 | 示例 |
|---|---|---|---|
promoPriceCurrencyCode | string | 促销价格的 ISO-4217 货币代码。 | RUB |
promoPriceAmountMicros | string | 促销期费用(以微单位计)。 | 59900000 |
promoPricePeriod | string | 促销期时长,采用 ISO-8601 格式(P1W、P1M、P3M、P6M、P1Y)。 | P1Y |
promoPriceCycles | string | 促销优惠适用的计费周期数。 | 1 |
成功响应示例
{
"code": "OK",
"message": "Successful result",
"body": {
"startTimeMillis": "1694431707000",
"expiryTimeMillis": "1697083457000",
"autoRenewing": true,
"developerPayload": "External id = 1",
"priceCurrencyCode": "RUB",
"priceAmountMicros": "749000000",
"countryCode": "RU",
"paymentState": 1,
"cancelReason": 0,
"userCancellationTimeMillis": "1697083457000",
"orderId": "3352..1",
"acknowledgementState": "ACKNOWLEDGED",
"externalAccountId": "any_string",
"kind": "androidpublisher#subscriptionPurchase",
"purchaseType": 0,
"introductoryPriceInfo": {
"introductoryPriceCurrencyCode": "RUB",
"introductoryPriceAmountMicros": "0",
"introductoryPricePeriod": "P1Y",
"introductoryPriceCycles": "1"
},
"promoPriceInfo": {
"promoPriceCurrencyCode": "RUB",
"promoPriceAmountMicros": "59900000",
"promoPricePeriod": "P1Y",
"promoPriceCycles": "1"
}
},
"timestamp": "2025-08-11T14:16:02.236Z"
}
错误响应示例
{
"code": "ERROR",
"message": "Bad request",
"body": null,
"timestamp": "2024-07-29T12:00:00.000Z"
}
错误列表
| 消息 | 说明 |
|---|---|
Purchase not found | 未找到购买记录。请确保指定的购买 ID 正确。 |
Forbidden | 禁止访问。请检查授权令牌和请求参数。 |
Something went wrong | 出了点问题。请稍后重试或联系技术支持。 |