با تقلب و سوء استفاده مبارزه کنید

همانطور که محبوبیت برنامه شما افزایش می یابد، می تواند توجه ناخواسته کاربران مخربی را که ممکن است بخواهند از برنامه شما سوء استفاده کنند، به خود جلب کند. این مبحث توصیه‌هایی را شرح می‌دهد که باید از آنها برای جلوگیری از این حملات به یکپارچه‌سازی صورت‌حساب‌تان و کاهش تأثیر سوءاستفاده در برنامه‌تان استفاده کنید.

منطق حساس را به باطن خود منتقل کنید

تا آنجایی که طراحی اپلیکیشن شما اجازه می دهد، داده های حساس و منطق را به یک سرور پشتیبان که کنترل می کنید منتقل کنید. هرچه داده ها و منطق بیشتری در یک دستگاه frontend داشته باشید، آسیب پذیرتر از تغییر یا دستکاری آن است.

به عنوان مثال، یک بازی شطرنج آنلاین به جای اعتماد به اینکه فرانت اند همیشه حرکات قانونی را ارسال می کند، باید تمام حرکات در بک اند را تأیید کند.

علاوه بر این، اگر آسیب‌پذیری‌ها یا مشکلات امنیتی پیدا کردید، بسته به طراحی سیستم‌تان، ممکن است اشکال‌زدایی، رفع و عرضه به‌روزرسانی‌ها در باطن به جای فرانت‌اند آسان‌تر باشد.

قبل از اعطای حق، خریدها را تأیید کنید

یک مورد خاص از داده های حساس و منطقی که باید در باطن مدیریت شود، تأیید خرید و تأیید است. پس از خرید کاربر، باید موارد زیر را انجام دهید:

  1. purchaseToken مربوطه را به باطن خود ارسال کنید. این بدان معنی است که شما باید یک رکورد از تمام مقادیر purchaseToken برای همه خریدها نگه دارید.
  2. بررسی کنی�� که مقدار purchaseToken برای خرید فعلی با مقادیر purchaseToken قبلی مطابقت نداشته باشد. purchaseToken در سطح جهانی منحصر به فرد است، بنابراین می توانید با خیال راحت از این مقدار به عنوان کلید اصلی در پایگاه داده خود استفاده کنید.
  3. از Purchases.products:get یا Purchases.subscriptionsv2:get در Google Play Developer API استفاده کنید تا با Google تأیید کنید که خرید قانونی است.
  4. اگر خرید قانونی باشد و در گذشته استفاده نشده باشد، می‌توانید با خیال راحت حق اشتراک یا مورد درون‌برنامه را اعطا کنید.
  5. برای اشتراک‌ها، وقتی linkedPurchaseToken در Purchases.subscriptionsv2:get تنظیم شده است، باید linkedPurchaseToken نیز از پایگاه داده خود حذف کنید و حقی را که به linkedPurchaseToken اعطا شده است لغو کنید تا اطمینان حاصل شود که چندین کاربر حق خرید یکسان را ندارند.
  6. شما باید فقط زمانی که وضعیت خرید PURCHASED است، این حق را اعطا کنید و مطمئن شوید که خریدهای PENDING را به درستی انجام می دهید. اگر خریدهای CANCELED زیاد باشد، ممکن است زمانی که خرید هنوز در حالت PENDING است، حقوقی را اعطا کنید. می‌توانید اطلاعات بیشتری را در بخش رسیدگی به معاملات معلق بیابید.
  7. پس از اعطای حق، اگر می‌خواهید یک محصول مصرفی را مصرف کنید و آن را تأیید کنید، از Purchases.products:consume Play Developer API در سرور باطن امن خود استفاده کنید. برای تأیید یک محصول غیرقابل مصرف یا یک اشتراک، با نقطه پایانی Play Developer API مربوطه تماس بگیرید، Purchases.products:acknowledge یا Purchases.subscriptions:acknowledge در سرور پشتیبان امن خود. تأیید لازم است، زیرا به Google Play اطلاع می دهد که به کاربر حق خرید داده شده است. شما باید بلافاصله پس از اعطای حق، خرید را تایید کنید.

    توجه داشته باشید که در حالی که می توانید خرید را در سمت مشتری از طریق برنامه خود تأیید یا مصرف کنید، API های سمت سرور محافظت بیشتری در برابر مشکلاتی مانند اتصال ضعیف شبکه و فعالیت های مخرب ارائه می دهند. به عنوان مثال، در نظر بگیرید که کاربر موردی را از برنامه شما خریداری کرده است اما در حین تأیید اعتبار، اتصال شبکه را از دست داده است. بدون تأیید سرور، ممکن است لازم باشد دوباره از طریق برنامه وارد سیستم شوند تا فرآیند تأیید را تکمیل کنند. در غیر این صورت، اگر کاربر ظرف مدت سه روز دوباره وارد سیستم نشود، به دلیل عدم تایید خرید، خرید به صورت خودکار بازپرداخت می شود. تأیید سرور با ارسال تأییدیه به محض اینکه Google Play معتبر بودن خرید را به سرور اطلاع دهد، از این سناریو جلوگیری می کند.

    برای اطلاعات بیشتر درباره تأیید خرید و مصرف، به پردازش خریدها مراجعه کنید.

