Method: purchases.subscriptions.defer
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يؤجل هذا الإجراء شراء اشتراك المستخدم إلى وقت انتهاء صلاحية محدّد في المستقبل.
طلب HTTP
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer
يستخدِم عنوان URL بنية تحويل ترميز gRPC.
مَعلمات المسار
المعلمات |
packageName |
string
اسم حزمة التطبيق الذي تم شراء هذا الاشتراك له (على سبيل المثال، "com.some.thing").
|
subscriptionId |
string
معرّف الاشتراك الذي تم شراؤه (على سبيل المثال، "monthly001").
|
token |
string
الرمز المميّز الذي تم تقديمه لجهاز المستخدم عند شراء الاشتراك
|
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
الحقول |
deferralInfo |
object (SubscriptionDeferralInfo )
معلومات حول وقت انتهاء الصلاحية الجديد المطلوب للاشتراك
|
نص الاستجابة
استجابة واجهة برمجة التطبيقات purchases.subscriptions.defer
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
تمثيل JSON |
{
"newExpiryTimeMillis": string
} |
الحقول |
newExpiryTimeMillis |
string (int64 format)
وقت انتهاء صلاحية الاشتراك الجديد بالمللي ثانية منذ بداية الحقبة
|
عيّنة
في ما يلي مثال على طلب:
curl -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"deferralInfo": {
"desiredExpiryTimeMillis": "1735689600000",
"expectedExpiryTimeMillis": "1704067200000"
}
}' \
'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.myapp/purchases/subscriptions/monthly.premium.v1/tokens/aBcDeFgHiJkLmNoPqRsTuVwXyZaBcDeFgHiJkLmNoPqRsTuVwXyZ.1234567890:defer'
في ما يلي مثال على ردّ:
{
"newExpiryTimeMillis": "1776004800000"
}
نطاقات التفويض
يجب توفير نطاق OAuth التالي:
https://www.googleapis.com/auth/androidpublisher
SubscriptionDeferralInfo
يحتوي عنصر SubscriptionDeferralInfo على البيانات اللازمة لتأجيل شراء اشتراك إلى وقت انتهاء صلاحية مستقبلي.
تمثيل JSON |
{
"expectedExpiryTimeMillis": string,
"desiredExpiryTimeMillis": string
} |
الحقول |
expectedExpiryTimeMillis |
string (int64 format)
وقت انتهاء صلاحية الاشتراك المتوقّع إذا لم يكن وقت انتهاء صلاحية الاشتراك الحالي هو القيمة المحدّدة هنا، لن يحدث التأخير.
|
desiredExpiryTimeMillis |
string (int64 format)
وقت انتهاء الصلاحية التالي المطلوب تحديده للاشتراك، بالمللي ثانية منذ تاريخ بدء حساب الفترة يجب أن يكون الوقت المحدَّد لاحقًا أو أكبر من وقت انتهاء صلاحية الاشتراك الحالي.
|
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eDefers a user's subscription purchase to a specified future expiration time using the \u003ccode\u003epurchases.subscriptions.defer\u003c/code\u003e API.\u003c/p\u003e\n"],["\u003cp\u003eRequires the \u003ccode\u003epackageName\u003c/code\u003e, \u003ccode\u003esubscriptionId\u003c/code\u003e, and purchase \u003ccode\u003etoken\u003c/code\u003e as path parameters for the HTTP request.\u003c/p\u003e\n"],["\u003cp\u003eThe request body includes \u003ccode\u003edeferralInfo\u003c/code\u003e containing the \u003ccode\u003eexpectedExpiryTimeMillis\u003c/code\u003e and the \u003ccode\u003edesiredExpiryTimeMillis\u003c/code\u003e for the subscription.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful responses provide the \u003ccode\u003enewExpiryTimeMillis\u003c/code\u003e for the deferred subscription.\u003c/p\u003e\n"],["\u003cp\u003eAuthorization requires the \u003ccode\u003ehttps://www.googleapis.com/auth/androidpublisher\u003c/code\u003e OAuth scope.\u003c/p\u003e\n"]]],["This outlines the process of deferring a user's subscription purchase using a `POST` request to the specified URL, including `packageName`, `subscriptionId`, and `token` as path parameters. The request body, containing a `deferralInfo` object, specifies the `expectedExpiryTimeMillis` and `desiredExpiryTimeMillis`. Successful deferrals return a response with the `newExpiryTimeMillis`. This process requires `https://www.googleapis.com/auth/androidpublisher` authorization scope.\n"],null,["# Method: purchases.subscriptions.defer\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 - [JSON representation](#body.SubscriptionPurchasesDeferResponse.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [SubscriptionDeferralInfo](#SubscriptionDeferralInfo)\n - [JSON representation](#SubscriptionDeferralInfo.SCHEMA_REPRESENTATION)\n- [Try it!](#try-it)\n\nDefers a user's subscription purchase until a specified future expiration time.\n\n### HTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer`\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` 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| ``` { \"deferralInfo\": { object (/android-publisher/api-ref/rest/v3/purchases.subscriptions/defer#SubscriptionDeferralInfo) } } ``` |\n\n| Fields ||\n|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `deferralInfo` | `object (`[SubscriptionDeferralInfo](/android-publisher/api-ref/rest/v3/purchases.subscriptions/defer#SubscriptionDeferralInfo)`)` The information about the new desired expiry time for the subscription. |\n\n### Response body\n\nResponse for the purchases.subscriptions.defer API.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|-------------------------------------------|\n| ``` { \"newExpiryTimeMillis\": string } ``` |\n\n| Fields ||\n|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `newExpiryTimeMillis` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The new expiry time for the subscription in milliseconds since the Epoch. |\n\n### Sample\n\nThe following is a sample request: \n\n```json\ncurl -X POST \\\n -H \"Accept: application/json\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"deferralInfo\": {\n \"desiredExpiryTimeMillis\": \"1735689600000\",\n \"expectedExpiryTimeMillis\": \"1704067200000\"\n }\n }' \\\n 'https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.myapp/purchases/subscriptions/monthly.premium.v1/tokens/aBcDeFgHiJkLmNoPqRsTuVwXyZaBcDeFgHiJkLmNoPqRsTuVwXyZ.1234567890:defer'\n```\n\nThe following is a sample response: \n\n```json\n{\n \"newExpiryTimeMillis\": \"1776004800000\"\n}\n```\n\n### Authorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nSubscriptionDeferralInfo\n------------------------\n\nA SubscriptionDeferralInfo contains the data needed to defer a subscription purchase to a future expiry time.\n\n| JSON representation |\n|-----------------------------------------------------------------------------------|\n| ``` { \"expectedExpiryTimeMillis\": string, \"desiredExpiryTimeMillis\": string } ``` |\n\n| Fields ||\n|----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `expectedExpiryTimeMillis` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The expected expiry time for the subscription. If the current expiry time for the subscription is not the value specified here, the deferral will not occur. |\n| `desiredExpiryTimeMillis` | `string (`[int64](https://developers.google.com/discovery/v1/type-format)` format)` The desired next expiry time to assign to the subscription, in milliseconds since the Epoch. The given time must be later/greater than the current expiry time for the subscription. |"]]