REST Resource: purchases.subscriptionsv2

المورد: SubscriptionPurchaseV2

تشير إلى حالة شراء اشتراك المستخدم.

تمثيل JSON
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  },
  "etag": string,
  "outOfAppPurchaseContext": {
    object (OutOfAppPurchaseContext)
  },
  "onHoldStateContext": {
    object (OnHoldStateContext)
  },
  "inGracePeriodStateContext": {
    object (InGracePeriodStateContext)
  }
}
الحقول
kind

string

يمثّل هذا النوع عنصر SubscriptionPurchaseV2 في خدمة androidpublisher.

regionCode

string

رمز البلد أو المنطقة الذي يتم فيه تحصيل الرسوم من المستخدم وفقًا لمعيار ISO 3166-1 alpha-2 في وقت منح الاشتراك

lineItems[]

object (SubscriptionPurchaseLineItem)

معلومات على مستوى المنتج لعملية شراء اشتراك يجب أن تكون جميع العناصر في عملية الشراء نفسها إما من النوع AutoRenewingPlan أو PrepaidPlan.

startTime

string (Timestamp format)

الوقت الذي تم فيه منح الاشتراك لم يتم ضبطه للاشتراكات المعلّقة (تم إنشاء الاشتراك ولكن في انتظار الدفع أثناء الاشتراك).

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

subscriptionState

enum (SubscriptionState)

تمثّل هذه السمة حالة الاشتراك الحالية.

linkedPurchaseToken

string

تمثّل هذه السمة الرمز المميّز للشراء الخاص بالاشتراك القديم إذا كان هذا الاشتراك أحد الحالات التالية: * إعادة الاشتراك في اشتراك تم إلغاؤه ولكن لم تنتهِ مدته * الترقية أو الرجوع إلى إصدار أقدم من اشتراك سابق. * الانتقال من اشتراك مدفوع مُسبقًا إلى اشتراك يتجدّد تلقائيًا * الانتقال من اشتراك يتجدّد تلقائيًا إلى اشتراك مدفوع مُسبقًا * إعادة شحن اشتراك مدفوع مُسبقًا

pausedStateContext

object (PausedStateContext)

معلومات إضافية حول الاشتراكات المتوقّفة مؤقتًا لا يتم عرض هذا الحقل إلا إذا كانت قيمة subscriptionState هي SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

سياق إضافي حول الاشتراكات الملغاة لا يظهر هذا الحقل إلا إذا كانت حالة الاشتراك الحالية هي SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

لا تظهر إلا إذا كانت عملية شراء الاشتراك هذه عملية شراء اختبارية.

acknowledgementState

enum (AcknowledgementState)

حالة تأكيد الاشتراك

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

معرّف حساب المستخدم في الخدمة الخارجية

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

ملف المستخدم المرتبط بعمليات الشراء التي تم إجراؤها باستخدام "اشترِك مع Google"

etag

string

علامة كيان تمثّل الحالة الحالية للاشتراك. سيقدّم المطوّر هذا الرمز المميز لعلامة ETag لإجراءات الاشتراك. تتوفّر علامة etag هذه دائمًا للاشتراكات التي تتجدّد تلقائيًا والاشتراكات المدفوعة مُسبقًا.

outOfAppPurchaseContext

object (OutOfAppPurchaseContext)

مزيد من المعلومات حول عمليات الشراء خارج التطبيق لا تظهر هذه المعلومات إلا لعمليات شراء إعادة الاشتراك (عمليات شراء الاشتراك التي تتم بعد انتهاء صلاحية الاشتراك السابق في المنتج نفسه) التي تتم من خلال مركز الاشتراكات في Google Play. ستتم إزالة هذا الحقل بعد تأكيد الاشتراك.

onHoldStateContext

object (OnHoldStateContext)

اختيارية: سياق إضافي حول الاشتراكات في الحالة ON_HOLD. لا يتم عرض هذا الحقل إلا إذا كانت قيمة subscriptionState هي SUBSCRIPTION_STATE_ON_HOLD.

inGracePeriodStateContext

object (InGracePeriodStateContext)

اختيارية: سياق إضافي حول الاشتراكات في حالة IN_GRACE_PERIOD لا يتم عرض هذه الحالة إلا إذا كان الاشتراك يتضمّن حاليًا قيمة SUBSCRIPTION_STATE_IN_GRACE_PERIOD في subscriptionState.

SubscriptionState

