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 أو كلها من النوع PrepaidPlan.

startTime

string (Timestamp format)

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

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

subscriptionState

enum (SubscriptionState)

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

latestOrderId

string

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

linkedPurchaseToken

string

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

pausedStateContext

object (PausedStateContext)

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

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 على false في جميع العناصر.
SUBSCRIPTION_STATE_EXPIRED انتهت صلاحية الاشتراك. تحتوي جميع العناصر على وقت انتهاء صلاحية في الماضي.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED تم إلغاء المعاملة المعلّقة للاشتراك. إذا كانت عملية الشراء المعلّقة هذه مرتبطة باشتراك حالي، استخدِم linkedPurchaseToken للحصول على الحالة الحالية لهذا الاشتراك.

PausedStateContext

معلومات خاصة باشتراك في حالة إيقاف مؤقت

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

string (Timestamp format)

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

يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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 "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
الحقول
productId

string

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

expiryTime

string (Timestamp format)

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

يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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)

معلومات عن استبدال السلعة بعد فترة

signupPromotion

object (SignupPromotion)

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

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 "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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 "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "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.

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

الرمز الترويجي

الطُرق

get

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

revoke

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