محافظت از محتوای آنلاک شده شما

برای جلوگیری از توزیع مجدد محتوای قفل شده توسط کاربران مخرب، آن را در فایل APK خود قرار ندهید. در عوض، یکی از موارد زیر را انجام دهید:

  • از یک سرویس بلادرنگ برای ارائه محتوای خود استفاده کنید، مانند فید محتوا. ارائه محتوا از طریق یک سرویس بلادرنگ نیز به شما امکان می دهد تا محتوای خود را تازه نگه دارید.
  • از یک سرور راه دور برای ارائه محتوای خود استفاده کنید.

وقتی محتوا را از یک سرور راه دور یا یک سرویس بی‌درنگ تحویل می‌دهید، می‌توانید محتوای قفل‌شده را در حافظه دستگاه ذخیره کنید یا آن را در کارت SD دستگاه ذخیره کنید. اگر محتوا را روی کارت SD ذخیره می‌کنید، حتماً محتوا را رمزگذاری کنید و از یک کلید رمزگذاری مخصوص دستگاه استفاده کنید.

خریدهای باطل شده را شناسایی و مدیریت کنید

خریدهای باطل شده، خریدهایی هستند که لغو، باطل شده اند، یا هزینه بازپرداخت شده اند. اگر یک خرید باطل شده قبلاً موارد درون‌برنامه یا محتوای دیگری را به کاربر اعطا کرده است، می‌توانید از Voided Purchases API استفاده کنید تا دلیل باطل شدن خرید را به همراه هر محتوای مرتبطی که می‌توانید پس بگیرید، دریافت کنید.

خرید اقلام درون‌برنامه و اشتراک‌ها را می‌توان به دلایل مختلفی از جمله موارد زیر لغو کرد:

  • خرید یا توسط کاربر، توسعه‌دهنده یا Google لغو می‌شود (از جمله خریدهای لغو شده خودکار تایید نشده). برای اشتراک‌ها، توجه داشته باشید که این به لغو خرید اشتراک اشاره دارد، ��ه لغو ��ود ا��تراک .
  • هزینه خرید برگشت داده می شود.
  • توسعه‌دهنده برنامه سفارش کاربر را لغو یا بازپرداخت می‌کند و گزینه «لغو» را در کنسول بررسی می‌کند.