الحالات المحتملة التي يمكن أن يكون عليها الاشتراك، مثل ما إذا كان نشطًا أو تم إلغاؤه يمكن أن تكون العناصر ضِمن عملية شراء اشتراك إمّا جميعها خططًا قابلة للتجديد تلقائيًا أو خططًا مُسبقة الدفع.

عمليات التعداد
SUBSCRIPTION_STATE_UNSPECIFIED حالة الاشتراك غير محدَّدة.
SUBSCRIPTION_STATE_PENDING تم إنشاء الاشتراك ولكن في انتظار الدفع أثناء الاشتراك. في هذه الحالة، تكون جميع العناصر في انتظار الدفع.
SUBSCRIPTION_STATE_ACTIVE الاشتراك نشط. - (1) إذا كان الاشتراك في خطة تتجدّد تلقائيًا، يجب أن يكون هناك منتج واحد على الأقل autoRenewEnabled ولم تنتهِ صلاحيته. ‫(2) إذا كان الاشتراك عبارة عن خطة دفع مُسبق، يجب أن يكون هناك عنصر واحد على الأقل لم تنتهِ صلاحيته.
SUBSCRIPTION_STATE_PAUSED تم إيقاف الاشتراك مؤقتًا. لا تتوفّر الحالة إلا عندما يكون الاشتراك في خطة تتجدّد تلقائيًا. في هذه الحالة، تكون جميع العناصر في حالة الإيقاف المؤقت.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD الاشتراك في فترة السماح. لا تتوفّر الحالة إلا عندما يكون الاشتراك في خطة تتجدّد تلقائيًا. في هذه الحالة، تكون جميع العناصر في فترة السماح.
SUBSCRIPTION_STATE_ON_HOLD الاشتراك معلَّق. لا تتوفّر الحالة إلا عندما يكون الاشتراك في خطة تتجدّد تلقائيًا. في هذه الحالة، يتم تعليق جميع العناصر.
SUBSCRIPTION_STATE_CANCELED تم إلغاء الاشتراك ولكن لم تنتهِ صلاحيته بعد. لا تتوفّر الحالة إلا عندما يكون الاشتراك في خطة تتجدّد تلقائيًا. تم ضبط قيمة autoRenewEnabled على "خطأ" لجميع العناصر.
SUBSCRIPTION_STATE_EXPIRED انتهت صلاحية الاشتراك. تحتوي جميع العناصر على expiryTime في الماضي.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED تم إلغاء المعاملة المعلّقة للاشتراك. إذا كانت عملية الشراء المعلّقة هذه خاصة باشتراك حالي، استخدِم linkedPurchaseToken للحصول على الحالة الحالية لهذا الاشتراك.

PausedStateContext

معلومات خاصة باشتراك في حالة "متوقّف مؤقتًا".

تمثيل JSON
{
  "autoResumeTime": string
}
الحقول
autoResumeTime

string (Timestamp format)

الوقت الذي سيتم فيه استئناف الاشتراك تلقائيًا

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

CanceledStateContext

معلومات خاصة باشتراك في الحالة SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED

تمثيل JSON
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
الحقول
حقل الربط cancellation_reason سبب إلغاء الاشتراك يمكن أن يكون التعليق cancellation_reason إحدى القيم التالية فقط:
userInitiatedCancellation

object (UserInitiatedCancellation)

ألغى المستخدم الاشتراك.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

تم إلغاء الاشتراك من قِبل النظام، مثلاً بسبب مشكلة في الفوترة.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

ألغى المطوّر الاشتراك.

replacementCancellation

object (ReplacementCancellation)

تم استبدال الاشتراك باشتراك جديد.

UserInitiatedCancellation

معلومات خاصة بعمليات الإلغاء التي يبدأها المستخدمون

تمثيل JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
الحقول
cancelSurveyResult

object (CancelSurveyResult)

المعلومات التي يقدّمها المستخدم عند إكمال عملية إلغاء الاشتراك (استطلاع حول سبب الإلغاء)

cancelTime

string (Timestamp format)

الوقت الذي ألغى فيه المستخدم الاشتراك قد يظل بإمكان المستخدم الوصول إلى الاشتراك بعد هذا الوقت. استخدِم lineItems.expiry_time لتحديد ما إذا كان المستخدم لا يزال لديه إذن الوصول.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

CancelSurveyResult

نتيجة استطلاع الإلغاء عندما ألغى المستخدم الاشتراك

تمثيل JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
الحقول
reason

enum (CancelSurveyReason)

