Method: purchases.subscriptions.cancel
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
取消使用者的訂閱購買交易。訂閱方案會在到期時間前維持有效狀態。
HTTP 要求
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel
這個網址使用 gRPC 轉碼語法。
路徑參數
參數 |
packageName |
string
購買此訂閱項目的應用程式套件名稱 (例如「com.some.thing」)。
|
subscriptionId |
string
注意:自 2025 年 5 月 21 日起,系統不再需要 subscriptionId,也不建議用於含有加購項目的訂閱項目。所購買訂閱項目的 ID (例如「monthly001」)。
|
token |
string
購買訂閱項目時提供給使用者裝置的權杖。
|
要求主體
要求主體的資料會採用以下結構:
欄位 |
cancellationType |
enum (CancellationType )
(非必要) 已購買訂閱項目的取消類型。請注意,這個欄位僅支援 HTTP 要求。但不適用於用戶端程式庫。
|
範例
以下是要求範例:
curl -X POST \
-H "Accept: application/json" \
"https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/purchases/subscriptions/monthly.premium.plan/tokens/EXAMPLE_TOKEN_STRING_12345:cancel"
授權範圍
需要下列 OAuth 範圍:
https://www.googleapis.com/auth/androidpublisher
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003eCancels a user's subscription purchase, but the subscription remains valid until its expiration time.\u003c/p\u003e\n"],["\u003cp\u003eRequires the \u003ccode\u003ehttps://www.googleapis.com/auth/androidpublisher\u003c/code\u003e OAuth scope for authorization.\u003c/p\u003e\n"],["\u003cp\u003eUses a \u003ccode\u003ePOST\u003c/code\u003e request to the specified URL with the package name, subscription ID, and purchase token as path parameters.\u003c/p\u003e\n"],["\u003cp\u003eThe request body should be empty, and a successful cancellation results in an empty response body.\u003c/p\u003e\n"]]],["This document outlines the process for canceling a user's subscription via a `POST` request to the specified URL. The request requires three path parameters: `packageName`, `subscriptionId`, and `token`. The request body optionally includes the `cancellationType`, which can be `USER_REQUESTED_STOP_RENEWALS` or `DEVELOPER_REQUESTED_STOP_PAYMENTS`; default behavior is `DEVELOPER_REQUESTED_STOP_PAYMENTS`. A successful request returns an empty response body and requires the `androidpublisher` OAuth scope. It details various cancellation types.\n"],null,["# Method: purchases.subscriptions.cancel\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [CancellationType](#CancellationType)\n- [Try it!](#try-it)\n\nCancels a user's subscription purchase. The subscription remains valid until its expiration time.\n\n### HTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `packageName` | `string` The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). |\n| `subscriptionId` | `string` Note: Since May 21, 2025, subscriptionId is not required, and not recommended for subscription with add-ons. The purchased subscription ID (for example, 'monthly001'). |\n| `token` | `string` The token provided to the user's device when the subscription was purchased. |\n\n### Request body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"cancellationType\": enum (/android-publisher/api-ref/rest/v3/purchases.subscriptions/cancel#CancellationType) } ``` |\n\n| Fields ||\n|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `cancellationType` | `enum (`[CancellationType](/android-publisher/api-ref/rest/v3/purchases.subscriptions/cancel#CancellationType)`)` Optional. The type of cancellation for the purchased subscription. Note that this field is only supported in the HTTP request. It is not available in client libraries. |\n\n### Response body\n\nIf successful, the response body is empty.\n\n### Sample\n\nThe following is a sample request: \n\n```json\ncurl -X POST \\\n -H \"Accept: application/json\" \\\n \"https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/purchases/subscriptions/monthly.premium.plan/tokens/EXAMPLE_TOKEN_STRING_12345:cancel\"\n```\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nCancellationType\n----------------\n\nThe type of cancellation requested by the developer.\n\n| Enums ||\n|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `CANCELLATION_TYPE_UNSPECIFIED` | Cancellation type unspecified. |\n| `USER_REQUESTED_STOP_RENEWALS` | Cancellation requested by the user, and the subscription can be restored. It only stops subscription's next renewal. For an installment subscription, users still need to finish the commitment period. For more details on renewals and payments, see \u003chttps://developer.android.com/google/play/billing/subscriptions#installments\u003e |\n| `DEVELOPER_REQUESTED_STOP_PAYMENTS` | Cancellation requested by the developer, and the subscription cannot be restored. It stops the subscription's next payment. For an installment subscription, users will not need to pay the next payment and finish the commitment period. For more details on renewals and payments, see \u003chttps://developer.android.com/google/play/billing/subscriptions#installments\u003e This is the default behavior when no cancellation type is specified. |"]]