بر اساس دلیل خرید باطل و با در نظر گرفتن داده های رفتاری قبلی کاربر، می توانید در مورد یک اقدام تصمیم بگیرید. ما اجرای یک یا چند مورد از موارد زیر را توصیه می کنیم:

  • انجام clawback: هنگامی که خریدی باطل می شود، می توانید اقلام استفاده نشده را به گونه ای پس بگیرید که گویی هرگز خریداری نشده اند. به عنوان مثال، اگر خرید ارز درون بازی باطل شد، می‌توانید ارزی را که قبلاً به کاربر اعطا شده است، پس بگیرید. در مواردی که کاربر قبلاً ارز را خرج کرده است، موجودی ارز را روی منفی و محدود کردن فعالیت برنامه و خریدهای آتی تا مثبت شدن مانده ارز در نظر بگیرید.
  • اجرای حملات چندگانه: اقدامات کمتر شدیدتری را برای متخلفانی که برای اولین بار انجام می دهند، مانند نمایش هشدارهای درون برنامه ای در نظر بگیرید. برای مجرمان مکرر، اقدامات شدیدتری را در نظر بگیرید.
  • خریدها را موقتاً غیرفعال کنید: مشابه اجرای چند اخطار، خریدها را برای کاربرانی که خریدهای باطل دارند غیرفعال کنید تا زمانی که بتوانید به طور کامل تری بررسی کنید که چرا خریدها باطل شده اند.
  • به طور موقت یا دائمی دسترسی به برنامه خود را ممنوع کنید: برای موارد شدید با فعالیت های مخرب مکرر، اجازه دسترسی به برنامه خود را، به طور موقت یا دائم، در نظر بگیرید.
  • برقراری تماس های مکرر با Voided Purchases API: هنگامی که یک یا چند خرید باطل را شناسایی می کنید، تماس های مکرر بیشتری با Voided Purchases API داشته باشید تا قبل از اینکه کاربر بتواند آنها را مصرف کند، خریدها را پس بگیرید. می‌توانید اطلاعات بیشتر در مورد سهمیه‌های API خریدهای باطل را در اسناد API خریدهای باطل بیابید.

به Google کمک کنید تقلب را قبل از وقوع پیدا کند

برخی از انواع کلاهبرداری مربوط به کاربران مخربی است که چندین حساب Google و درون برنامه ایجاد می کنند تا فعالیت خود را پنهان کنند.

از روش‌های setObfuscatedAccountId و setObfuscatedProfileId در سازنده برای BillingFlowParams استفاده کنید تا به Google کمک کنید تا حساب‌های Google را به حساب‌های درون‌برنامه تبدیل کند.

Google از این داده‌ها برای شناسایی رفتارهای مشکوک و مسدود کردن برخی از انواع تراکنش‌های جعلی قبل از تکمیل استفاده می‌کند.

اقدام در برابر نقض علائم تجاری و کپی رایت

اگر از سرور راه دور برای ارائه یا مدیریت محتوا استفاده می‌کنید، هر زمان که کاربر به محتوا دسترسی پیدا کرد، از برنامه‌تان بخواهید وضعیت خرید محتوای قفل‌شده را تأیید کند. این به شما امکان می دهد در صورت لزوم استفاده را لغو کنید و دزدی دریایی را به حداقل برسانید. اگر مشاهده کردید که محتوای شما در حال توزیع مجدد در Google Play است، حتماً سریع و قاطعانه عمل کنید. برای جزئیات بیشتر، به صفحه سؤالات متداول حق نسخه‌برداری در مرکز راهنمایی حق نسخه‌برداری مراجعه کنید.

،

همانطور که محبوبیت برنامه شما افزایش می یابد، می تواند توجه ناخواسته کاربران مخربی را که ممکن است بخواهند از برنامه شما سوء استفاده کنند، به خود جلب کند. این مبحث توصیه‌هایی را شرح می‌دهد که باید از آنها برای جلوگیری از این حملات به یکپارچه‌سازی صورت‌حساب‌تان و کاهش تأثیر سوءاستفاده در برنامه‌تان استفاده کنید.

منطق حساس را به باطن خود منتقل کنید

تا آنجایی که طراحی اپلیکیشن شما اجازه می دهد، داده های حساس و منطق را به یک سرور پشتیبان که کنترل می کنید منتقل کنید. هرچه داده ها و منطق بیشتری در یک دستگاه frontend داشته باشید، آسیب پذیرتر از تغییر یا دستکاری آن است.

به عنوان مثال، یک بازی شطرنج آنلاین به جای اعتماد به اینکه فرانت اند همیشه حرکات قانونی را ارسال می کند، باید تمام حرکات در بک اند را تأیید کند.

علاوه بر این، اگر آسیب‌پذیری‌ها یا مشکلات امنیتی پیدا کردید، بسته به طراحی سیستم‌تان، ممکن است اشکال‌زدایی، رفع و عرضه به‌روزرسانی‌ها در باطن به جای فرانت‌اند آسان‌تر باشد.