السبب الذي اختاره المستخدم في استطلاع الإلغاء

reasonUserInput

string

يتم ضبط هذا الحقل فقط على CANCEL_SURVEY_REASON_OTHERS. هذه هي استجابة المستخدم ذات التصميم الحر للاستطلاع.

CancelSurveyReason

السبب الذي اختاره المستخدم في استطلاع الإلغاء

عمليات التعداد
CANCEL_SURVEY_REASON_UNSPECIFIED سبب غير محدَّد لإلغاء الاستطلاع
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE عدم استخدام الاشتراك بشكل كافٍ
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES المشاكل الفنية أثناء استخدام التطبيق
CANCEL_SURVEY_REASON_FOUND_BETTER_APP عثر المستخدم على تطبيق أفضل.
CANCEL_SURVEY_REASON_OTHERS أسباب أخرى

SystemInitiatedCancellation

لا يحتوي هذا النوع على أي حقول.

معلومات خاصة بعمليات الإلغاء التي يبدأها نظام Google

DeveloperInitiatedCancellation

لا يحتوي هذا النوع على أي حقول.

معلومات خاصة بعمليات الإلغاء التي يبدأها المطوّرون

ReplacementCancellation

لا يحتوي هذا النوع على أي حقول.

معلومات خاصة بعمليات الإلغاء الناتجة عن استبدال الاشتراك

TestPurchase

لا يحتوي هذا النوع على أي حقول.

تُستخدَم لتحديد ما إذا كانت عملية شراء الاشتراك هذه هي عملية شراء اختبارية.

AcknowledgementState

حالات التأكيد المحتملة للاشتراك

عمليات التعداد
ACKNOWLEDGEMENT_STATE_UNSPECIFIED حالة الإقرار غير محدَّدة.
ACKNOWLEDGEMENT_STATE_PENDING لم يتم تأكيد الاشتراك بعد.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED تم تأكيد الاشتراك.

ExternalAccountIdentifiers

معرّف حساب المستخدم في الخدمة الخارجية

تمثيل JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
الحقول
externalAccountId

string

معرّف حساب المستخدم في الخدمة الخارجية يظهر هذا الحقل فقط إذا تم ربط الحساب كجزء من مسار شراء الاشتراك.

obfuscatedExternalAccountId

string

نسخة مشفّرة من المعرّف المرتبط بشكلٍ فريد بحساب المستخدم في تطبيقك، وتظهر عمليات الشراء التالية: * إذا تم ربط الحساب كجزء من مسار شراء الاشتراك. * تم تحديدها باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid عند إجراء عملية الشراء.

obfuscatedExternalProfileId

string

هو إصدار مشوّش من المعرّف المرتبط بشكلٍ فريد بالملف الشخصي للمستخدم في تطبيقك، ولا يظهر إلا إذا تم تحديده باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid عند إجراء عملية الشراء.

SubscribeWithGoogleInfo

المعلومات المرتبطة بعمليات الشراء التي تتم باستخدام "اشترِك مع Google"

تمثيل JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
الحقول
profileId

string

معرّف الملف الشخصي في حساب Google للمستخدم عند شراء الاشتراك

profileName

string

اسم الملف الشخصي للمستخدم عند شراء الاشتراك

emailAddress

string

عنوان البريد الإلكتروني للمستخدم عند شراء الاشتراك

givenName

string

الاسم الأول للمستخدم عند شراء الاشتراك

familyName

string

اسم عائلة المستخدم عند شراء الاشتراك

SubscriptionPurchaseLineItem

معلومات على مستوى المنتج لعملية شراء اشتراك

تمثيل JSON
{
  "productId": string,
  "expiryTime": string,
  "latestSuccessfulOrderId": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  },
  "deferredItemRemoval": {
    object (DeferredItemRemoval)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  },
  "itemReplacement": {
    object (ItemReplacement)
  },
  "offerPhase": {
    object (OfferPhase)
  }
}
الحقول
productId

string

معرّف المنتج الذي تم شراؤه (على سبيل المثال، monthly001).

expiryTime

string (Timestamp format)

الوقت الذي انتهت فيه صلاحية الاشتراك أو ستنتهي فيه ما لم يتم تمديد إذن الوصول (مثل التجديد).

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

latestSuccessfulOrderId

string

تمثّل هذه السمة معرّف الطلب الأخير الناجح المرتبط بهذا المنتج. لا يكون هذا الحقل متوفّرًا إذا لم يكن المستخدم يملك العنصر بعد (على سبيل المثال، العنصر الذي تم تأجيل استبداله).

