- المرجع: SubscriptionPurchaseV2
- SubscriptionState
- PausedStateContext
- CanceledStateContext
- UserInitiatedCancellation
- CancelSurveyResult
- CancelSurveyReason
- SystemInitiatedCancellation
- DeveloperInitiatedCancellation
- ReplacementCancellation
- TestPurchase
- AcknowledgementState
- ExternalAccountIdentifiers
- SubscribeWithGoogleInfo
- SubscriptionPurchaseLineItem
- AutoRenewingPlan
- SubscriptionItemPriceChangeDetails
- PriceChangeMode
- PriceChangeState
- InstallmentPlan
- PendingCancellation
- PrepaidPlan
- OfferDetails
- DeferredItemReplacement
- SignupPromotion
- OneTimeCode
- VanityCode
- الطُرق
المرجع: SubscriptionPurchaseV2
يشير إلى حالة شراء اشتراك المستخدم.
تمثيل JSON |
---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
الحقول | |
---|---|
kind |
يمثّل هذا النوع عنصر SubscriptionPurchaseV2 في خدمة androidpublisher. |
region |
رمز البلد أو المنطقة وفقًا لمعيار ISO 3166-1 alpha-2 الذي يستخدمه المستخدم في الفوترة في وقت منح الاشتراك. |
line |
معلومات على مستوى السلعة لعملية شراء اشتراك يجب أن تكون العناصر في عملية الشراء نفسها إمّا كلها من النوع AutoRenewingPlan أو كلها من النوع PrepaidPlan. |
start |
الوقت الذي تم فيه منح الاشتراك لم يتم ضبطه للاشتراكات المعلّقة (تم إنشاء الاشتراك ولكنّه في انتظار الدفع أثناء الاشتراك). يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
subscription |
الحالة الحالية للاشتراك |
latest |
معرّف الطلب الخاص بآخر طلب مرتبط بعملية شراء الاشتراك. بالنسبة إلى الاشتراكات التي يتم تجديدها تلقائيًا، هذا هو معرّف طلب الاشتراك في حال لم يتم تجديده بعد، أو معرّف آخر طلب متكرّر (طلب ناجح أو في انتظار المراجعة أو مرفوض). بالنسبة إلى الاشتراك المدفوع مسبقًا، هذا هو معرّف الطلب المرتبط برمز مفتاح الشراء الذي تم الاستعلام عنه. |
linked |
الرمز المميّز لعملية شراء الاشتراك القديم إذا كان هذا الاشتراك هو أحد الاشتراكات التالية: * إعادة الاشتراك في اشتراك تم إلغاؤه ولكن لم تنته صلاحيته * الترقية/التنزيل من اشتراك سابق * التحويل من اشتراك مدفوع مسبقًا إلى اشتراك يتجدّد تلقائيًا * التحويل من اشتراك يتجدّد تلقائيًا إلى اشتراك مدفوع مسبقًا * إضافة رصيد إلى اشتراك مدفوع مسبقًا |
paused |
سياق إضافي حول الاشتراكات المتوقفة مؤقتًا لا يظهر هذا الحقل إلا إذا كان الاشتراك يحتوي حاليًا على subscriptionState SUBSCRIPTION_STATE_PAUSED. |
canceled |
سياق إضافي حول الاشتراكات التي تم إلغاؤها لا يظهر هذا الحقل إلا إذا كان الاشتراك يحتوي حاليًا على subscriptionState SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED. |
test |
لا يظهر هذا الحقل إلا إذا كانت عملية شراء الاشتراك هذه عملية شراء تجريبية. |
acknowledgement |
حالة تأكيد الاشتراك |
external |
معرّف حساب المستخدم في الخدمة التابعة لجهة خارجية |
subscribe |
الملف الشخصي للمستخدم المرتبط بعمليات الشراء التي تم إجراؤها باستخدام ميزة "الاشتراك باستخدام حساب 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 } |
الحقول | |
---|---|
auto |
الوقت الذي سيتم فيه استئناف الاشتراك تلقائيًا يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
CanceledStateContext
معلومات خاصة باشتراك في حالة SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED
تمثيل JSON |
---|
{ // Union field |
الحقول | |
---|---|
حقل الربط cancellation_reason سبب إلغاء الاشتراك يمكن أن يكون cancellation_reason واحدًا فقط مما يلي: |
|
user |
ألغى المستخدم الاشتراك. |
system |
تم إلغاء الاشتراك من قِبل النظام، مثلاً بسبب مشكلة في الفوترة. |
developer |
تم إلغاء الاشتراك من قِبل المطوّر. |
replacement |
تم استبدال الاشتراك باشتراك جديد. |
UserInitiatedCancellation
معلومات خاصة بالإلغاءات التي بدأها المستخدمون
تمثيل JSON |
---|
{
"cancelSurveyResult": {
object ( |
الحقول | |
---|---|
cancel |
المعلومات التي يقدّمها المستخدم عند إكمال عملية إلغاء الاشتراك (استطلاع سبب الإلغاء) |
cancel |
الوقت الذي ألغى فيه المستخدم الاشتراك قد يظل بإمكان المستخدم الوصول إلى الاشتراك بعد هذه الفترة. استخدِم lineItems.expiry_time لتحديد ما إذا كان لا يزال بإمكان المستخدِم الوصول إلى الحساب. يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
CancelSurveyResult
نتيجة استطلاع إلغاء الاشتراك عندما ألغى المستخدم الاشتراك
تمثيل JSON |
---|
{
"reason": enum ( |
الحقول | |
---|---|
reason |
السبب الذي اختاره المستخدم في استطلاع أسباب الإلغاء. |
reason |
يتم ضبطه فقط لCANCEL_SURVEY_REASON_OTHERS. هذه هي ردّة المستخدم في النوافذ الحرة على الاستطلاع. |
CancelSurveyReason
السبب الذي اختاره المستخدم في استطلاع أسباب الإلغاء.
عمليات التعداد | |
---|---|
CANCEL_SURVEY_REASON_UNSPECIFIED |
سبب إلغاء الاستطلاع غير محدّد. |
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE |
عدم استخدام الاشتراك بشكل كافٍ |
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES |
مشاكل فنية أثناء استخدام التطبيق |
CANCEL_SURVEY_REASON_COST_RELATED |
المشاكل المتعلّقة بالتكلفة |
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 } |
الحقول | |
---|---|
external |
معرّف حساب المستخدم في الخدمة التابعة لجهة خارجية لا يظهر هذا الحقل إلا إذا تم ربط الحساب كجزء من عملية شراء الاشتراك. |
obfuscated |
نسخة مشوّشة من المعرّف المرتبط بشكل فريد بحساب المستخدم في تطبيقك. يتم تقديمه لإجراء عمليات الشراء التالية: * إذا تم ربط الحساب كجزء من عملية شراء الاشتراك. * تم تحديده باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid عند إجراء عملية الشراء. |
obfuscated |
نسخة مشوّشة من المعرّف المرتبطة بشكل فريد بملف تعريف المستخدم في تطبيقك. لا تظهر هذه السمة إلا إذا تم تحديدها باستخدام 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 } |
الحقول | |
---|---|
profile |
رقم تعريف الملف الشخصي للمستخدم على Google عند شراء الاشتراك |
profile |
اسم الملف الشخصي للمستخدم عند شراء الاشتراك |
email |
عنوان البريد الإلكتروني للمستخدم عند شراء الاشتراك |
given |
الاسم الأول للمستخدم عند شراء الاشتراك. |
family |
اسم عائلة المستخدم عند شراء الاشتراك |
SubscriptionPurchaseLineItem
معلومات على مستوى السلعة لعملية شراء اشتراك
تمثيل JSON |
---|
{ "productId": string, "expiryTime": string, // Union field |
الحقول | |
---|---|
product |
معرّف المنتج الذي تم شراؤه (على سبيل المثال، monthly001). |
expiry |
الوقت الذي انتهت فيه صلاحية الاشتراك أو ستنتهي فيه ما لم يتم تمديد إذن الوصول (مثل التجديد). يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
حقل الربط plan_type نوع خطة الاشتراك يمكن أن يكون plan_type واحدًا فقط مما يلي: |
|
auto |
يتم تجديد الاشتراك تلقائيًا. |
prepaid |
تم الدفع مسبقًا مقابل العنصر. |
offer |
تفاصيل العرض لهذا المنتج |
حقل الربط deferred_item_change يظهر الحقل عندما يكون هناك تغيير مؤجّل في أحد العناصر. ويمكن إزالته أو استبداله. يمكن أن يكون deferred_item_change واحدًا فقط مما يلي: |
|
deferred |
معلومات عن استبدال السلعة بعد فترة |
signup |
تفاصيل العرض الترويجي لهذا المنتج لا يتم ضبط هذا الإعداد إلّا إذا تم تطبيق عرض ترويجي أثناء الاشتراك. |
AutoRenewingPlan
معلومات متعلقة بخطة تتجدّد تلقائيًا
تمثيل JSON |
---|
{ "autoRenewEnabled": boolean, "priceChangeDetails": { object ( |
الحقول | |
---|---|
auto |
إذا كان الاشتراك مضبوطًا حاليًا على التجديد التلقائي، مثلاً إذا لم يلغِ المستخدم الاشتراك |
price |
معلومات عن آخر تغيير في سعر المنتج منذ اشتراكك |
installment |
التزام خطة الأقساط والمعلومات المتعلّقة بالحالة للخطة التي تتجدّد تلقائيًا |
SubscriptionItemPriceChangeDetails
معلومات متعلّقة بتغيير سعر عنصر اشتراك
تمثيل JSON |
---|
{ "newPrice": { object ( |
الحقول | |
---|---|
new |
السعر الجديد المتكرّر لسلعة الاشتراك |
price |
يحدِّد وضع تغيير السعر كيفية تغيير سعر عنصر الاشتراك. |
price |
يُرجى تحديد المرحلة التي يجري فيها تغيير السعر حاليًا. |
expected |
وقت التجديد الذي سيسري فيه تغيير السعر على المستخدم وقد يتغيّر هذا التاريخ(إلى وقت لاحق) بسبب الحالات التي يتغيّر فيها وقت التجديد، مثل حالات الإيقاف المؤقت. لا تتم تعبئة هذا الحقل إلا إذا لم يتم تطبيق تغيير السعر. يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
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 ( |
الحقول | |
---|---|
initial |
إجمالي عدد الدفعات التي يلتزم بها المستخدم في البداية. |
subsequent |
إجمالي عدد الدفعات التي سيلتزم بها المستخدم بعد كل فترة التزام. يعني القيمة الخالية أنّ خطة الأقساط ستعود إلى اشتراك عادي يتم تجديده تلقائيًا بعد الالتزام الأولي. |
remaining |
إجمالي عدد الدفعات المُلزمة المتبقية المطلوب دفعها في دورة التجديد هذه. |
pending |
إذا كانت متوفّرة، تكون خطة الأقساط هذه في انتظار إلغائها. ولن يتم إلغاء الاشتراك إلا بعد أن ينتهي المستخدم من جميع الدفعات المُلتزَم بها. |
PendingCancellation
لا يحتوي هذا النوع على أي حقول.
يشير ذلك إلى ما إذا كان هناك طلب إلغاء في انتظار المراجعة لخطّة الأقساط الافتراضية. ولن يتم إلغاء الاشتراك إلا بعد أن ينتهي المستخدم من جميع الدفعات المُلتزَم بها.
PrepaidPlan
معلومات ذات صلة بخطة دفع مُسبَق
تمثيل JSON |
---|
{ "allowExtendAfterTime": string } |
الحقول | |
---|---|
allow |
إذا كان هذا الحقل متوفّرًا، يشير إلى الوقت الذي يُسمح بعده بعمليات شراء رصيد إضافي للخطة المدفوعة مسبقًا. لن تظهر هذه الميزة للخطط المدفوعة مسبقًا المنتهية الصلاحية. يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu" وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: |
OfferDetails
تقدّم هذه السمة معلومات عن تفاصيل العرض ذات الصلة بعنصر شراء.
تمثيل JSON |
---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
الحقول | |
---|---|
offer |
أحدث علامات العرض المرتبطة بالعرض ويشمل ذلك العلامات المُكتسَبة من الخطة الأساسية. |
base |
معرّف الخطة الأساسية يجب عرضها لجميع الخطط الأساسية والعروض. |
offer |
معرّف العرض الترويجي لا يظهر إلا للعروض المخفَّضة. |
DeferredItemReplacement
معلومات ذات صلة باستبدال السلع المؤجَّل
تمثيل JSON |
---|
{ "productId": string } |
الحقول | |
---|---|
product |
سيحلّ المعرّف productId محلّ المعرّف الحالي productId. |
SignupPromotion
العرض الترويجي الذي تم تطبيقه على هذا المنتج عند شرائه
تمثيل JSON |
---|
{ // Union field |
الحقول | |
---|---|
حقل الربط promotion_type نوع العرض الترويجي المطبَّق على السلعة. يمكن أن يكون promotion_type واحدًا فقط مما يلي: |
|
one |
تم تطبيق رمز صالح لمرة واحدة. |
vanity |
تم تطبيق رمز تعريفي. |
OneTimeCode
لا يحتوي هذا النوع على أي حقول.
رمز ترويجي صالح للاستخدام مرة واحدة
VanityCode
رمز ترويجي محدّد مسبقًا ومتعدد الاستخدامات
تمثيل JSON |
---|
{ "promotionCode": string } |
الحقول | |
---|---|
promotion |
الرمز الترويجي |
الطُرق |
|
---|---|
|
الحصول على بيانات وصفية حول اشتراك |
|
إبطال عملية شراء اشتراك للمستخدم |