قبل از اعطای حق، خریدها را تأیید کنید

یک مورد خاص از داده های حساس و منطقی که باید در باطن مدیریت شود، تأیید خرید و تأیید است. پس از خرید کاربر، باید موارد زیر را انجام دهید:

  1. purchaseToken مربوطه را به باطن خود ارسال کنید. این بدان معنی است که شما باید یک رکورد از تمام مقادیر purchaseToken برای همه خریدها نگه دارید.
  2. بررسی کنید که مقدار purchaseToken برای خرید فعلی با مقادیر purchaseToken قبلی مطابقت نداشته باشد. purchaseToken در سطح جهانی منحصر به فرد است، بنابراین می توانید با خیال راحت از این مقدار به عنوان کلید اصلی در پایگاه داده خود استفاده کنید.
  3. از Purchases.products:get یا Purchases.subscriptionsv2:get در Google Play Developer API استفاده کنید تا با Google تأیید کنید که خرید قانونی است.
  4. اگر خرید قانونی باشد و در گذشته استفاده نشده باشد، می‌توانید با خیال راحت حق اشتراک یا مورد درون‌برنامه را اعطا کنید.
  5. برای اشتراک‌ها، وقتی linkedPurchaseToken در Purchases.subscriptionsv2:get تنظیم شده است، باید linkedPurchaseToken نیز از پایگاه داده خود حذف کنید و حقی را که به linkedPurchaseToken اعطا شده است لغو کنید تا اطمینان حاصل شود که چندین کاربر حق خرید یکسان را ندارند.
  6. شما باید فقط زمانی که وضعیت خرید PURCHASED است، این حق را اعطا کنید و مطمئن شوید که خریدهای PENDING را به درستی انجام می دهید. اگر خریدهای CANCELED زیاد باشد، ممکن است زمانی که خرید هنوز در حالت PENDING است، حقوقی را اعطا کنید. می‌توانید اطلاعات بیشتری را در بخش رسیدگی به معاملات معلق بیابید.
  7. پس از اعطای حق، اگر می‌خواهید یک محصول مصرفی را مصرف کنید و آن را تأیید کنید، از Purchases.products:consume Play Developer API در سرور باطن امن خود استفاده کنید. برای تأیید یک محصول غیرقابل مصرف یا یک اشتراک، با نقطه پایانی Play Developer API مربوطه تماس بگیرید، Purchases.products:acknowledge یا Purchases.subscriptions:acknowledge در سرور پشتیبان امن خود. تأیید لازم است، زیرا به Google Play اطلاع می دهد که به کاربر حق خرید داده شده است. شما باید بلافاصله پس از اعطای حق، خرید را تایید کنید.

    توجه داشته باشید که در حالی که می توانید خرید را در سمت مشتری از طریق برنامه خود تأیید یا مصرف کنید، API های سمت سرور محافظت بیشتری در برابر مشکلاتی مانند اتصال ضعیف شبکه و فعالیت های مخرب ارائه می دهند. به عنوان مثال، در نظر بگیرید که کاربر موردی را از برنامه شما خریداری کرده است اما در حین تأیید اعتبار، اتصال شبکه را از دست داده است. بدون تأیید سرور، ممکن است لازم باشد دوباره از طریق برنامه وارد سیستم شوند تا فرآیند تأیید را تکمیل کنند. در غیر این صورت، اگر کاربر ظرف مدت سه روز دوباره وارد سیستم نشود، به دلیل عدم تایید خرید، خرید به صورت خودکار بازپرداخت می شود. تأیید سرور با ارسال تأییدیه به محض اینکه Google Play معتبر بودن خرید را به سرور اطلاع دهد، از این سناریو جلوگیری می کند.

    برای اطلاعات بیشتر درباره تأیید خرید و مصرف، به پردازش خریدها مراجعه کنید.

محافظت از محتوای آنلاک شده شما