حقل الربط plan_type نوع خطة الاشتراك يمكن أن يكون التعليق plan_type إحدى القيم التالية فقط:
autoRenewingPlan

object (AutoRenewingPlan)

يتم تجديد الاشتراك تلقائيًا.

prepaidPlan

object (PrepaidPlan)

المنتج مدفوع مسبقًا.

offerDetails

object (OfferDetails)

تفاصيل العرض لهذا المنتج

حقل الربط deferred_item_change يكون الحقل متوفّرًا عندما يكون للعنصر تغيير مؤجّل. يمكن إزالتها أو استبدالها. يمكن أن يكون التعليق deferred_item_change إحدى القيم التالية فقط:
deferredItemReplacement

object (DeferredItemReplacement)

معلومات عن استبدال السلع المؤجّلة

deferredItemRemoval

object (DeferredItemRemoval)

معلومات حول إزالة العناصر المؤجّلة

signupPromotion

object (SignupPromotion)

تفاصيل العرض الترويجي حول هذا المنتج يتم ضبط هذا الحقل فقط إذا تم تطبيق عرض ترويجي أثناء الاشتراك.

itemReplacement

object (ItemReplacement)

تفاصيل العنصر الذي سيتم استبداله لا تتم تعبئة هذا الحقل إلا إذا استبدل هذا العنصر عنصرًا آخر في اشتراك سابق، ولا يكون متاحًا إلا لمدة 60 يومًا بعد وقت الشراء.

offerPhase

object (OfferPhase)

تفاصيل مرحلة العرض الترويجي الحالية لهذا المنتج

AutoRenewingPlan

تمثّل هذه السمة معلومات متعلّقة بخطة تتجدّد تلقائيًا.

تمثيل JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  },
  "priceStepUpConsentDetails": {
    object (PriceStepUpConsentDetails)
  }
}
الحقول
autoRenewEnabled

boolean

إذا كان الاشتراك مضبوطًا حاليًا على التجديد التلقائي، مثلاً لم يلغِ المستخدم الاشتراك

recurringPrice

object (Money)

السعر المتكرّر الحالي للخطة التي يتم تجديدها تلقائيًا يُرجى العلم أنّ السعر لا يأخذ في الاعتبار الخصومات ولا يشمل الضرائب. بالنسبة إلى الأسعار غير شاملة الضريبة، يُرجى الاتصال بواجهة برمجة التطبيقات orders.get بدلاً من ذلك إذا كنت بحاجة إلى تفاصيل المعاملة.

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

تمثّل هذه السمة معلومات آخر تغيير في سعر المنتج منذ الاشتراك.

installmentDetails

object (InstallmentPlan)

تمثّل هذه السمة معلومات عن الاشتراك المتجدّد تلقائيًا وخطة التقسيط وحالتها.

SubscriptionItemPriceChangeDetails

معلومات حول تغيير سعر أحد عناصر الاشتراك

تمثيل JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
الحقول
newPrice

object (Money)

السعر المتكرّر الجديد لمنتج الاشتراك.

priceChangeMode

enum (PriceChangeMode)

يحدّد وضع تغيير السعر طريقة تغيير سعر المنتج في الاشتراك.

priceChangeState

enum (PriceChangeState)

اذكر حالة التغيير في السعر حاليًا.

expectedNewPriceChargeTime

string (Timestamp format)

يشير إلى وقت التجديد الذي سيصبح فيه تغيير السعر ساريًا للمستخدم. قد يتغيّر هذا التاريخ(إلى وقت لاحق) في حال تم تغيير وقت التجديد، مثل إيقاف الاشتراك مؤقتًا. لا تتم تعبئة هذا الحقل إلا إذا لم يتم تطبيق تغيير السعر.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

PriceChangeMode

وضع تغيير السعر.

عمليات التعداد
PRICE_CHANGE_MODE_UNSPECIFIED لم يتم تحديد وضع تغيير السعر. يجب عدم ضبط هذه القيمة مطلقًا.
PRICE_DECREASE إذا كان سعر الاشتراك سينخفض
PRICE_INCREASE إذا كان سعر الاشتراك سيزيد وكان على المستخدم الموافقة على ذلك
OPT_OUT_PRICE_INCREASE إذا كان سعر الاشتراك سيرتفع في وضع الزيادة في السعر التي لا تتطلّب موافقة

