كل المقالات
دليل عمليمدة القراءة 8 دقائق

DeviceCheck من Apple يتذكر هاتف من يسيء استخدام الاسترداد، حتى بعد تسجيله بحساب جديد

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

هاتف ذكي مستعمل موضوع على وجهه فوق منضدة متجر زجاجية ومربوط به بطاقة نحاسية، صورة توضح كيف يميّز DeviceCheck الجهاز لا الحساب

أهم الخلاصات

  • يتيح DeviceCheck من Apple لخادمك ضبط بتّين ثنائيين لكل جهاز والاستعلام عنهما، وهما مخزنان على خوادم Apple. وتذكر Apple وضع علامة على جهاز ثبت لديك أنه احتيالي ضمن الاستخدامات المقصودة.
  • تخزن ميزة استدعاء الجهاز (device recall) في Google Play، وهي ميزة تجريبية ضمن Play Integrity API، ثلاث بتات مخصصة لكل جهاز على خوادم Google، وتبقى بعد إعادة تثبيت التطبيق وبعد إعادة ضبط الجهاز.
  • تشترك جميع التطبيقات في حساب مطوّر Google Play نفسه في قيم استدعاء الجهاز، وتُحفظ هذه القيم لمدة 3 سنوات بعد آخر قراءة أو كتابة.
  • يمكن استخدام رمز Play Integrity لكتابة بتات استدعاء الجهاز لمدة تصل إلى 14 يومًا بعد التحقق منه، وهذا يغطي نافذة الاسترداد الذاتي في Google Play البالغة 48 ساعة.
  • لا تحمل إشعارات الاسترداد من Apple ولا المشتريات الملغاة من Google أي معرّف للجهاز، لذا لا يمكن وضع علامة على جهاز إلا من خادم ربط المشتريات بحساباته الخاصة مسبقًا.
  • لا تستطيع علامات الأجهزة إيقاف الاسترداد. إنها تحدد ما يقدمه تطبيقك للجهاز لاحقًا، مثل الأرصدة المجانية، أو فترة تجريبية تموّلها، أو عرض ترويجي يوقّعه خادمك.
  • مساران فقط للاسترداد يسمحان للمطوّر بتقديم أدلة قبل أن يقرر المتجر: CONSUMPTION_REQUEST من Apple، ويُجاب عنه خلال 12 ساعة، ومراجعة رد المبالغ المدفوعة في Google Play عبر orders.reviewrefund، ويُجاب عنها خلال 24 ساعة.

حظر الحساب لا يوقف من يسيء استخدام الاسترداد إذا سجّل من جديد على الهاتف نفسه. وُجد DeviceCheck من Apple واستدعاء الجهاز (device recall) في Google Play لسد هذه الثغرة تحديدًا. كل منهما يتيح لخادمك ربط بضع بتات تحمل معنى تحدده أنت بجهاز فعلي، وتُخزن على خوادم المتجر، فتبقى العلامة قائمة عندما يعود الشخص نفسه بعنوان بريد إلكتروني جديد. لا تمنحك أي من الأداتين معرّفًا للجهاز، ولا تستطيع أي منهما إيقاف الاسترداد. ما تفعلانه هو إخبارك، عند التسجيل أو عند شاشة الدفع، بأن هذا الجهاز قد أضرّ بك من قبل.

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

لماذا يتغلب الحساب الجديد على كل دفاع على مستوى الحساب

معظم دفاعات الاسترداد مرتبطة بحساب. يربط appAccountToken من Apple المعاملة بمستخدم في قاعدة بياناتك. ويؤدي obfuscated account ID في Google Play الدور نفسه على Android. ضبط كليهما في كل عملية شراء هو الصواب، وكلاهما يصف حساب شخص، لا الجهاز الذي يحمله. احذف الحساب، وسجّل ببريد جديد، فيبدأ سجلك عن ذلك الشخص من الصفر.

