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_PAUSED.

canceledStateContext

object (CanceledStateContext)

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

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

PausedStateContext

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

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

string (Timestamp format)

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

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

CanceledStateContext

المعلومات المتعلّقة باشتراك مُلغى

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

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

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)
  }
}
الحقول
autoRenewEnabled

boolean

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

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

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

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 يسري السعر الجديد، أي عندما يبدأ تحصيل السعر الجديد من المستخدم.

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 محل معرّف المنتج الحالي.

الطُرق

get

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

revoke

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