PriceChangeState

حالة تغيير السعر

عمليات التعداد
PRICE_CHANGE_STATE_UNSPECIFIED لم يتم تحديد حالة تغيير السعر. يجب عدم استخدام هذه القيمة.
OUTSTANDING في انتظار موافقة المستخدم على تغيير السعر
CONFIRMED يتم تأكيد حدوث تغيير في السعر للمستخدم.
APPLIED تم تطبيق تغيير السعر، أي بدأ تحصيل السعر الجديد من المستخدم.
CANCELED تم إلغاء تغيير السعر.

InstallmentPlan

تمثّل هذه السمة معلومات عن خطة الدفع بالتقسيط.

تمثيل JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
الحقول
initialCommittedPaymentsCount

integer

إجمالي عدد الدفعات التي يلتزم بها المستخدم في البداية.

subsequentCommittedPaymentsCount

integer

إجمالي عدد الدفعات التي سيلتزم بها المستخدم بعد كل مدة التزام. يشير الخيار "فارغ" إلى أنّ خطة التقسيط ستعود إلى الاشتراك العادي الذي يتم تجديده تلقائيًا بعد الالتزام الأوّلي.

remainingCommittedPaymentsCount

integer

إجمالي عدد الدفعات المتبقية المطلوب تسديدها في دورة التجديد هذه

pendingCancellation

object (PendingCancellation)

في حال توفّرها، تكون خطة التقسيط هذه في انتظار الإلغاء. لن يتم الإلغاء إلا بعد أن يكمل المستخدم جميع الدفعات الملتزم بها.

PendingCancellation

لا يحتوي هذا النوع على أي حقول.

هذا مؤشر يوضح ما إذا كان هناك إلغاء معلّق لخطة التقسيط الافتراضية. لن يتم الإلغاء إلا بعد أن يكمل المستخدم جميع الدفعات الملتزم بها.

PriceStepUpConsentDetails

معلومات ذات صلة بزيادة السعر التي تتطلّب موافقة المستخدم

تمثيل JSON
{
  "state": enum (ConsentState),
  "consentDeadlineTime": string,
  "newPrice": {
    object (Money)
  }
}
الحقول
state

enum (ConsentState)

النتائج فقط. حالة الموافقة على زيادة السعر

consentDeadlineTime

string (Timestamp format)

الموعد النهائي الذي يجب أن يقدّم المستخدم موافقته بحلوله في حال عدم تقديم الموافقة بحلول هذا الوقت، سيتم إلغاء الاشتراك.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

newPrice

object (Money)

السعر الجديد الذي يتطلّب موافقة المستخدم

ConsentState

حالة الموافقة على زيادة السعر

عمليات التعداد
CONSENT_STATE_UNSPECIFIED حالة الموافقة غير محدَّدة
PENDING لم يقدّم المستخدم موافقته بعد.
CONFIRMED وافق المستخدم على السعر الجديد الذي ينتظر أن يصبح ساريًا.
COMPLETED وافق المستخدم على السعر الجديد وتم تطبيقه.

PrepaidPlan

تمثّل هذه السمة معلومات ذات صلة بخطة الدفع المُسبَق.

تمثيل JSON
{
  "allowExtendAfterTime": string
}
الحقول
allowExtendAfterTime

string (Timestamp format)

إذا كان هذا الحقل متوفّرًا، يشير إلى الوقت الذي يُسمح بعده بإجراء عمليات شراء لإضافة رصيد إلى خطة الدفع المُسبَق. لن تظهر هذه الحالة لخطط الدفع المُسبق المنتهية الصلاحية.

يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: "2014-10-02T15:01:23Z" أو "2014-10-02T15:01:23.045123456Z" أو "2014-10-02T15:01:23+05:30".

OfferDetails

تقدّم هذه السمة معلومات تفصيلية ذات صلة ببند شراء.

تمثيل JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
الحقول
offerTags[]

string

أحدث علامات العروض المرتبطة بالعرض وتشمل العلامات الموروثة من الخطة الأساسية.

basePlanId

string

معرّف الخطة الأساسية يجب أن تكون هذه السمة متوفّرة في جميع الخطط الأساسية والعروض.

offerId

string

معرّف العرض الترويجي يظهر هذا الحقل فقط في العروض المخفَّضة.

DeferredItemReplacement

تمثّل هذه السمة معلومات ذات صلة باستبدال السلع المؤجّل.

تمثيل JSON
{
  "productId": string
}
الحقول
productId