المتاجر لا تسد هذه الثغرة نيابة عنك. يخبرك إشعار الاسترداد في App Store بالمعاملة التي استُردت. وتخبرك عملية الشراء الملغاة في Google Play برمز الشراء ومعرّف الطلب وقيمة voidedReason. لا يحمل أي منها معرّفًا للجهاز. وصف مطوّر تطبيق مواعدة النتيجة في سلسلة نقاش على Apple Developer Forums: ظلت ملفات احتيالية تشتري اشتراكًا مميزًا يُسترد لاحقًا، ولم يفلح حظر أجهزتها بطريقة المطوّر الخاصة.

هل يعيد الحساب الجديد ضبط الفترة التجريبية الخاصة بالمتجر؟

ليس على حساب Apple نفسه. تقول وثائق Apple إن العروض التمهيدية، ومنها الفترات التجريبية المجانية، تُمنح للعملاء الذين لم يحصلوا على عرض مماثل لذلك المنتج أو لأي منتج في مجموعة الاشتراك نفسها. لذا فإن تسجيل دخول جديد داخل تطبيقك لا يمنح فترة تجريبية ثانية من Apple. أما حساب Apple جديد فيمنحها، وكذلك أي شيء تقدمه أنت بنفسك: أرصدة التسجيل، وفترة تجريبية يموّلها خادمك، ومكافأة الإحالة. هذه هي الهدايا التي تحميها علامة الجهاز.

ما الذي يخزنه DeviceCheck من Apple فعلًا

يتكون DeviceCheck من جزأين. في التطبيق، تُنشئ فئة DCDevice رمزًا مؤقتًا يعرّف الجهاز. وعلى خادمك، ترسل هذا الرمز إلى Apple مع رمز ويب JSON موقّع بمفتاح من حساب المطوّر الخاص بك، فتتيح لك Apple الاستعلام عن بتّين لذلك الجهاز أو تحديثهما. يعيد رد الاستعلام bit0 وbit1 وlast_update_time، معطى بالسنة والشهر. أمثلة Apple نفسها هي جهاز حصل بالفعل على عرض ترويجي، وجهاز تبيّن لك أنه احتيالي.

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

  • الرمز للاستخدام مرة واحدة. تقول Apple إنه يظل صالحًا مدة تكفي لإعادة محاولة الطلب، لكن عليك إنشاء رمز جديد لكل استدعاء.
  • تتصل إصدارات التطوير بـ api.development.devicecheck.apple.com. ويجب أن يستخدم الإنتاج api.devicecheck.apple.com، وإلا وصلت علاماتك إلى المكان الخطأ.
  • تصف Apple DeviceCheck بأنه مُدخل واحد في تقييم شامل للمخاطر، لا حكمًا نهائيًا. تعامل مع البت المضبوط على أنه سبب لتدقيق أكبر.

ما الذي يضيفه استدعاء الجهاز من Google على Android

نسخة Google موجودة داخل Play Integrity API وما زالت تجريبية، ويتطلب الوصول إليها تعبئة نموذج إبداء اهتمام. بعد الموافقة وتفعيلها في Play Console، يحمل كل حكم سلامة ثلاث بتات مخصصة للجهاز. تكتبها باستدعاء من الخادم إلى نقطة النهاية deviceRecall:write، باستخدام رمز سلامة تحققت منه مسبقًا. تقول Google إن البيانات تبقى بعد إعادة تثبيت التطبيق وإعادة ضبط الجهاز، لأنها موجودة على خوادم Google.

وثائق Google واضحة على نحو غير معتاد بشأن حالات الاستخدام. فهي تذكر الأجهزة التي عليها أدلة إساءة جسيمة، والأجهزة التي حصلت بالفعل على عنصر عالي القيمة مثل فترة تجريبية مجانية، والأجهزة المستخدمة مرارًا لإنشاء حسابات جديدة لأغراض مسيئة. وهي واضحة بالقدر نفسه بشأن الحدود: لا يجوز استخدام استدعاء الجهاز إلا لحماية أمان التطبيق ومكافحة الإساءة والاحتيال والوصول غير المصرح به، ولا يجوز أبدًا استخدامه لأخذ بصمة المستخدمين أو تتبعهم أفرادًا، ولا لتخزين سمات حساسة مثل العمر أو الجنس أو الموقع.

