REST Resource: purchases.subscriptionsv2

المرجع: SubscriptionPurchaseV2

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

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

string

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

regionCode

string

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

lineItems[]

object (SubscriptionPurchaseLineItem)

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

startTime

string (Timestamp format)

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

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

subscriptionState

enum (SubscriptionState)

الحالة الحالية للاشتراك.

latestOrderId

string

مُعرّف الطلب لأحدث طلب مرتبط بشراء الاشتراك. بالنسبة إلى التجديد التلقائي للاشتراك، هذا هو مُعرّف الطلب لطلب الاشتراك إذا لم يتم تجديده بعد، أو معرّف آخر طلب متكرر (طلب ناجح أو في انتظار المراجعة أو مرفوض). بالنسبة إلى الاشتراك المدفوع مسبقًا، هذا هو مُعرّف الطلب المرتبط بالرمز المميز للشراء الذي تم طلبه.

linkedPurchaseToken

string

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

pausedStateContext

object (PausedStateContext)

سياق إضافي حول الاشتراكات المتوقّفة مؤقتًا لا يتوفّر هذا الإعداد إلا إذا كان الاشتراك يتضمّن حاليًا SubscriptionState SUBSCRIPTION_state_PAUSE.

canceledStateContext

object (CanceledStateContext)

سياق إضافي حول الاشتراكات الملغاة لا يتوفّر هذا الإعداد إلا إذا كان الاشتراك يتضمن حاليًا SubscriptionState SUBSCRIPTION_state_CANCELED أو SUBSCRIPTION_state_EXPIRED.

testPurchase

object (TestPurchase)

لا يتوفّر العرض إلا إذا كانت عملية شراء الاشتراك هذه عبارة عن عملية شراء تجريبية.

acknowledgementState

enum (AcknowledgementState)

حالة الإقرار بالاشتراك.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

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

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

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

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)

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

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

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 لتحديد ما إذا كان لا يزال بإمكان المستخدم الوصول إليه.

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

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,

  // 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)
  }
  // End of list of possible types for union field deferred_item_change.
}
الحقول
productId

string

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

expiryTime

string (Timestamp format)

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

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

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

object (AutoRenewingPlan)

يتم تجديد العنصر تلقائيًا.

prepaidPlan

object (PrepaidPlan)

السلعة مُسبقة الدفع.

offerDetails

object (OfferDetails)

تفاصيل العرض لهذه السلعة.

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

object (DeferredItemReplacement)

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

AutoRenewingPlan

المعلومات المرتبطة بخطة التجديد التلقائي

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

boolean

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

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)

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

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

PriceChangeMode

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

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

PriceChangeState

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

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

InstallmentPlan

معلومات حول خطة الأقساط.

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

integer

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

subsequentCommittedPaymentsCount

integer

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

remainingCommittedPaymentsCount

integer

إجمالي عدد الدفعات المُلتزم بها المتبقية والتي يجب دفعها في دورة التجديد هذه.

pendingCancellation

object (PendingCancellation)

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

PendingCancellation

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

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

PrepaidPlan

المعلومات المتعلقة بخطة الدفع المُسبَق.

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

string (Timestamp format)

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

طابع زمني بتنسيق RFC3339 حسب التوقيت العالمي المنسَّق (UTC) "زولو" بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

OfferDetails

معلومات تفاصيل العرض المرتبطة بعنصر شراء.

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

string

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

basePlanId

string

معرّف الخطة الأساسية. متاح لجميع الخطط الأساسية والعروض.

offerId

string

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

DeferredItemReplacement

معلومات متعلّقة بتأجيل استبدال السلعة

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

string

productId الذي سيحل محل productId الحالي.

الطُرق

get

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

revoke

يمكنك إبطال شراء اشتراك للمستخدم.