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

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

لغو اشتراک ها

کاربران می‌توانند در هر زمان با استفاده از فروشگاه Play اشتراک Google Play را لغو کنند، اگرچه شما باید گزینه‌ای را نیز برای کاربران در نظر بگیرید تا اشتراک خود را در برنامه شما و در صورت وجود در وب‌سایت شما لغو کنند.

ساده‌ترین راه برای فعال کردن کاربران برای لغو داوطلبانه ، پیوند عمیق به PlayStore است، جایی که می‌توانند اشتراک خود را مشاهده و مدیریت کنند.

همچنین ممکن است نیاز باشد که لغو را از باطن خود فعال کنید. روش purchases.subscriptions.cancel به شما امکان می دهد خرید اشتراک را لغو کنید. برای مثال، می‌توانید از این روش برای رد کردن یک سرویس قدیمی استفاده کنید. لغو اشتراک، بازپرداختی را صادر نمی کند و کاربر تا پایان دوره صورتحساب فعلی خود به دسترسی خود ادامه می دهد. لغو اشتراک با این روش، کاربر را از بازیابی اشتراک در فروشگاه Play جلوگیری می کند، اما کاربران همچنان می توانند در صورت نیاز دوباره از طریق برنامه شما ثبت نام کنند.

انجام این اقدام یک اعلان برنامه‌نویس SUBSCRIPTION_CANCELED در زمان واقعی را راه‌اندازی می‌کند. این لغوها را همانطور که در لغو توضیح داده شده است انجام دهید.

به تعویق انداختن صورتحساب

از subscriptions.defer برای تمدید دوره حق اشتراک استفاده کنید. در طول دوره تعویق، کاربر همچنان در محتوای شما مشترک می‌ماند، هرچند برای زمان اضافی هزینه‌ای دریافت نمی‌شود. وقتی صورت‌حساب اشتراک را به تعویق می‌اندازید، اطلاعات وضعیت بر اساس آن به‌روزرسانی می‌شود و آن را در قسمت expiryTime در اطلاعات وضعیت خرید منعکس می‌کنید:

  • برای اشتراک‌های تکراری فعال، صورت‌حساب معوق تاریخ تمدید بعدی را تمدید می‌کند.
  • برای طرح های پیش پرداخت، صورتحساب معوق زمان انقضا را افزایش می دهد.

چند مثال در مورد نحوه استفاده از صورتحساب معوق عبارتند از:

  • به عنوان یک پیشنهاد ویژه به کاربران دسترسی بدون هزینه بدهید، مانند دادن یک هفته رایگان به مشترکین فعلی برای تکمیل نظرسنجی بازخورد.
  • به مشتریان به عنوان یک اقدام مراقبت از مشتری، به عنوان مثال پس از قطعی طولانی مدت که ممکن است بر توانایی آنها در استفاده از خدمات شما تأثیر بگذارد، به آنها دسترسی بدون هزینه بدهید.

صدور صورت‌حساب می‌تواند به‌ازای هر تماس API تا یک روز و تا یک سال به تعویق بیفتد. برای به تعویق انداختن بیشتر از پایان حق، قبل از رسیدن تاریخ انقضای جدید دوباره با API تماس بگیرید.

انجام این اقدام یک اعلان برنامه‌نویس SUBSCRIPTION_DEFERRED در زمان واقعی را راه‌اندازی می‌کند. برای آشنایی با نحوه مدیریت این رویدادها، به تعویق صدور صورت‌حساب برای یک مشترک در درباره اشتراک‌ها مراجعه کنید.

مثال:

  1. سرویس پخش FitnessGoals می خواهد تبلیغاتی را برای تشویق ورزش منظم در ماه فوریه اجرا کند.

  2. آنها تصمیم می گیرند یک ماه خدمات اضافی را به هر مشترکی که حداقل 10 بار در طول ماه فوریه با FitnessGoals ورزش می کند، ارائه دهند.

  3. آنها نتایج چالش را دنبال می‌کنند و در 1 مارس برای هر خرید اشتراک فعال متعلق به کاربرانی که در ماه فوریه با چالش مواجه شده‌اند، API subscriptions.defer را فراخوانی می‌کنند.

  4. این کاربران از یک ماه کامل ویدیوی تمرینی منظم بدون هیچ هزینه ای بهره مند می شوند و کاربران به همه دوستان خود می گویند که چگونه FitnessGoals به آنها کمک می کند تا سالم بمانند!

صدور بازپرداخت و ابطال

موقعیت‌های زیادی وجود دارد که ممکن است بخواهید برای یک اشتراک یا خرید یک‌باره، بازپرداختی صادر کنید یا دسترسی به آن را لغو کنید.

بازپرداخت کامل سفارش با شناسه سفارش