السؤالApple DeviceCheckاستدعاء الجهاز في Google Play
الحالةمتاح للجميعتجريبي، بموافقة عبر نموذج إبداء اهتمام
البتات لكل جهاز23
مكان التخزينخوادم Appleخوادم Google
البقاء بعد إعادة التثبيت وإعادة الضبطمخزنة على الخادم، وتترك Apple إعادة الضبط لكنعم، في الحالتين، بحسب Google
المشاركة بين تطبيقاتكمرتبطة بحساب المطوّر الخاص بكنعم، كل تطبيق في حساب المطوّر
الطابع الزمنيسنة وشهر آخر تحديثتاريخ الكتابة لكل بت
مدة الاحتفاظحتى تعيد ضبطها3 سنوات بعد آخر قراءة أو كتابة
الرمز اللازم للكتابةرمز DCDevice جديد للاستخدام مرة واحدةرمز سلامة تم التحقق منه، صالح لمدة 14 يومًا
متطلبات إضافيةApp ID مسجل في حسابكإصدار حديث من Play Store وPlay services، ومستخدم مرخّص من Play، ولا محاكيات

مشكلة التوقيت: الاستردادات تصل بعد زوال الرمز

تحتاج الأداتان إلى شيء من الجهاز نفسه قبل أن تتمكن من وضع علامة عليه. تحتاج Apple إلى رمز DCDevice جديد. وتحتاج Google إلى رمز سلامة من ذلك الجهاز لا يتجاوز عمره 14 يومًا. في المقابل، يصل الاسترداد إلى خادمك عبر إشعار من المتجر لا يعرف شيئًا عن الجهاز. لذا فالسؤال ليس هل تضع علامة على الجهاز. السؤال هو هل سيظل لديك طريق للوصول إليه عندما يصل الاسترداد.

استردادات Google خلال 48 ساعة تقع داخل نافذة 14 يومًا

لا يتاح الاسترداد الذاتي في Google Play إلا خلال 48 ساعة من الشراء، وهي مدة تقع بوضوح داخل الأيام الـ14 التي يبقى فيها رمز السلامة صالحًا للكتابة. شغّل فحص السلامة لحظة الشراء، واحفظ الرمز الذي تم التحقق منه بجوار معرّف الطلب، وعندما تصل عملية شراء ملغاة لذلك الطلب، يمكنك كتابة البت فورًا. أما ردود المبالغ المدفوعة فهي الحالة الأصعب، لأن نزاع البنك قد يصل بعد اليوم الرابع عشر بوقت طويل.

استردادات Apple تتطلب عودة الجهاز

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

  • عند الشراء، سجّل المعاملة على حسابك الخاص عبر appAccountToken أو obfuscated account ID.
  • عند الاسترداد أو الإلغاء، ضع علامة على ذلك الحساب في خادمك.
  • في الجلسة التالية للحساب الموسوم، اجمع رمز الجهاز واضبط البت الخاص بك.
  • عند كل تسجيل، استعلم عن البتات قبل أن تمنح أي شيء يكلفك مالًا.

كم يكلفك من يكرر إساءة استخدام الاسترداد

السعر المسترد هو الجزء الظاهر. والباقي هو كل ما بدأه الشراء بالفعل. إذا كان تطبيقك ينفق مالًا لتقديم ما يبيعه، فإن كل دورة من الشراء والاستهلاك والاسترداد تترك ذلك المال منفقًا: وقت GPU للصور المولدة، واستدعاءات مدفوعة لنموذج أو API بيانات، وتخزين لملفات مصدّرة يحتفظ بها العميل، ومدفوعات للمبدعين حُسبت على أساس البيع. والحساب الجديد يعيد فتح الحلقة، ويسجله دفترك عميلًا جديدًا تمامًا.

تتسرب الهدايا المجانية بالطريقة نفسها دون أي استرداد. الجهاز الذي يجمع أرصدة التسجيل على عشرة حسابات يستهلك عشرة أضعاف الحوسبة التي خصصتها لفترة تجريبية واحدة. وفي Google Play، تكلفك ردود المبالغ المدفوعة على الطلبات بعد 3 أغسطس 2026 أيضًا سعر الشراء مطروحًا منه رسوم خدمة Google، إضافة إلى رسوم البنك، لذا فالشخص الذي يعترض من حساب جديد في كل مرة يكلفك النزاع كاملًا من جديد.