string

رقم تعريف المنتج الذي سيحلّ محلّ رقم تعريف المنتج الحالي

DeferredItemRemoval

لا يحتوي هذا النوع على أي حقول.

تمثّل هذه السمة معلومات ذات صلة باستبدال السلع المؤجّل.

SignupPromotion

العرض الترويجي الذي تم تطبيقه على هذه السلعة عند شرائها

تمثيل JSON
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
الحقول
حقل الربط promotion_type تمثّل هذه السمة نوع العرض الترويجي المطبَّق على السلعة. يمكن أن يكون التعليق promotion_type إحدى القيم التالية فقط:
oneTimeCode

object (OneTimeCode)

تم تطبيق رمز يُستخدَم لمرة واحدة.

vanityCode

object (VanityCode)

تم تطبيق رمز مميّز.

OneTimeCode

لا يحتوي هذا النوع على أي حقول.

رمز ترويجي للاستخدام مرة واحدة

VanityCode

رمز ترويجي محدّد مسبقًا يمكن استخدامه عدة مرات

تمثيل JSON
{
  "promotionCode": string
}
الحقول
promotionCode

string

تمثّل هذه السمة الرمز الترويجي.

ItemReplacement

تفاصيل حول بند في الاشتراك سيتم استبداله

تمثيل JSON
{
  "productId": string,
  "replacementMode": enum (ReplacementMode),
  "basePlanId": string,
  "offerId": string
}
الحقول
productId

string

معرّف المنتج لبند الاشتراك الذي سيتم استبداله.

replacementMode

enum (ReplacementMode)

وضع الاستبدال الذي تم تطبيقه أثناء عملية الشراء

basePlanId

string

معرّف الخطة الأساسية لبند الاشتراك الذي سيتم استبداله.

offerId

string

معرّف العرض الترويجي لبند الاشتراك الذي سيتم استبداله، إذا كان ذلك منطبقًا

ReplacementMode

وضع استبدال الاشتراك.

عمليات التعداد
REPLACEMENT_MODE_UNSPECIFIED وضع الاستبدال غير محدّد
WITH_TIME_PRORATION سيتم احتساب الخطة الجديدة على أساس تناسبي وإضافة رصيد من الخطة القديمة.
CHARGE_PRORATED_PRICE سيتم تحصيل سعر نسبي من المستخدم مقابل الخطة الجديدة.
WITHOUT_PRORATION ستحلّ الخطة الجديدة محلّ الخطة القديمة بدون احتساب الوقت النسبي.
CHARGE_FULL_PRICE سيتم تحصيل السعر الكامل مقابل الخطة الجديدة من المستخدم.
DEFERRED سيتم إلغاء الخطة القديمة وستصبح الخطة الجديدة سارية المفعول بعد انتهاء صلاحية الخطة القديمة.
KEEP_EXISTING ستبقى الخطة بدون تغيير مع هذا الاستبدال.

OfferPhase

تفاصيل مرحلة العرض

تمثيل JSON
{

  // Union field offer_phase can be only one of the following:
  "prorationPeriod": {
    object (ProrationPeriodOfferPhase)
  },
  "freeTrial": {
    object (FreeTrialOfferPhase)
  },
  "introductoryPrice": {
    object (IntroductoryPriceOfferPhase)
  },
  "basePrice": {
    object (BasePriceOfferPhase)
  }
  // End of list of possible types for union field offer_phase.
}
الحقول
حقل الربط offer_phase تعرض هذه السمة تفاصيل مرحلة العرض. يمكن أن يكون التعليق offer_phase إحدى القيم التالية فقط:
prorationPeriod

object (ProrationPeriodOfferPhase)

تحديد ما إذا كانت مرحلة العرض الترويجي هي فترة احتساب نسبي

freeTrial

object (FreeTrialOfferPhase)

تحديد ما إذا كانت مرحلة العرض الترويجي هي فترة تجريبية مجانية

introductoryPrice

object (IntroductoryPriceOfferPhase)

تحديد ما إذا كانت مرحلة العرض الترويجي هي مرحلة عرض بسعر تمهيدي

basePrice

object (BasePriceOfferPhase)

تحديد وقت بدء مرحلة العرض الترويجي كإحدى مراحل تسعير الخطة الأساسية

ProrationPeriodOfferPhase

تفاصيل حول مرحلة العرض خلال فترة التناسب

تمثيل JSON
{
  "originalOfferPhaseType": enum (OriginalOfferPhaseType)
}
الحقول
originalOfferPhaseType

