Method: purchases.subscriptions.cancel
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
إلغاء عملية شراء اشتراك أحد المستخدمين يظل الاشتراك صالحًا حتى وقت انتهاء صلاحيته.
طلب HTTP
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
مَعلمات المسار
المعلمات |
packageName |
string
اسم حزمة التطبيق الذي تم شراء هذا الاشتراك له (على سبيل المثال، "com.some.thing").
|
subscriptionId |
string
ملاحظة: اعتبارًا من 21 أيار (مايو) 2025، لم يعُد subscriptionId مطلوبًا، ولا يُنصح به للاشتراكات التي تتضمّن ميزات إضافية. معرّف الاشتراك الذي تم شراؤه (على سبيل المثال، "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
CancellationType
نوع الإلغاء الذي طلبه المطوّر
عمليات التعداد |
CANCELLATION_TYPE_UNSPECIFIED |
نوع الإلغاء غير محدَّد. |
USER_REQUESTED_STOP_RENEWALS |
طلب المستخدم إلغاء الاشتراك، ويمكن استعادة الاشتراك. يؤدي ذلك إلى إيقاف عملية تجديد الاشتراك التالية فقط. بالنسبة إلى الاشتراكات المدفوعة بالتقسيط، على المستخدمين إكمال فترة الاشتراك. لمزيد من التفاصيل حول عمليات التجديد والدفعات، يُرجى الاطّلاع على https://developer.android.com/google/play/billing/subscriptions#installments. |
DEVELOPER_REQUESTED_STOP_PAYMENTS |
طلب المطوّر إلغاء الاشتراك، ولا يمكن استعادته. سيؤدي ذلك إلى إيقاف الدفعة التالية للاشتراك. بالنسبة إلى الاشتراكات المدفوعة بالتقسيط، لن يحتاج المستخدمون إلى دفع الدفعة التالية وإكمال فترة الاشتراك. لمزيد من التفاصيل حول عمليات التجديد والدفعات، يُرجى الاطّلاع على https://developer.android.com/google/play/billing/subscriptions#installments. هذا هو السلوك التلقائي في حال عدم تحديد نوع الإلغاء. |
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 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. |"]]