بند التكلفةبدون علامة جهازمع علامة جهاز
أرصدة التسجيل أو فترة تجريبية تموّلهاتُمنح من جديد مع كل حساب جديدتُحجب أو تُخفّض على الجهاز الموسوم
الحوسبة واستدعاءات API المدفوعةتُنفق من جديد في كل دورةتُنفق مرة واحدة، ثم تُقيَّد
مدفوعات المبدعين أو الشركاءتُدفع على مبيعات تعود استردادًاتُحتجز للمراجعة على الأجهزة الموسومة
ردود المبالغ المدفوعة في Google Play بعد 3 أغسطس 2026السعر ناقص رسوم الخدمة، مع رسوم البنك، في كل مرةالمبلغ نفسه لكل نزاع، لكن نزاعات متكررة أقل
قرارات الاسترداد في المتجريقررها المتجرلا يزال المتجر يقررها
درج في ورشة تصليح مليء بهواتف ذكية متطابقة وأحدها موسوم بشريط لاصق برتقالي، يوضح كيف تميّز علامة الجهاز هاتفًا واحدًا بين هواتف كثيرة

ماذا تفعل بجهاز موسوم

العلامة تجيب عن سؤال واحد: هل ينبغي أن يحصل هذا الجهاز على شيء مجاني مرة أخرى؟ اجعل رد فعلك متناسبًا، لأن البت المضبوط قرينة وليس دليلًا قاطعًا. الهواتف يُعاد بيعها، والعائلات تتشارك أجهزة iPad، وتنصحك Google صراحة لهذا السبب بالنظر في تجاهل البيانات القديمة أو إعادة ضبطها.

  • لا تمنح أرصدة التسجيل أو الفترة التجريبية التي يموّلها الخادم أو مكافأة الإحالة لجهاز موسوم، واعرض الخطة المدفوعة بدلًا من ذلك.
  • لا توقّع عرضًا ترويجيًا لجهاز موسوم. في App Store، خادمك هو من يُنشئ التوقيع الذي يفتح العرض الترويجي، فالقرار لك.
  • اشترط اكتمال الدفع قبل تسليم المواد الاستهلاكية المكلفة على جهاز موسوم.
  • استخدم الطابع الزمني. العلامة التي ضُبطت الشهر الماضي أثقل وزنًا من علامة ضُبطت قبل عامين.
  • امنح الناس طريقًا للوصول إلى الدعم. من اشترى هاتفًا مستعملًا ووُسم خطأً يستحق ردًا، ويمكنك إعادة ضبط البتات.

هل يمكنك ببساطة حظر الجهاز؟

يمكنك رفض مزاياك المجانية الإضافية، وهنا تؤتي علامات الأجهزة ثمارها. أما الإغلاق التام فأكثر خطورة. فالشخص الذي يحمل الهاتف اليوم قد لا يكون من أساء استخدامه، وشروط Google نفسها تقصر استدعاء الجهاز على منع الإساءة، لا تتبع الأشخاص. قيّد ما يكلفك مالًا واترك مسار الدفع مفتوحًا.

وماذا عن Keychain (سلسلة المفاتيح) أو معرّف الجهاز؟

يسأل المطوّرون كثيرًا هل تؤدي علامة في Keychain أو معرّف للعتاد المهمة نفسها. العلامة التي يخزنها تطبيقك على الهاتف تزول بعد إعادة ضبط الجهاز، ولا تمنح Apple التطبيقات معرّف عتاد ثابتًا لهذا الغرض. DeviceCheck واستدعاء الجهاز هما الإجابتان المعتمدتان من المتجرين، تحديدًا لأن البتات موجودة على خوادم Apple وGoogle لا على الهاتف.

حيث لا يزال المتجر يقرر

