跳到正文
Indiana
控制台
文档
章节目录 / 确认订阅变更

确认订阅变更

POST/api/v1/subscriptions/update

接受已冻结 operationId,按目标套餐立即调整计费项或在续费时调整。Funnel、Console 迁移和 SDK 共用执行与恢复服务。

SDK 0.0.1更新于

发起请求

接受已冻结 operationId,按目标套餐立即调整计费项或在续费时调整。Funnel、Console 迁移和 SDK 共用执行与恢复服务。

调用凭据
服务端 API Key 或客户 Token。客户调用不能选择其他客户。
所需权限
billing:write
base URL 和 App ID 来自 SDK 接入页。示例使用占位值,不会执行请求。服务端 Key 不可放入浏览器。
Web Beta 的结账需要明确配置 Stripe Sandbox 测试账号与已发布价格映射。跳转完成不等于支付确认。
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/subscriptions/update" \  -H "Authorization: Bearer $GROOVE_CUSTOMER_TOKEN" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "operationId": "00000000-0000-4000-8000-000000000001"}'

响应选项卡列出字段类型,不是响应示例;实际值由客户状态决定。

请求参数

JSON 请求体

operationIduuid必填

业务操作 UUID;订阅执行引用 previewAttach 返回的 operationId,余额退款引用原消费操作。

customerIduuid可选

Indiana 客户 ID。服务端从已验证身份关联;客户 Token 调用时省略并使用 Token 绑定的客户。

intentenum可选

本次操作的 intent 值,类型和约束见字段标注。

查看允许值

"confirm""cancel"

响应字段

成功响应包含 requestId 和 scope。结合实际业务状态或 accepted 判断操作结果;可选字段不可用时省略。

HTTP 200 · application/json

requestIduuid必填

服务端生成的 HTTP 请求 UUID,排查请求时提供这个值。

scopeobject必填

响应实际所属的 App 和环境。Header 只能核对,不能切换 Key 范围。

展开子字段
projectIdstring必填

凭据绑定的 App ID。

minLength: 1

environmentenum必填

独立数据范围:sandbox 或 live。

查看允许值

"sandbox""live"

operationobject | object必填

本次操作的 operation 值,类型和约束见字段标注。

展开子字段
operationIduuid | uuid必填

业务操作 UUID;订阅执行引用 previewAttach 返回的 operationId,余额退款引用原消费操作。

membershipIduuid | uuid必填

本次操作的 membershipId 值,类型和约束见字段标注。

productVersionIduuid | uuid必填

本次操作的 productVersionId 值,类型和约束见字段标注。

statusenum | enum必填

本次操作的 status 值,类型和约束见字段标注。

timingenum | "store"必填

立即变更或在周期末变更;只用于契约允许的套餐变更动作。

effectiveAtdate-time | date-time | null必填

本次操作的 effectiveAt 值,类型和约束见字段标注。

checkoutUrluri | null | null必填

本次操作的 checkoutUrl 值,类型和约束见字段标注。

nativePurchaseobject | null可选

本次操作的 nativePurchase 值,类型和约束见字段标注。

展开子字段
type"native_purchase"必填

本次操作的 type 值,类型和约束见字段标注。

receiptIduuid必填

本次操作的 receiptId 值,类型和约束见字段标注。

orderIduuid必填

本次操作的 orderId 值,类型和约束见字段标注。

productVersionIduuid必填

本次操作的 productVersionId 值,类型和约束见字段标注。

providerenum必填

本次操作的 provider 值,类型和约束见字段标注。

查看允许值

"apple""google"

productIdstring必填

本次操作的 productId 值,类型和约束见字段标注。

minLength: 1 · maxLength: 255

productKindenum必填

本次操作的 productKind 值,类型和约束见字段标注。

查看允许值

"membership""credit_pack""lifetime"

replacementobject | null必填

本次操作的 replacement 值,类型和约束见字段标注。

展开子字段
sourceOrderIduuid必填

本次操作的 sourceOrderId 值,类型和约束见字段标注。