برای جلوگیری از توزیع مجدد محتوای باز شده توسط کاربران مخرب، آن را در فایل APK خود قرار ندهید. در عوض، یکی از موارد زیر را انجام دهید:

  • از یک سرویس بلادرنگ برای ارائه محتوای خود استفاده کنید، مانند فید محتوا. ارائه محتوا از طریق یک سرویس بلادرنگ نیز به شما امکان می دهد تا محتوای خود را تازه نگه دارید.
  • از یک سرور راه دور برای ارائه محتوای خود استفاده کنید.

وقتی محتوا را از یک سرور راه دور یا یک سرویس بی‌درنگ تحویل می‌دهید، می‌توانید محتوای قفل‌شده را در حافظه دستگاه ذخیره کنید یا آن را در کارت SD دستگاه ذخیره کنید. اگر محتوا را روی کارت SD ذخیره می‌کنید، حتماً محتوا را رمزگذاری کنید و از یک کلید رمزگذاری مخصوص دستگاه استفاده کنید.

خریدهای باطل شده را شناسایی و مدیریت کنید

خریدهای باطل شده، خریدهایی هستند که لغو، باطل شده اند، یا هزینه بازپرداخت شده اند. اگر یک خرید باطل شده قبلاً موارد درون‌برنامه یا محتوای دیگری را به کاربر اعطا کرده است، می‌توانید از Voided Purchases API استفاده کنید تا دلیل باطل شدن خرید را به همراه هر محتوای مرتبطی که می‌توانید پس بگیرید، دریافت کنید.

خرید اقلام درون‌برنامه و اشتراک‌ها را می‌توان به دلایل مختلفی از جمله موارد زیر لغو کرد:

  • خرید یا ��وسط کاربر، توسعه‌دهنده یا Google لغو می‌شود (از جمله خریدهای لغو شده خودکار تایید نشده). برای اشتراک‌ها، توجه داشته باشید که این به لغو خرید اشتراک اشاره دارد، نه لغو خود اشتراک .
  • هزینه خرید برگشت داده می شود.
  • توسعه‌دهنده برنامه سفارش کاربر را لغو یا بازپرداخت می‌کند و گزینه «لغو» را در کنسول بررسی می‌کند.

بر اساس دلیل خرید باطل و با در نظر گرفتن داده های رفتاری قبلی کاربر، می توانید در مورد یک اقدام تصمیم بگیرید. ما اجرای یک یا چند مورد از موارد زیر را توصیه می کنیم:

  • انجام clawback: هنگامی که خریدی باطل می شود، می توانید اقلام استفاده نشده را به گونه ای پس بگیرید که گویی هرگز خریداری نشده اند. به عنوان مثال، اگر خرید ارز درون بازی باطل شد، می‌توانید ارزی را که قبلاً به کاربر اعطا شده است، پس بگیرید. در مواردی که کاربر قبلاً ارز را خرج کرده است، موجودی ارز را روی منفی و محدود کردن فعالیت برنامه و خریدهای آتی تا مثبت شدن مانده ارز در نظر بگیرید.
  • اجرای حملات چندگانه: اقدامات کمتر شدیدتری را برای متخلفانی که برای اولین بار انجام می دهند، مانند نمایش هشدارهای درون برنامه ای در نظر بگیرید. برای مجرمان مکرر، اقدامات شدیدتری را در نظر بگیرید.
  • خریدها را موقتاً غیرفعال کنید: مشابه اجرای چند اخطار، خریدها را برای کاربرانی که خریدهای باطل دارند غیرفعال کنید تا زمانی که بتوانید به طور کامل تری بررسی کنید که چرا خریدها باطل شده اند.
  • به طور موقت یا دائمی دسترسی به برنامه خود را ممنوع کنید: برای موارد شدید با فعالیت های مخرب مکرر، اجازه دسترسی به برنامه خود را، به طور موقت یا دائم، در نظر بگیرید.
  • برقراری تماس های مکرر با Voided Purchases API: هنگامی که یک یا چند خرید باطل را شناسایی می کنید، تماس های مکرر بیشتری با Voided Purchases API داشته باشید تا قبل از اینکه کاربر بتواند آنها را مصرف کند، خریدها را پس بگیرید. می‌توانید اطلاعات بیشتر در مورد سهمیه‌های API خریدهای باطل را در اسناد API خریدهای باطل بیابید.

به Google کمک کنید تقلب را قبل از وقوع پیدا کند

