اخطار: این پست دارای کلماتی ناشی از دقیق نبودن دستور العمل موجود است که نکته ای منفی به حساب می آید، چون در حال حاضر وقت تست های بیشتر را نداشتم به همین شکل آن را نوشته و به اشتراک گذاشته ام.
معمولا دوست دارم در باره مطالب خیلی با ارزش و نسبتا پیچیده بنویسم تا چیزی که می نویسم برای خوانندگان مفید باشد و تا حد ممکن باعث گفت و گویی میان من و دیگران و میان ما و ذهن هایمان صورت گیرد که چیزی به ما اضافه کند. اما این مشکل نسبتا ساده در دو هفته اخیر برای من دردسری شد که فکر می کنم بهتر است جلوی اتفاق افتادن مجددش را برای دیگران بگیرم.
هنگامی که شما می خواهید با گوگل پلی خرید کنید و یا در آن لاگین کنید، اگر در ایران باشید اجازه خرید به شما داده نمی شود و مثلا بخش IAP یونیتی حتی Initialize هم نمی شود و با پیام PurchaseUnavailable و اجرای کالبک خطا به کار خود پایان می دهد. من در گذشته این مشکل را حل کرده بودم ولی در دو هفته گذشته ناگهان هر کاری می کردم نمی توانستم گوگل را گول بزنم. فرایند را به همراه پستی و بلندی هایش توضیح می دهم، امید به این که وقت برنامه نویسی چند دقیقه بیشتر صرف کارهای مفید شود. نکته: اینستاگرام و تلگرام عموما مصرف مفید وقت محسوب نمی شوند.
برای گول زدن گوگل لازم است سرویس Location گوشی خود را خاموش کنید و می توانید برای خاطر جمعی auto sync سرویس Date And Time را هم خاموش کنید و تیکش را بردارید (نمی دانم این یکی اثر دارد یا خیر). با این کار Google Play Store هنگام سعی در فهمیدن مکان شما از IP شما استفاده خواهد کرد. باید یک VPN را وصل کرده و به فروشگاه Google Play رفته و چیزی download کنید (نمی دانم آیا باز کردن و بستن کافی هست یا خیر و چه قدر تعامل با فروشگاه لازم است، شاید سرچ هم کافی باشد). پس از download گوگل پلی از روی IP شما ، تصور می کند در کشوری دیگر هستید. دقت کنید که در home screen مکان شما درست تشخیص داده شده و حتی ساعت هم (با وجود خاموش بودن sync) درست نمایش داده می شود ، حتی اگر منطقه خود را جای دیگری انتخاب کرده باشید. اما این ها مهم نیستند. پس از این کارها می توانید به برنامه خود رفته و IAP را تست کرده و انجام دهید.
دقت کنید اگر بعدا بدون VPN کاری کنید که Google Play بخواهد location شما را چک کند (مثل تست خرید یا گرفتن برنامه از فروشگاه)، مجبورید گوشی را reset کنید و به VPN متصل شوید و با فروشگاه تعامل کنید تا Locationتان عوض شود. اگر بعد از reset فقط VPN را وصل کنید و بدون رفتن به فروشگاه بازی خود را باز کنید، قادر به انجام خرید نخواهید بود و ممکن است مثل من گول Home Screen را بخورید و فکر کنید چون در آن جا location شما درست تشخیص داده شده نمی توانید خرید کنید، در حالی که نیاز است بعد از Reset و وصل کردن VPN یک تعامل با فروشگاه داشته باشید و بعد وارد بازیتان شوید.
تست های من توسط ,Unity 2017.3 و Unity IAP روی Galaxy Tab 3 و Android 4.4.4 صورت گرفته و نمی دانم روی گوشی های دیگر در شرایط دیگر کار می کند یا خیر. من دو سال پیش هم این کار یعنی تست IAP را انجام داده بودم اما متوجه پروسه دقیق مورد نیاز نشده بودم چون احتمالا برای تست اولیه که ببینم آیا گوگل گول من را خورده یا نه به فروشگاه رفته و سعی کرده بودم برنامه ای که در بازار ایران نیست را بگیرم. ببخشید که این پست برعکس چیزی که باید باشد، پر از نمی دونم این کار می کنه و نمی دونم آیا این لازمه یا نه و ... بود. خوبه که تست بشه و پروسه دقیق مشخص بشه ولی زندگی کوتاهتر از این هاست که بتونیم همه کارایی که خوبه انجام بشه رو انجام بدیم پس من تا این جا رو انجام دادم و به اشتراک گذاشتم. اگر کسی فرایند دقیقتری و با اما و اگرهای کمتری را انجام داده / می دهد، خوشحال می شوم که پست را با اطلاعات او کامل کنم.
به روز رسانی طبق یکی از کامنت ها توسط آقای مسعود، به جای راه اندازی مجدد گوشی می توانید اطلاعات Google Play Store را پاک کرده و sign out کنید و پس از وصل کردن VPN دوبارهدر play store خود را sign in کنید و سپس پرداخت های خود را تست کنید. این که راهاندازی مجدد و اتصال VPN را انجام دهید یا پاک کردهن داده ها و sign out انتخاب شما است و بسته به این که کدام راحتتر است. به نظر من چون راه اندازی مجدد نیاز به کار کمتری توسط شما دارد، زمان کمتری از شما صرف می کند و مجبور نیستید passwordتان را تایپ کنید، راحتتر است. این را هم بگویم که در تست من، بدون sign out کردن و فقط با پاک کردن داده های Play Store موقعیت جغرافیایی من تغییر نکرد و نتوانستم خرید درون برنامه ای را تست کنم (این تست را فقط یک بار انجام دادم و دقت نتیجه شدید نیست).