REST Resource: purchases.subscriptionsv2

المرجع: Subscription purchaseV2

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

تمثيل 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_PASENT.

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 انتهت صلاحية الاشتراك. تحتوي جميع العناصر على وقت انتهاء صلاحية في الماضي.
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.
}
الحقول
productId

string

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

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)

معلومات حول استبدال العنصر المؤجَّل

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 الحالي.

الطُرق

get

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

revoke

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