برخی از انواع کلاهبرداری مربوط به کاربران مخربی است که چندین حساب Google و درون برنامه ایجاد می کنند تا فعالیت خود را پنهان کنند.

از روش‌های setObfuscatedAccountId و setObfuscatedProfileId در سازنده برای BillingFlowParams استفاده کنید تا به Google کمک کنید تا حساب‌های Google را به حساب‌های درون‌برنامه تبدیل کند.

Google از این داده‌ها برای شناسایی رفتارهای مشکوک و مسدود کردن برخی از انواع تراکنش‌های جعلی قبل از تکمیل استفاده می‌کند.

اقدام در برابر نقض علائم تجاری و کپی رایت

اگر از سرور راه دور برای ارائه یا مدیریت محتوا استفاده می‌کنید، هر زمان که کاربر به محتوا دسترسی پیدا کرد، از برنامه‌تان بخواهید وضعیت خرید محتوای قفل‌شده را تأیید کند. این به شما امکان می دهد در صورت لزوم استفاده را لغو کنید و دزدی دریایی را به حداقل برسانید. اگر مشاهده کردید که محتوای شما در حال توزیع مجدد در Google Play است، حتماً سریع و قاطعانه عمل کنید. برای جزئیات بیشتر، به صفحه سؤالات متداول حق نسخه‌برداری در مرکز راهنمایی حق نسخه‌برداری مراجعه کنید.

،

همانطور که محبوبیت برنامه شما افزایش می یابد، می تواند توجه ناخواسته کاربران مخربی را که ممکن است بخواهند از برنامه شما سوء استفاده کنند، به خود جلب کند. این مبحث توصیه‌هایی را شرح می‌دهد که باید از آنها برای جلوگیری از این حملات به یکپارچه‌سازی صورت‌حساب‌تان و کاهش تأثیر سوءاستفاده در برنامه‌تان استفاده کنید.

منطق حساس را به باطن خود منتقل کنید

تا آنجایی که طراحی اپلیکیشن شما اجازه می دهد، داده های حساس و منطق را به یک سرور پشتیبان که کنترل می کنید منتقل کنید. هرچه داده ها و منطق بیشتری در یک دستگاه frontend داشته باشید، آسیب پذیرتر از تغییر یا دستکاری آن است.

به عنوان مثال، یک بازی شطرنج آنلاین به جای اعتماد به اینکه فرانت اند همیشه حرکات قانونی را ارسال می کند، باید تمام حرکات در بک اند را تأیید کند.

علاوه بر این، اگر آسیب‌پذیری‌ها یا مشکلات امنیتی پیدا کردید، بسته به طراحی سیستم‌تان، ممکن است اشکال‌زدایی، رفع و عرضه به‌روزرسانی‌ها در باطن به جای فرانت‌اند آسان‌تر باشد.

قبل از اعطای حق، خریدها را تأیید کنید