enum (OriginalOfferPhaseType)

تمثّل هذه السمة نوع مرحلة العرض الترويجي الأصلية قبل فترة التوزيع النسبي. يجب ضبط هذا الحقل فقط عند تعديل فترة التناسب من مرحلة عرض حالي.

OriginalOfferPhaseType

تمثّل هذه السمة مرحلة العرض الترويجي الأصلية لدفع العرض الترويجي، إذا كان دفع العرض الترويجي عبارة عن دفعة نسبية.

عمليات التعداد
ORIGINAL_OFFER_PHASE_TYPE_UNSPECIFIED نوع مرحلة العرض الترويجي الأصلي غير محدَّد.
BASE يكون الاشتراك في مرحلة التسعير الأساسي (مثل السعر الكامل).
INTRODUCTORY يكون الاشتراك في مرحلة سعر تمهيدي.
FREE_TRIAL الاشتراك في فترة تجريبية مجانية

FreeTrialOfferPhase

لا يحتوي هذا النوع على أي حقول.

تفاصيل حول مرحلة عرض الفترة التجريبية المجانية

IntroductoryPriceOfferPhase

لا يحتوي هذا النوع على أي حقول.

تفاصيل حول مرحلة عرض السعر التمهيدي

BasePriceOfferPhase

لا يحتوي هذا النوع على أي حقول.

تفاصيل حول مرحلة عرض السعر الأساسي

OutOfAppPurchaseContext

معلومات خاصة بعملية الشراء خارج التطبيق

تمثيل JSON
{
  "expiredExternalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "expiredPurchaseToken": string
}
الحقول
expiredExternalAccountIdentifiers

object (ExternalAccountIdentifiers)

معرّف حساب المستخدم من آخر اشتراك منتهي الصلاحية لرمز التخزين التعريفي هذا.

expiredPurchaseToken

string

الرمز المميّز لآخر اشتراك منتهي الصلاحية يجب استخدام رمز الشراء المميز هذا فقط للمساعدة في تحديد هوية المستخدم إذا كان الرابط بين purchaseToken والمستخدم مخزَّنًا في قاعدة البيانات. لا يمكن استخدام هذا الرمز لإجراء طلب إلى Google Developer API إذا مرّ أكثر من 60 يومًا على انتهاء صلاحيته.

OnHoldStateContext

سياق إضافي حول الاشتراكات في الحالة ON_HOLD.

تمثيل JSON
{

  // Union field on_hold_reason can be only one of the following:
  "renewalDeclined": {
    object (RenewalDeclinedContext)
  }
  // End of list of possible types for union field on_hold_reason.
}
الحقول
حقل الربط on_hold_reason سبب حالة ON_HOLD للاشتراك يمكن أن يكون التعليق on_hold_reason إحدى القيم التالية فقط:
renewalDeclined

object (RenewalDeclinedContext)

اختيارية: تم رفض عملية الدفع مقابل التجديد.

RenewalDeclinedContext

السياق المرتبط بحالة رفض التجديد

تمثيل JSON
{
  "pendingOrderId": string
}
الحقول
pendingOrderId

string

الحقل مطلوب. معرّف الطلب المعلّق أو الذي تعذّر تنفيذه والذي تسبّب في هذه الحالة.

InGracePeriodStateContext

سياق إضافي حول الاشتراكات في حالة IN_GRACE_PERIOD

تمثيل JSON
{

  // Union field grace_period_reason can be only one of the following:
  "renewalDeclined": {
    object (RenewalDeclinedContext)
  }
  // End of list of possible types for union field grace_period_reason.
}
الحقول
حقل الربط grace_period_reason سبب ضبط حالة الاشتراك على IN_GRACE_PERIOD يمكن أن يكون التعليق grace_period_reason إحدى القيم التالية فقط:
renewalDeclined

object (RenewalDeclinedContext)

اختيارية: تم رفض عملية الدفع مقابل التجديد.

الطُرق

cancel

إلغاء عملية شراء اشتراك للمستخدم

defer

تؤجّل هذه السمة تجديد الاشتراك.

get

الحصول على بيانات وصفية حول اشتراك

revoke

إلغاء عملية شراء اشتراك للمستخدم

رموز الخطأ

تعرض عمليات هذا المرجع رموز خطأ HTTP التالية:

رمز الخطأ السبب الوصف الدقة
400 / 410 subscriptionExpired انتهت صلاحية الاشتراك ولا يمكن إجراء العملية المطلوبة. تحقَّق من وقت انتهاء صلاحية الاشتراك. لا يُسمح بهذه العملية في الاشتراكات المنتهية الصلاحية.
400 subscriptionInvalidArgument تم تقديم وسيطة غير صالحة في طلب الاشتراك. راجِع مستندات واجهة برمجة التطبيقات وتأكَّد من توفير جميع الحقول المطلوبة وتنسيقها بشكلٍ صحيح.
400 invalidPurchaseState عملية الشراء ليست في حالة صالحة لتنفيذ العملية المطلوبة. على سبيل المثال، قد تحاول إقرار عملية شراء تم استهلاكها أو إلغاء اشتراك غير نشط. تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة تنفيذ العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء.
400 invalidValue تم إدخال قيمة غير صالحة في الطلب. يتم عرض هذا الرمز غالبًا عند تقديم رمز مميّز غير صالح أو غير مكتمل لعملية الشراء. صحِّح قيمة الحقل غير الصالحة في نص الطلب أو المَعلمات استنادًا إلى مرجع واجهة برمجة التطبيقات.
400 prepaidSubscriptionNotSupported العملية المطلوبة غير متاحة للاشتراكات المدفوعة مسبقًا. تأكَّد من أنّ العملية تنطبق على نوع الاشتراك. هذا الخطأ خاص بطُرق مثل Cancel.
400 productNotOwnedByUser رمز الشراء المقدَّم صالح، ولكن المستخدم لا يملك المنتج حاليًا. يمكن أن يحدث ذلك إذا تم ردّ الأموال المدفوعة مقابل عملية الشراء أو تم إبطالها أو انتهت صلاحيتها قبل تأكيدها. تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة تنفيذ العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء.
400 purchaseTokenMismatch لا يتطابق رمز الشراء المميز المقدَّم مع عملية الشراء أو اسم الحزمة أو معرّف الاشتراك أو معرّف المنتج. تأكَّد من أنّ جميع التفاصيل الواردة في الطلب صحيحة ومتطابقة.
400 required لم يتم تضمين حقل أو مَعلمة مطلوبة في الطلب. راجِع مستندات واجهة برمجة التطبيقات للتأكّد من تضمين جميع الحقول والمَعلمات الإلزامية.
400 unsupportedIabType العملية غير متاحة لنوع الفوترة داخل التطبيقات المحدّد. تأكَّد من أنّ طريقة استخدام واجهة برمجة التطبيقات متوافقة مع نوع العنصر الذي تتم إدارته.
403 userInsufficientPermission لا يملك المستخدم الإذن الكافي لتنفيذ العملية المطلوبة. تأكَّد من أنّ المستخدم المصادَق عليه لديه الأذونات اللازمة في Google Play Console. لمزيد من التفاصيل، يُرجى الاطّلاع على استخدام حساب خدمة.
404 notFound تعذَّر العثور على المورد المطلوب. تأكَّد من صحة المعرّفات (مثل رمز الشراء واسم الحزمة ومعرّف المنتج ومعرّف الاشتراك).
409 concurrentUpdate حدثت محاولة لتعديل عنصر يتم تعديله في الوقت نفسه. أعِد محاولة إرسال الطلب باستخدام خوارزمية الرقود الأسي الثنائي. تجنَّب إجراء تعديلات متزامنة على المرجع نفسه.
410 purchaseTokenNoLongerValid رمز الشراء غير صالح نهائيًا لأنّه تم حذف حساب المستخدم المرتبط به أو لم يعُد سجلّ الشراء متوفّرًا. يجب التوقّف عن استخدام رمز الشراء هذا.
410 subscriptionNoLongerAvailable لم يعُد بإمكانك الاستعلام عن عملية شراء الاشتراك لأنّ صلاحيتها انتهت منذ فترة طويلة. يشير هذا الخطأ إلى أنّ صلاحية الاشتراك انتهت منذ أكثر من 60 يومًا. لن يعود بإمكانك طلب هذه الاشتراكات.
5xx Generic error خطأ عام في خادم Google Play أعِد محاولة إرسال طلبك.

في حال استمرار المشكلة، يُرجى التواصل مع مدير حسابك على Google Play أو إرسال طلب دعم. ننصحك بالاطّلاع على لوحة البيانات الخاصة بحالة Play لمعرفة ما إذا كان هناك أي انقطاع معروف في الخدمة.