با orders.refund API، می‌توانید برای هر سفارشی ظرف سه سال پس از خرید، بازپرداخت کامل را صادر کنید. روش orders.refund یک پارامتر ابطال دریافت می کند که نشان می دهد علاوه بر ارائه بازپرداخت، دسترسی باید لغو شود یا خیر.

اگر با تماس بازپرداخت برای خرید اشتراک، لغو صادر کنید، اشتراک فوراً خاتمه می‌یابد و یک اعلان برنامه‌نویس SUBSCRIPTION_REVOKED بلادرنگ ایجاد می‌کند. راهنمای مدیریت چرخه عمر اشتراک بخش Revocations را بخوانید تا نحوه مدیریت این رویدادها را بیاموزید.

مثال:

  1. به منظور جشن گرفتن آغاز جام جهانی جدید، برنامه ورزش الکترونیک Football-Not-Soccer تصمیم گرفت برای همه کاربرانی که لباس های تیم جدید را در 24 ساعت اول خریداری می کنند، پیراهن های مجازی رایگان را به قید قرعه بکشد.

  2. Football-Not-Soccer از orders.refund API بدون ارسال پارامتر ابطال برای بازپرداخت خرید پیراهن به برندگان استفاده می کند.

لغو و بازپرداخت اشتراک با رمز خرید

برای موارد استفاده خاص، ممکن است لازم باشد دسترسی به اشتراک کاربر را لغو کنید و بازپرداخت را ارائه دهید. Play Billing روش‌های ابطال شامل بازپرداخت کامل و بازپرداخت نسبتاً از طریق subscriptionsv2.revoke API را ارائه می‌دهد. با این نقطه پایانی، می توانید revocationContext برای تعیین نحوه محاسبه بازپرداخت مشخص کنید.

انجام این اقدام یک اعلان برنامه‌نویس SUBSCRIPTION_REVOKED بیدرنگ را راه‌اندازی می‌کند. برنامه شما باید این لغوها را همانطور که در Revocations توضیح داده شده است انجام دهد.

مثال:

  • خرید با توکن خرید 1a2b3c4d5e6f7g8h9i0j
  • برنامه با نام بسته com.your.app
  • قصد صدور بازپرداخت متناسب

درخواست HTTP POST:

https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.your.app/purchases/subscriptionsv2/tokens/1a2b3c4d5e6f7g8h9i0j:revoke

بدن درخواستی:

{
  "revocationContext": {
    "proratedRefund": {}
  }
}

بازپرداخت کامل

اگر نیاز به پایان اشتراک و بازپرداخت کل مبلغ دوره صورت‌حساب فعلی دارید، بازپرداخت کامل را صادر کنید. از تابع purchases.subscriptionsv2.revoke استفاده کنید و "fullRefund": {} به عنوان نوع بازپرداخت تنظیم کنید.

مثال:

  1. ماریا اشتراک 30 روزه تمدید خودکار برنامه ماهانه پخش SuperMovies دارد. ماریا با برخی مشکلات فنی مواجه شد که او را از دسترسی به محتوا باز می دارد. او در روز 3 چرخه صورتحساب خود با خدمات مشتری تماس می گیرد و بیان می کند که هرگز به اشتراک دسترسی نداشته است.

  2. خدمات مشتری جزئیات خرید اشتراک ماریا را در سیستم خود پیدا می کند و یک تماس با purchases.subscriptionsv2.revoke برای درخواست بازپرداخت کامل ایجاد می کند.

  3. خدمات مشتری به ماریا می‌گوید که او باید 100٪ از قیمت اشتراک خود را بازپرداخت کند و او دیگر در طرح مشترک نیست.

بازپرداخت متناسب

اگر نیاز به پایان اشتراک و بازپرداخت بخشی از زمان باقیمانده استحقاق دارید، بازپرداخت متناسبی را صادر کنید. از تابع purchases.subscriptionsv2.revoke استفاده کنید و "proratedRefund": {} به عنوان نوع بازپرداخت تنظیم کنید.

مثال:

  1. ماریا اشتراک 30 روزه تمدید خودکار برنامه ماهانه پخش SuperMovies دارد. او مدتی است که با خوشحالی از این سرویس استفاده کرده است. ماریا در روز 15 چرخه صورت‌حساب خود با خدمات مشتری تماس می‌گیرد و بیان می‌کند که در حال نقل مکان به خارج از کشور است و از روز بعد دیگر نمی‌تواند از خدمات استفاده کند.

  2. خدمات مشتری جزئیات خرید اشتراک ماریا را در سیستم خود پیدا می‌کند و تماسی را با purchases.subscriptionsv2.revoke برای درخواست بازپرداخت نسبتاً آغاز می‌کند.

  3. خدمات مشتری به ماریا می‌گوید که او باید حدود 50 درصد از هزینه اشتراکش را بازپرداخت کند و دسترسی به این سرویس بلافاصله قطع می‌شود.