یک مورد خاص از داده های حساس و منطقی که باید در باطن مدیریت شود، تأیید خرید و تأیید است. پس از خرید کاربر، باید موارد زیر را انجام دهید:

  1. purchaseToken مربوطه را به باطن خود ارسال کنید. این بدان معنی است که شما باید یک رکورد از تمام مقادیر purchaseToken برای همه خریدها نگه دارید.
  2. بررسی کنید که مقدار purchaseToken برای خرید فعلی با مقادیر purchaseToken قبلی مطابقت نداشته باشد. purchaseToken در سطح جهانی منحصر به فرد است، بنابراین می توانید با خیال راحت از این مقدار به عنوان کلید اصلی در پایگاه داده خود استفاده کنید.
  3. از Purchases.products:get یا Purchases.subscriptionsv2:get در Google Play Developer API استفاده کنید تا با Google تأیید کنید که خرید قانونی است.
  4. اگر خرید قانونی است و در گذشته استفاده نشده است، می‌توانید با خیال راحت حق اشتراک یا مورد درون‌برنامه را اعطا کنید.
  5. برای اشتراک‌ها، وقتی linkedPurchaseToken در Purchases.subscriptionsv2:get تنظیم شده است، باید linkedPurchaseToken نیز از پایگاه داده خود حذف کنید و حقی را که به linkedPurchaseToken اعطا شده است لغو کنید تا اطمینان حاصل شود که چندین کاربر حق خرید یکسان را ندارند.
  6. شما باید فقط زمانی که وضعیت خرید PURCHASED است، این حق را اعطا کنید و مطمئن شوید که خریدهای PENDING را به درستی انجام می دهید. اگر خریدهای CANCELED زیاد باشد، ممکن است زمانی که خرید هنوز در حالت PENDING است، حقوقی را اعطا کنید. می‌توانید اطلاعات بیشتری را در بخش رسیدگی به معاملات معلق بیابید.
  7. پس از اعطای حق، اگر می‌خواهید یک محصول مصرفی را مصرف کنید و آن را تأیید کنید، از Purchases.products:consume Play Developer API در سرور باطن امن خود استفاده کنید. برای تأیید یک محصول غیرقابل مصرف یا یک اشتراک، با نقطه پایانی Play Developer API مربوطه تماس بگیرید، Purchases.products:acknowledge یا Purchases.subscriptions:acknowledge در سرور پشتیبان امن خود. تأیید لازم است، زیرا به Google Play اطلاع می دهد که به کاربر حق خرید داده شده است. شما باید بلافاصله پس از اعطای حق، خرید را تایید کنید.

    توجه داشته باشید که در حالی که می توانید خرید را در سمت مشتری از طریق برنامه خود تأیید یا مصرف کنید، API های سمت سرور محافظت بیشتری در برابر مشکلاتی مانند اتصال ضعیف شبکه و فعالیت های مخرب ارائه می دهند. به عنوان مثال، در نظر بگیرید که کاربر موردی را از برنامه شما خریداری کرده است اما در حین تأیید اعتبار، اتصال شبکه را از دست داده است. بدون تأیید سرور، ممکن است لازم باشد دوباره از طریق برنامه وارد سیستم شوند تا فرآیند تأیید را تکمیل کنند. در غیر این صورت، اگر کاربر ظرف مدت سه روز دوباره وارد سیستم نشود، به دلیل عدم تایید خرید، خرید به صورت خودکار بازپرداخت می شود. تأیید سرور با ارسال تأییدیه به محض اینکه Google Play معتبر بودن خرید را به سرور اطلاع دهد، از این سناریو جلوگیری می کند.

    برای اطلاعات بیشتر درباره تأیید خرید و مصرف، به پردازش خریدها مراجعه کنید.

محافظت از محتوای آنلاک شده شما

برای جلوگیری از توزیع مجدد محتوای قفل شده توسط کاربران مخرب، آن را در فایل APK خود قرار ندهید. در عوض، یکی از موارد زیر را انجام دهید:

  • از یک سرویس بلادرنگ برای ارائه محتوای خود استفاده کنید، مانند فید محتوا. ارائه محتوا از طریق یک سرویس بلادرنگ نیز به شما امکان می دهد تا محتوای خود را تازه نگه دارید.
  • از یک سرور ��اه دور برای ارائه محتوای خود استفاده کنید.

وقتی محتوا را از یک سرور راه دور یا یک سرویس بی‌درنگ تحویل می‌دهید، می‌توانید محتوای قفل‌شده را در حافظه دستگاه ذخیره کنید یا آن را در کارت SD دستگاه ذخیره کنید. اگر محتوا را روی کارت SD ذخیره می‌کنید، حتماً محتوا را رمزگذاری کنید و از یک کلید رمزگذاری مخصوص دستگاه استفاده کنید.

خریدهای باطل شده را شناسایی و مدیریت کنید

خریدهای باطل شده، خریدهایی هستند که لغو، باطل شده اند، یا هزینه بازپرداخت شده اند. اگر یک خرید باطل شده قبلاً موارد ��رو��‌برنامه یا محتوای ��یگری را به کاربر اعطا کرده است، می‌توانید از Voided Purchases API استفاده کنید تا دلیل باطل شدن خرید را به همراه هر محتوای مرتبطی که می‌توانید پس بگیرید، دریافت کنید.