sourceProductIdstring必填

本次操作的 sourceProductId 值,类型和约束见字段标注。

minLength: 1 · maxLength: 255

policyenum必填

本次操作的 policy 值,类型和约束见字段标注。

查看允许值

"apple_store""google_full_price"

sourceAccountTokensarray必填

本次操作的 sourceAccountTokens 值,类型和约束见字段标注。

maxItems: 50

appAccountTokenuuid可选

本次操作的 appAccountToken 值,类型和约束见字段标注。

obfuscatedAccountIdstring可选

本次操作的 obfuscatedAccountId 值,类型和约束见字段标注。

minLength: 1 · maxLength: 64

obfuscatedProfileIduuid可选

本次操作的 obfuscatedProfileId 值,类型和约束见字段标注。

basePlanIdstring可选

本次操作的 basePlanId 值,类型和约束见字段标注。

minLength: 1 · maxLength: 255

offerIdstring可选

当前客户已领取优惠的 ID;与 promotionCode 互斥。

minLength: 1 · maxLength: 255

offerKindenum必填

本次操作的 offerKind 值,类型和约束见字段标注。

查看允许值

"none""introductory""promotional"

currencyenum必填

已发布价格支持的币种代码。

查看允许值

"USD""EUR""CNY""GBP""JPY""CAD""AUD""NZD""CHF""HKD""SGD""KRW""INR""BRL""MXN""TWD""THB""IDR""MYR""PHP""VND""ZAR""AED""SAR""SEK""NOK""DKK""PLN""CZK""HUF""ILS""TRY""RON"

catalogAmountMinorinteger必填

本次操作的 catalogAmountMinor 值,类型和约束见字段标注。

min: 0 · max: 100000000

discountMinorinteger必填

本次操作的 discountMinor 值,类型和约束见字段标注。

min: 0 · max: 100000000

trialDaysinteger | null必填

本次操作的 trialDays 值,类型和约束见字段标注。

seatBundlearray必填

本次操作的 seatBundle 值,类型和约束见字段标注。

maxItems: 20

展开子字段
keystring必填

本次操作的 key 值,类型和约束见字段标注。

pattern: ^[a-z][a-z0-9_]{0,63}$

quantityinteger必填

业务数量按字段标注类型传入;积分操作用十进制字符串,避免浮点误差。quote/reserve/confirm/refund 要求正数;consume 可记录零费用事件。

min: 1 · max: 10000

applePromotionalOfferobject | null必填

本次操作的 applePromotionalOffer 值,类型和约束见字段标注。

展开子字段
offerIdstring必填

当前客户已领取优惠的 ID;与 promotionCode 互斥。

minLength: 1 · maxLength: 255

keyIdstring必填

本次操作的 keyId 值,类型和约束见字段标注。

minLength: 1 · maxLength: 255

nonceuuid必填

本次操作的 nonce 值,类型和约束见字段标注。

signaturestring必填

本次操作的 signature 值,类型和约束见字段标注。

minLength: 1 · maxLength: 1024

timestampinteger必填

本次操作的 timestamp 值,类型和约束见字段标注。

min: 0 · max: 9007199254740991

处理错误

常见失败
错误码处理方式
UNAUTHENTICATED核对 Key,或将过期客户 Token 重新签发一次。
FORBIDDEN核对当前 Key 权限与客户访问范围。
INVALID_REQUEST检查字段类型、UUID、十进制字符串和互斥字段。
SCOPE_MISMATCH使用凭据绑定的 App 和环境。

常见失败

  • UNAUTHENTICATED

    处理方式
    核对 Key,或将过期客户 Token 重新签发一次。
  • FORBIDDEN

    处理方式
    核对当前 Key 权限与客户访问范围。
  • INVALID_REQUEST

    处理方式
    检查字段类型、UUID、十进制字符串和互斥字段。
  • SCOPE_MISMATCH

    处理方式
    使用凭据绑定的 App 和环境。

相关:完整请求与错误约定·返回接口索引