تغيّر علامات الأجهزة ما يمنحه تطبيقك لاحقًا. ولا تمس الاسترداد الذي أمامك. مساران فقط للاسترداد يسمحان لك بتقديم أدلة قبل أن يقرر المتجر. ترسل Apple طلب CONSUMPTION_REQUEST وتطلب بيانات الاستهلاك خلال 12 ساعة. ويفتح Google Play مراجعة لرد المبالغ المدفوعة تجيب عنها خلال 24 ساعة عبر orders.reviewrefund. كل ما عدا ذلك، من استردادات Google Play خلال 48 ساعة إلى استردادات الدعم والاسترداد التلقائي للمشتريات غير المؤكدة، يُقرر من دونك. وتصبح ردود المبالغ المدفوعة نهائية بمجرد حكم البنك.

يجيب RefundHalt عن كل CONSUMPTION_REQUEST وكل مراجعة لرد المبالغ المدفوعة في Google Play داخل مهلتها ببيانات الاستخدام الحقيقية لديك، ويربط كل استرداد بالحساب الذي قام به، فيعرف خادمك أي جهاز يضع عليه علامة في المرة التالية التي يتصل فيها.

الأسئلة الشائعة

فيمَ يُستخدم DeviceCheck من Apple؟
يتيح DeviceCheck لخادمك تخزين بتّين لكل جهاز وقراءتهما على خوادم Apple. أمثلة Apple نفسها هي وسم جهاز حصل بالفعل على عرض ترويجي، ووضع علامة على جهاز تبيّن لك أنه احتيالي. أنت من يحدد معنى البتات ومتى تُعاد ضبطها.
هل يعمل DeviceCheck بعد أن يحذف المستخدم التطبيق أو ينشئ حسابًا جديدًا؟
نعم. البتات تخص الجهاز وتُخزن على خوادم Apple، لا داخل تطبيقك ولا في حساب مستخدم، لذا فإن تسجيلًا جديدًا على الجهاز نفسه يقرأ البتات نفسها بعد إعادة تثبيت التطبيق. وتترك Apple إعادة ضبطها لك، مثلًا عند بيع الجهاز.
هل يوجد ما يعادل DeviceCheck على Android؟
نعم، استدعاء الجهاز في Play Integrity API. يخزن ثلاث بتات مخصصة لكل جهاز على خوادم Google، ويبقى بعد إعادة التثبيت وإعادة ضبط الجهاز، ويُشارك بين جميع التطبيقات في حساب المطوّر الخاص بك، ويحتفظ بالبيانات لمدة 3 سنوات بعد آخر وصول. وهو تجريبي ويتطلب موافقة.
هل تستطيع علامة الجهاز منع العميل من الحصول على استرداد؟
لا. Apple وGoogle تقرران الاستردادات بنفسيهما. علامة الجهاز تتحكم فقط فيما يعرضه تطبيقك لاحقًا، مثل الأرصدة المجانية أو العرض الترويجي. ولا تُحتسب أدلتك إلا في CONSUMPTION_REQUEST من Apple، ويُجاب عنه خلال 12 ساعة، وفي مراجعة رد المبالغ المدفوعة في Google Play، ويُجاب عنها خلال 24 ساعة.
هل يُسمح بحظر جهاز بسبب إساءة استخدام الاسترداد؟
لا تسمح Google باستخدام استدعاء الجهاز إلا لأمان التطبيق ومنع الإساءة والاحتيال والوصول غير المصرح به، وتحظر استخدامه لأخذ بصمة المستخدمين أو تتبعهم. ولأن الأجهزة يُعاد بيعها وتُشارك، فالاستخدام الأكثر أمانًا هو حجب المزايا المجانية الإضافية عن الجهاز الموسوم بدلًا من منعه من الميزات المدفوعة.

المصادر وقراءات إضافية

RefundHalt

الطيار الآلي للاستردادات في App Store وGoogle Play

تابع القراءة

طلب الاسترداد التالي في طريقه إليك بالفعل.

أعد RefundHalt في الوقت الذي تستغرقه لقراءة رسالة دعم أخرى عن استرداد لم تتمكن من الاعتراض عليه.