خرید اقلام درون‌برنامه و اشتراک‌ها را می‌توان به دلایل مختلفی از جمله موارد زیر لغو کرد:

  • خرید یا توسط کاربر، توسعه‌دهنده یا Google لغو می‌شود (از جمله خریدهای لغو شده خودکار تایید نشده). برای اشتراک‌ها، توجه داشته باشید که این به لغو خرید اشتراک اشاره دارد، نه لغو خود اشتراک .
  • هزینه خرید برگشت داده می شود.
  • توسعه‌دهنده برنامه سفارش کاربر را لغو یا بازپرداخت می‌کند و گزینه «لغو» را در کنسول بررسی می‌کند.

بر اساس دلیل خرید باطل و با در نظر گرفتن داده های رفتاری قبلی کاربر، می توانید در مورد یک اقدام تصمیم بگیرید. ما اجرای یک یا چند مورد از موارد زیر را توصیه می کنیم:

  • انجام clawback: هنگامی که خریدی باطل می شود، می توانید اقلام استفاده نشده را به گونه ای پس بگیرید که گویی هرگز خریداری نشده اند. به عنوان مثال، اگر خرید ارز درون بازی باطل شد، می‌توانید ارزی را که قبلاً به کاربر اعطا شده است، پس بگیرید. در مواردی که کاربر قبلاً ارز را خرج کرده است، موجودی ارز را روی منفی و محدود کردن فعالیت برنامه و خریدهای آتی تا مثبت شدن مانده ارز در نظر بگیرید.
  • اجرای حملات چندگانه: اقدامات کمتر شدیدتری را برای متخلفانی که برای اولین بار انجام می دهند، مانند نمایش هشدارهای درون برنامه ای در نظر بگیرید. برای مجرمان مکرر، اقدامات شدیدتری را در نظر بگیرید.
  • خریدها را موقتاً غیرفعال کنید: مشابه اجرای چند اخطار، خریدها را برای کاربرانی که خریدهای باطل دارند غیرفعال کنید تا زمانی که بتوانید به طور کامل تری بررسی کنید که چرا خریدها باطل شده اند.
  • به طور موقت یا دائمی دسترسی به برنامه خود را ممنوع کنید: برای موارد شدید با فعالیت های مخرب مکرر، اجازه دسترسی به برنامه خود را، به طور موقت یا دائم، در نظر بگیرید.
  • برقراری تماس های مکرر با Voided Purchases API: هنگامی که یک یا چند خرید باطل را شناسایی می کنید، تماس های مکرر بیشتری با Voided Purchases API داشته باشید تا قبل از اینکه کاربر بتواند آنها را مصرف کند، خریدها را پس بگیرید. می‌توانید اطلاعات بیشتر در مورد سهمیه‌های API خریدهای باطل را در اسناد API خریدهای باطل بیابید.

به Google کمک کنید تقلب را قبل از وقوع پیدا کند

برخی از انواع کلاهبرداری مربوط به کاربران مخربی است که چندین حساب Google و درون برنامه ایجاد می کنند تا فعالیت خود را پنهان کنند.

از روش‌های setObfuscatedAccountId و setObfuscatedProfileId در سازنده برای BillingFlowParams استفاده کنید تا به Google کمک کنید تا حساب‌های Google را به حساب‌های درون‌برنامه تبدیل کند.

Google از این داده‌ها برای شناسایی رفتارهای مشکوک و مسدود کردن برخی از انواع تراکنش‌های جعلی قبل از تکمیل استفاده می‌کند.

اقدام در برابر نقض علائم تجاری و کپی رایت

اگر از سرور راه دور برای ارائه یا مدیریت محتوا استفاده می‌کنید، هر زمان که کاربر به محتوا دسترسی پیدا کرد، از برنامه‌تان بخواهید وضعیت خرید محتوای قفل‌شده را تأیید کند. این به شما امکان می دهد در صورت لزوم استفاده را لغو کنید و دزدی دریایی را به حداقل برسانید. اگر مشاهده کردید که محتوای شما در حال توزیع مجدد در Google Play است، حتما سریع و قاطعانه عمل کنید. برای جزئیات بیشتر، به صفحه سؤالات متداول حق نسخه‌برداری در مرکز راهنمایی حق نسخه‌برداری مراجعه کنید.