- المورد: SubscriptionPurchaseV2
- SubscriptionState
- PausedStateContext
- CanceledStateContext
- UserInitiatedCancellation
- CancelSurveyResult
- CancelSurveyReason
- SystemInitiatedCancellation
- DeveloperInitiatedCancellation
- ReplacementCancellation
- TestPurchase
- AcknowledgementState
- ExternalAccountIdentifiers
- SubscribeWithGoogleInfo
- SubscriptionPurchaseLineItem
- AutoRenewingPlan
- SubscriptionItemPriceChangeDetails
- PriceChangeMode
- PriceChangeState
- InstallmentPlan
- PendingCancellation
- PriceStepUpConsentDetails
- ConsentState
- PrepaidPlan
- OfferDetails
- DeferredItemReplacement
- DeferredItemRemoval
- SignupPromotion
- OneTimeCode
- VanityCode
- ItemReplacement
- ReplacementMode
- OfferPhase
- ProrationPeriodOfferPhase
- OriginalOfferPhaseType
- FreeTrialOfferPhase
- IntroductoryPriceOfferPhase
- BasePriceOfferPhase
- OutOfAppPurchaseContext
- OnHoldStateContext
- RenewalDeclinedContext
- InGracePeriodStateContext
- الطُرق
المورد: SubscriptionPurchaseV2
تشير إلى حالة شراء اشتراك المستخدم.
| تمثيل JSON |
|---|
{ "kind": string, "regionCode": string, "lineItems": [ { object ( |
| الحقول | |
|---|---|
kind |
يمثّل هذا النوع عنصر SubscriptionPurchaseV2 في خدمة androidpublisher. |
regionCode |
تمثّل هذه السمة رمز بلد/منطقة إرسال الفواتير للمستخدم وفقًا لمعيار ISO 3166-1 alpha-2 في وقت منح الاشتراك. |
lineItems[] |
معلومات على مستوى السلعة لعملية شراء اشتراك يجب أن تكون جميع السلع في عملية الشراء نفسها إما ضمن AutoRenewingPlan أو PrepaidPlan. |
startTime |
الوقت الذي تم فيه منح الاشتراك لم يتم ضبطها للاشتراكات المعلّقة (تم إنشاء الاشتراك ولكنّه ينتظر الدفع أثناء الاشتراك). يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
subscriptionState |
تمثّل هذه السمة حالة الاشتراك الحالية. |
latestOrderId |
تم إيقاف هذه السمة نهائيًا، لذا يُرجى استخدام lineItems.latest_successful_order_id بدلاً منها. معرّف الطلب الأخير المرتبط بشراء الاشتراك بالنسبة إلى الاشتراك الذي يتم تجديده تلقائيًا، يكون هذا هو معرّف طلب الاشتراك إذا لم يتم تجديده بعد، أو معرّف آخر طلب متكرّر (طلب ناجح أو معلّق أو مرفوض). بالنسبة إلى الاشتراك المدفوع مسبقًا، هذا هو معرّف الطلب المرتبط برمز الشراء المطلوب. |
linkedPurchaseToken |
الرمز المميز للشراء الخاص بالاشتراك القديم إذا كان هذا الاشتراك أحد ما يلي: * إعادة الاشتراك في اشتراك تم إلغاؤه ولكن لم تنتهِ صلاحيته * الترقية أو الرجوع إلى إصدار أقدم من اشتراك سابق * الانتقال من خطة دفع مُسبق إلى اشتراك يتم تجديده تلقائيًا * الانتقال من اشتراك يتم تجديده تلقائيًا إلى اشتراك مدفوع مُسبقًا * إضافة رصيد إلى اشتراك بالدفع المُسبق |
pausedStateContext |
سياق إضافي حول الاشتراكات المتوقّفة مؤقتًا لا يتم عرض هذا الحقل إلا إذا كان الاشتراك في حالة SUBSCRIPTION_STATE_PAUSED. |
canceledStateContext |
سياق إضافي حول الاشتراكات الملغاة لا يتم عرض هذا الحقل إلا إذا كانت قيمة subscriptionState الحالية هي SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED. |
testPurchase |
لا تظهر إلا إذا كانت عملية شراء الاشتراك هذه عبارة عن عملية شراء اختبارية. |
acknowledgementState |
تعرض هذه السمة حالة تأكيد الاشتراك. |
externalAccountIdentifiers |
معرّف حساب المستخدم في الخدمة التابعة لجهة خارجية |
subscribeWithGoogleInfo |
الملف الشخصي للمستخدم المرتبط بعمليات الشراء التي تم إجراؤها باستخدام "اشترِك مع Google" |
etag |
علامة كيان تمثّل الحالة الحالية للاشتراك. سيقدّم المطوّر علامة etag هذه لإجراءات الاشتراك. تتوفّر علامة etag هذه دائمًا للاشتراكات التي تتجدّد تلقائيًا والمدفوعة مُسبقًا. |
outOfAppPurchaseContext |
مزيد من المعلومات حول عمليات الشراء خارج التطبيق لا تظهر هذه المعلومات إلا لعمليات شراء إعادة الاشتراك (عمليات شراء الاشتراك التي تتم بعد انتهاء صلاحية الاشتراك السابق في المنتج نفسه) التي تتم من خلال مركز الاشتراكات في Google Play. ستتم إزالة هذا الحقل بعد إقرارك بالاشتراك. |
onHoldStateContext |
اختياريّ. سياق إضافي حول الاشتراكات في الحالة ON_HOLD. لا يتم عرض هذا الحقل إلا إذا كان الاشتراك يتضمّن حاليًا قيمة SUBSCRIPTION_STATE_ON_HOLD في subscriptionState. |
inGracePeriodStateContext |
اختياريّ. سياق إضافي حول الاشتراكات في حالة IN_GRACE_PERIOD لا يظهر هذا الحقل إلا إذا كان الاشتراك يتضمّن حاليًا قيمة subscriptionState SUBSCRIPTION_STATE_IN_GRACE_PERIOD. |
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 |
انتهت صلاحية الاشتراك. تحتوي جميع العناصر على expiryTime في الماضي. |
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED |
تم إلغاء معاملة الاشتراك التي في انتظار المعالجة. إذا كانت عملية الشراء المعلّقة هذه مرتبطة باشتراك حالي، استخدِم linkedPurchaseToken للحصول على الحالة الحالية لهذا الاشتراك. |
PausedStateContext
معلومات خاصة باشتراك في حالة "متوقّف مؤقتًا".
| تمثيل JSON |
|---|
{ "autoResumeTime": string } |
| الحقول | |
|---|---|
autoResumeTime |
الوقت الذي سيتم فيه استئناف الاشتراك تلقائيًا يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
CanceledStateContext
معلومات خاصة باشتراك في الحالة SUBSCRIPTION_STATE_CANCELED أو SUBSCRIPTION_STATE_EXPIRED
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط cancellation_reason سبب إلغاء الاشتراك يمكن أن يكون التعليق cancellation_reason إحدى القيم التالية فقط: |
|
userInitiatedCancellation |
ألغى المستخدم الاشتراك. |
systemInitiatedCancellation |
تم إلغاء الاشتراك من قِبل النظام، بسبب مشكلة في الفوترة مثلاً. |
developerInitiatedCancellation |
ألغى المطوّر الاشتراك. |
replacementCancellation |
تم استبدال الاشتراك باشتراك جديد. |
UserInitiatedCancellation
معلومات خاصة بعمليات الإلغاء التي يبدأها المستخدمون
| تمثيل JSON |
|---|
{
"cancelSurveyResult": {
object ( |
| الحقول | |
|---|---|
cancelSurveyResult |
المعلومات التي يقدّمها المستخدم عند إكمال عملية إلغاء الاشتراك (استطلاع حول سبب الإلغاء) |
cancelTime |
الوقت الذي ألغى فيه المستخدم الاشتراك وقد يظل بإمكان المستخدم الوصول إلى الاشتراك بعد هذا الوقت. استخدِم lineItems.expiry_time لتحديد ما إذا كان المستخدم لا يزال لديه إذن الوصول. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
CancelSurveyResult
نتيجة استطلاع الإلغاء عندما ألغى المستخدم الاشتراك
| تمثيل JSON |
|---|
{
"reason": enum ( |
| الحقول | |
|---|---|
reason |
السبب الذي اختاره المستخدم في استطلاع الإلغاء |
reasonUserInput |
يتم ضبط هذا الحقل فقط على 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 } |
| الحقول | |
|---|---|
externalAccountId |
معرّف حساب المستخدم في الخدمة التابعة لجهة خارجية يظهر هذا الحقل فقط إذا تم ربط الحساب كجزء من عملية شراء الاشتراك. |
obfuscatedExternalAccountId |
نسخة مشفّرة من المعرّف المرتبط بشكل فريد بحساب المستخدم في تطبيقك، وتظهر في عمليات الشراء التالية: * إذا تم ربط الحساب كجزء من عملية شراء الاشتراك. * تم تحديدها باستخدام https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid عند إجراء عملية الشراء. |
obfuscatedExternalProfileId |
هو إصدار مشوّش من رقم التعريف المرتبط بشكل فريد بالملف الشخصي للمستخدم في تطبيقك، ولا يظهر إلا إذا تم تحديده باستخدام 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 |
معرّف الملف الشخصي في حساب Google للمستخدم عند شراء الاشتراك |
profileName |
اسم الملف الشخصي للمستخدم عند شراء الاشتراك |
emailAddress |
عنوان البريد الإلكتروني للمستخدم عند شراء الاشتراك |
givenName |
الاسم الأول للمستخدم عند شراء الاشتراك |
familyName |
اسم عائلة المستخدم عند شراء الاشتراك |
SubscriptionPurchaseLineItem
معلومات على مستوى السلعة لعملية شراء اشتراك
| تمثيل JSON |
|---|
{ "productId": string, "expiryTime": string, "latestSuccessfulOrderId": string, // Union field |
| الحقول | |
|---|---|
productId |
معرّف المنتج الذي تم شراؤه (على سبيل المثال، monthly001). |
expiryTime |
الوقت الذي انتهت فيه صلاحية الاشتراك أو ستنتهي فيه ما لم يتم تمديد فترة الوصول (مثل التجديد). يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
latestSuccessfulOrderId |
تمثّل هذه السمة معرّف الطلب الأخير الناجح المرتبط بهذه السلعة. لا يظهر إذا كان المستخدم لا يملك العنصر بعد (على سبيل المثال، العنصر الذي تم استبداله بعنصر آخر مؤجّل). |
حقل الربط plan_type نوع خطة الاشتراك. يمكن أن يكون التعليق plan_type إحدى القيم التالية فقط: |
|
autoRenewingPlan |
يتم تجديد الاشتراك في المنتج تلقائيًا. |
prepaidPlan |
العنصر مدفوع مسبقًا. |
offerDetails |
تفاصيل العرض لهذا المنتج |
حقل الربط deferred_item_change يكون الحقل متوفّرًا عندما يكون للعنصر تغيير مؤجّل. يمكن إزالته أو استبداله. يمكن أن يكون التعليق deferred_item_change إحدى القيم التالية فقط: |
|
deferredItemReplacement |
معلومات عن استبدال السلع المؤجّلة |
deferredItemRemoval |
معلومات حول إزالة العناصر المؤجّلة |
signupPromotion |
تفاصيل العرض الترويجي حول هذا المنتج يتم ضبط هذا الحقل فقط إذا تم تطبيق عرض ترويجي أثناء الاشتراك. |
itemReplacement |
تفاصيل العنصر الذي سيتم استبداله لا يتم ملء هذا الحقل إلا إذا حلّ هذا العنصر محل عنصر آخر في اشتراك سابق، ولا يتوفّر إلا لمدة 60 يومًا بعد وقت الشراء. |
offerPhase |
تفاصيل مرحلة العرض الترويجي الحالية لهذا المنتج |
AutoRenewingPlan
معلومات ذات صلة بخطة تتجدّد تلقائيًا
| تمثيل JSON |
|---|
{ "autoRenewEnabled": boolean, "recurringPrice": { object ( |
| الحقول | |
|---|---|
autoRenewEnabled |
إذا كان الاشتراك مضبوطًا حاليًا على التجديد التلقائي، مثلاً لم يلغِ المستخدم الاشتراك |
recurringPrice |
السعر المتكرّر الحالي للخطة التي تتجدّد تلقائيًا يُرجى العِلم أنّ السعر لا يأخذ في الاعتبار الخصومات ولا يشمل الضرائب. بالنسبة إلى الأسعار غير شاملة الضريبة، يُرجى الاتصال بواجهة برمجة التطبيقات |
priceChangeDetails |
تمثّل هذه السمة معلومات آخر تغيير في سعر المنتج منذ الاشتراك. |
installmentDetails |
معلومات عن الالتزام بخطة التقسيط وحالتها للخطة التي تتجدّد تلقائيًا |
priceStepUpConsentDetails |
معلومات عن أحدث موافقة على زيادة السعر |
SubscriptionItemPriceChangeDetails
معلومات حول تغيير سعر منتج في اشتراك
| تمثيل JSON |
|---|
{ "newPrice": { object ( |
| الحقول | |
|---|---|
newPrice |
السعر المتكرّر الجديد لمنتج الاشتراك. |
priceChangeMode |
يحدّد وضع تغيير السعر طريقة تغيير سعر المنتج في الاشتراك. |
priceChangeState |
اذكر حالة التغيير في السعر حاليًا. |
expectedNewPriceChargeTime |
يشير إلى وقت التجديد الذي سيصبح فيه تغيير السعر ساريًا للمستخدم. ويخضع هذا التاريخ للتغيير(إلى وقت لاحق) في الحالات التي يتغير فيها وقت التجديد، مثل الإيقاف المؤقت. لا تتم تعبئة هذا الحقل إلا إذا لم يتم تطبيق تغيير السعر. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
PriceChangeMode
وضع تغيير السعر
| عمليات التعداد | |
|---|---|
PRICE_CHANGE_MODE_UNSPECIFIED |
لم يتم تحديد وضع تغيير السعر. يجب عدم ضبط هذه القيمة مطلقًا. |
PRICE_DECREASE |
إذا كان سعر الاشتراك سينخفض |
PRICE_INCREASE |
إذا كان سعر الاشتراك سيزيد وكان على المستخدم الموافقة على ذلك |
OPT_OUT_PRICE_INCREASE |
إذا كان سعر الاشتراك سيزيد في وضع الزيادة التي لا تتطلّب موافقة |
PriceChangeState
حالة تغيير السعر.
| عمليات التعداد | |
|---|---|
PRICE_CHANGE_STATE_UNSPECIFIED |
لم يتم تحديد حالة تغيير السعر. يجب عدم استخدام هذه القيمة. |
OUTSTANDING |
في انتظار موافقة المستخدم على تغيير السعر |
CONFIRMED |
تم تأكيد تغيير السعر للمستخدم. |
APPLIED |
تم تطبيق تغيير السعر، أي أنّ المستخدم بدأ يدفع السعر الجديد. |
CANCELED |
تم إلغاء تغيير السعر. |
InstallmentPlan
تمثّل هذه السمة معلومات حول خطة الدفع بالتقسيط.
| تمثيل JSON |
|---|
{
"initialCommittedPaymentsCount": integer,
"subsequentCommittedPaymentsCount": integer,
"remainingCommittedPaymentsCount": integer,
"pendingCancellation": {
object ( |
| الحقول | |
|---|---|
initialCommittedPaymentsCount |
إجمالي عدد الدفعات التي يلتزم بها المستخدم في البداية. |
subsequentCommittedPaymentsCount |
إجمالي عدد الدفعات التي سيلتزم بها المستخدم بعد كل مدة التزام. تعني القيمة الفارغة أنّ خطة الأقساط ستعود إلى الاشتراك العادي الذي يتم تجديده تلقائيًا بعد الالتزام الأولي. |
remainingCommittedPaymentsCount |
إجمالي عدد الدفعات المتبقية المطلوب تسديدها في دورة التجديد هذه |
pendingCancellation |
في حال توفّرها، تكون خطة التقسيط هذه في انتظار الإلغاء. لن يتم الإلغاء إلا بعد أن يكمل المستخدم جميع الدفعات الملتزم بها. |
PendingCancellation
لا يتضمّن هذا النوع أي حقول.
هذا مؤشر يوضح ما إذا كان هناك إلغاء معلّق لخطة التقسيط الافتراضية. لن يتم الإلغاء إلا بعد أن يكمل المستخدم جميع الدفعات الملتزم بها.
PriceStepUpConsentDetails
معلومات ذات صلة بزيادة السعر التي تتطلّب موافقة المستخدم
| تمثيل JSON |
|---|
{ "state": enum ( |
| الحقول | |
|---|---|
state |
النتائج فقط. تمثّل هذه السمة حالة الموافقة على زيادة السعر. |
consentDeadlineTime |
الموعد النهائي الذي يجب أن يقدّم المستخدم موافقته بحلوله وفي حال عدم تقديم الموافقة بحلول هذا الوقت، سيتم إلغاء الاشتراك. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
newPrice |
السعر الجديد الذي يتطلّب موافقة المستخدم |
ConsentState
تمثّل هذه السمة حالة الموافقة على زيادة السعر.
| عمليات التعداد | |
|---|---|
CONSENT_STATE_UNSPECIFIED |
حالة الموافقة غير محدَّدة |
PENDING |
لم يقدّم المستخدم موافقته بعد. |
CONFIRMED |
وافق المستخدم على السعر الجديد، وهو في انتظار أن يصبح ساريًا. |
COMPLETED |
وافق المستخدم على السعر الجديد وتم تطبيقه. |
PrepaidPlan
معلومات ذات صلة بخطة الدفع المُسبَق
| تمثيل JSON |
|---|
{ "allowExtendAfterTime": string } |
| الحقول | |
|---|---|
allowExtendAfterTime |
إذا كان هذا الحقل متوفّرًا، يشير إلى الوقت الذي يُسمح بعده بإجراء عمليات شراء لإضافة رصيد إلى خطة الدفع المُسبَق. لن تظهر هذه الحالة لخطط الدفع المُسبق المنتهية الصلاحية. يستخدم المعيار RFC 3339، حيث يكون الناتج الذي يتم إنشاؤه مُمثلاً بالتوقيت العالمي المنسَّق مع حرف Z في النهاية ويستخدم الأرقام الجزئية 0 أو 3 أو 6 أو 9. تُقبل أيضًا المعادلات الأخرى التي لا تستخدم حرف Z. أمثلة: |
OfferDetails
تعرض هذه السمة معلومات تفصيلية حول عرض ترويجي مرتبط ببند في فاتورة الشراء.
| تمثيل JSON |
|---|
{ "offerTags": [ string ], "basePlanId": string, "offerId": string } |
| الحقول | |
|---|---|
offerTags[] |
علامات العروض الترويجية الأحدث المرتبطة بالعرض الترويجي وتتضمّن علامات موروثة من الخطة الأساسية. |
basePlanId |
معرّف الخطة الأساسية يجب أن تكون هذه السمة متوفّرة لجميع الخطط الأساسية والعروض. |
offerId |
معرّف العرض الترويجي يظهر هذا الحقل فقط للعروض الترويجية المخفَّضة. |
DeferredItemReplacement
معلومات ذات صلة باستبدال السلع المؤجّلة
| تمثيل JSON |
|---|
{ "productId": string } |
| الحقول | |
|---|---|
productId |
معرّف المنتج الذي سيحلّ محلّ معرّف المنتج الحالي. |
DeferredItemRemoval
لا يتضمّن هذا النوع أي حقول.
معلومات ذات صلة باستبدال السلع المؤجّلة
SignupPromotion
العرض الترويجي الذي تم تطبيقه على هذا المنتج عند شرائه
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط promotion_type تشير هذه السمة إلى نوع العرض الترويجي المطبّق على السلعة. يمكن أن يكون التعليق promotion_type إحدى القيم التالية فقط: |
|
oneTimeCode |
تم تطبيق رمز لمرة واحدة. |
vanityCode |
تم تطبيق رمز مميّز. |
OneTimeCode
لا يتضمّن هذا النوع أي حقول.
رمز ترويجي للاستخدام مرة واحدة
VanityCode
رمز ترويجي محدّد مسبقًا يمكن استخدامه عدة مرات
| تمثيل JSON |
|---|
{ "promotionCode": string } |
| الحقول | |
|---|---|
promotionCode |
الرمز الترويجي |
ItemReplacement
تفاصيل حول بند اشتراك يتم استبداله
| تمثيل JSON |
|---|
{
"productId": string,
"replacementMode": enum ( |
| الحقول | |
|---|---|
productId |
معرّف المنتج الخاص بالبند في الاشتراك الذي سيتم استبداله |
replacementMode |
وضع الاستبدال الذي تم تطبيقه أثناء عملية الشراء |
basePlanId |
معرّف الخطة الأساسية لبند الاشتراك الذي سيتم استبداله. |
offerId |
معرّف العرض الترويجي لبند الاشتراك الذي سيتم استبداله، إذا كان ذلك منطبقًا |
ReplacementMode
وضع استبدال الاشتراك.
| عمليات التعداد | |
|---|---|
REPLACEMENT_MODE_UNSPECIFIED |
وضع الاستبدال غير محدّد. |
WITH_TIME_PRORATION |
سيتم احتساب قيمة الخطة الجديدة بشكل نسبي وإضافتها إلى الخطة القديمة. |
CHARGE_PRORATED_PRICE |
سيتم تحصيل سعر نسبي من المستخدم مقابل الخطة الجديدة. |
WITHOUT_PRORATION |
ستحلّ الخطة الجديدة محلّ الخطة القديمة بدون احتساب الوقت النسبي. |
CHARGE_FULL_PRICE |
سيتم تحصيل السعر الكامل للخطة الجديدة من المستخدم. |
DEFERRED |
سيتم إلغاء الخطة القديمة وستصبح الخطة الجديدة سارية المفعول بعد انتهاء صلاحية الخطة القديمة. |
KEEP_EXISTING |
ستبقى الخطة بدون تغيير عند استبدال الجهاز. |
OfferPhase
تفاصيل مرحلة العرض الترويجي
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط offer_phase تمثّل هذه السمة تفاصيل مرحلة العرض. يمكن أن يكون التعليق offer_phase إحدى القيم التالية فقط: |
|
prorationPeriod |
تحديد ما إذا كانت مرحلة العرض الترويجي هي فترة احتساب نسبي |
freeTrial |
تحديد ما إذا كانت مرحلة العرض الترويجي هي فترة تجريبية مجانية |
introductoryPrice |
تحديد ما إذا كانت مرحلة العرض الترويجي هي مرحلة عرض سعر تمهيدي |
basePrice |
تحديد ما إذا كانت مرحلة العرض هي مرحلة تسعير الخطة الأساسية |
ProrationPeriodOfferPhase
تفاصيل حول مرحلة عرض فترة التناسب
| تمثيل JSON |
|---|
{
"originalOfferPhaseType": enum ( |
| الحقول | |
|---|---|
originalOfferPhaseType |
تمثّل هذه السمة نوع مرحلة العرض الترويجي الأصلية قبل فترة التناسب. يجب ضبط هذا الحقل فقط عند تعديل فترة التناسب من مرحلة عرض حالية. |
OriginalOfferPhaseType
تمثّل هذه السمة مرحلة العرض الأصلية من دفعة العرض، إذا كانت دفعة العرض عبارة عن دفعة نسبية.
| عمليات التعداد | |
|---|---|
ORIGINAL_OFFER_PHASE_TYPE_UNSPECIFIED |
نوع مرحلة العرض الترويجي الأصلي غير محدَّد. |
BASE |
يكون الاشتراك في مرحلة التسعير الأساسي (مثل السعر الكامل). |
INTRODUCTORY |
الاشتراك في مرحلة السعر التمهيدي |
FREE_TRIAL |
الاشتراك في فترة تجريبية مجانية |
FreeTrialOfferPhase
لا يتضمّن هذا النوع أي حقول.
تفاصيل حول مرحلة العرض الترويجيّ للفترة التجريبية المجانية
IntroductoryPriceOfferPhase
لا يتضمّن هذا النوع أي حقول.
تفاصيل حول مرحلة عرض السعر التمهيدي
BasePriceOfferPhase
لا يتضمّن هذا النوع أي حقول.
تفاصيل حول مرحلة عرض السعر الأساسي
OutOfAppPurchaseContext
معلومات خاصة بعملية شراء خارج التطبيق
| تمثيل JSON |
|---|
{
"expiredExternalAccountIdentifiers": {
object ( |
| الحقول | |
|---|---|
expiredExternalAccountIdentifiers |
معرّف حساب المستخدم من آخر اشتراك منتهي الصلاحية لهذا الرمز التعريفي الخاص بوحدة التخزين. |
expiredPurchaseToken |
الرمز المميّز لعملية شراء آخر اشتراك منتهي الصلاحية يجب استخدام رمز الشراء المميز هذا للمساعدة في التعرّف على المستخدم فقط إذا كان الرابط بين purchaseToken والمستخدم مخزَّنًا في قاعدة البيانات. لا يمكن استخدام هذا الرمز المميز للاتصال بواجهة Google Developer API إذا مرّ أكثر من 60 يومًا على انتهاء صلاحيته. |
OnHoldStateContext
سياق إضافي حول الاشتراكات في الحالة ON_HOLD.
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط on_hold_reason سبب حالة ON_HOLD للاشتراك يمكن أن يكون التعليق on_hold_reason إحدى القيم التالية فقط: |
|
renewalDeclined |
اختياريّ. تم رفض عملية الدفع مقابل التجديد. |
RenewalDeclinedContext
سياق مرتبط بحالة رفض التجديد.
| تمثيل JSON |
|---|
{ "pendingOrderId": string } |
| الحقول | |
|---|---|
pendingOrderId |
الحقل مطلوب. معرّف الطلب المعلّق أو الذي تعذّر تنفيذه والذي تسبّب في هذه الحالة |
InGracePeriodStateContext
سياق إضافي حول الاشتراكات في حالة IN_GRACE_PERIOD
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الربط grace_period_reason سبب انتقال الاشتراك إلى الحالة IN_GRACE_PERIOD يمكن أن يكون التعليق grace_period_reason إحدى القيم التالية فقط: |
|
renewalDeclined |
اختياريّ. تم رفض عملية الدفع مقابل التجديد. |
الطُرق |
|
|---|---|
|
إلغاء عملية شراء اشتراك للمستخدم |
|
تؤجّل هذه السمة تجديد الاشتراك. |
|
الحصول على بيانات وصفية حول اشتراك |
|
إلغاء عملية شراء اشتراك للمستخدم |
رموز الخطأ
تعرض عمليات هذا المرجع رموز خطأ HTTP التالية:
| رمز الخطأ | السبب | الوصف | الدقة |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
انتهت صلاحية الاشتراك ولا يمكن تنفيذ العملية المطلوبة. | تحقَّق من وقت انتهاء صلاحية الاشتراك. لا يُسمح بهذه العملية في الاشتراكات المنتهية الصلاحية. |
400 |
subscriptionInvalidArgument |
تم تقديم وسيطة غير صالحة في طلب الاشتراك. | راجِع مستندات واجهة برمجة التطبيقات وتأكَّد من توفير جميع الحقول المطلوبة وتنسيقها بشكلٍ صحيح. |
400 |
invalidPurchaseState |
عملية الشراء ليست في حالة صالحة لتنفيذ العملية المطلوبة. على سبيل المثال، قد تحاول تأكيد عملية شراء تم استهلاكها من قبل أو إلغاء اشتراك غير نشط. | تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة إجراء العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء. |
400 |
invalidValue |
تم إدخال قيمة غير صالحة في الطلب. يتم عرض هذا الرمز غالبًا عند تقديم رمز مميّز غير صالح أو مكتوب بشكلٍ غير صحيح. | صحِّح قيمة الحقل غير الصالحة في نص الطلب أو المَعلمات استنادًا إلى مرجع واجهة برمجة التطبيقات. |
400 |
prepaidSubscriptionNotSupported |
العملية المطلوبة غير متاحة للاشتراكات المدفوعة مسبقًا. | تأكَّد من أنّ العملية تنطبق على نوع الاشتراك. هذا الخطأ خاص بطُرق مثل الإلغاء أو التأجيل أو ردّ الأموال أو الإبطال. |
400 |
productNotOwnedByUser |
رمز الشراء المقدَّم صالح، ولكن المستخدم لا يملك المنتج حاليًا. يمكن أن يحدث ذلك إذا تم ردّ الأموال المدفوعة مقابل عملية الشراء أو تم إبطالها أو انتهت صلاحيتها قبل تأكيدها. | تحقَّق من الحالة الحالية للمرجع باستخدام واجهة برمجة التطبيقات Get المناسبة قبل محاولة إجراء العملية. تأكَّد من أنّ المرجع في حالة مناسبة للإجراء. |
400 |
purchaseTokenMismatch |
لا يتطابق رمز الشراء المقدَّم مع عملية الشراء أو اسم الحزمة أو رقم تعريف الاشتراك أو رقم تعريف المنتج. | تأكَّد من صحة جميع التفاصيل الواردة في الطلب ومن تطابقها مع بعضها البعض. |
400 |
required |
لم يتم إدخال حقل أو مَعلمة مطلوبة في الطلب. | راجِع مستندات واجهة برمجة التطبيقات للتأكّد من تضمين جميع الحقول والمَعلمات الإلزامية. |
400 |
unsupportedIabType |
العملية غير متاحة لنوع الفوترة داخل التطبيقات المحدد. | تأكَّد من أنّ طريقة واجهة برمجة التطبيقات متوافقة مع نوع العنصر الذي تتم إدارته. |
403 |
userInsufficientPermission |
لا يملك المستخدم الإذن الكافي لتنفيذ العملية المطلوبة. | تأكَّد من أنّ المستخدم المصادَق عليه لديه الأذونات اللازمة في Google Play Console. لمزيد من التفاصيل، يُرجى الاطّلاع على استخدام حساب خدمة. |
404 |
notFound |
تعذَّر العثور على المورد المطلوب. | تأكَّد من صحة المعرّفات (مثل رمز الشراء واسم الحزمة ومعرّف المنتج ومعرّف الاشتراك). |
409 |
concurrentUpdate |
تمت محاولة تعديل عنصر يتم تعديله في الوقت نفسه. | أعِد محاولة إرسال الطلب باستخدام خوارزمية الرقود الأسي الثنائي. تجنَّب إجراء تعديلات متزامنة على المرجع نفسه. |
410 |
purchaseTokenNoLongerValid |
رمز الشراء غير صالح نهائيًا لأنّه تم حذف حساب المستخدم المرتبط به أو لم يعُد سجلّ الشراء متوفّرًا. | إيقاف استخدام رمز الشراء هذا |
410 |
subscriptionNoLongerAvailable |
لم يعُد بإمكانك الاستعلام عن عملية شراء الاشتراك لأنّ صلاحيته انتهت منذ فترة طويلة. | يشير هذا الخطأ إلى أنّ صلاحية الاشتراك انتهت منذ أكثر من 60 يومًا. لن تحتاج إلى طلب هذه الاشتراكات بعد الآن. |
5xx |
Generic error |
حدث خطأ عام في خادم Google Play. | أعِد محاولة إرسال طلبك. في حال استمرار المشكلة، يُرجى التواصل مع مدير حسابك على Google Play أو إرسال طلب دعم. ننصحك بالاطّلاع على لوحة البيانات الخاصة بحالة Play لمعرفة أي انقطاعات معروفة في الخدمة. |