نقل قول نوشته شده توسط Amir Oveisi مشاهده تاپیک
حالا اگر نخواید پرداخت ها رو سمت سرور مدیریت کنید، باز هم میشه این مشکل رو حل کرد. کافیه از روشی که بازار توضیح داده، develpoer payload رو تولید کنید و هر زمانی که در برنامه پرداخت انجام شد مقدار payload رو به سرورتون ارسال کنید و ذخیره کنید اونجا.حالا هر موقع که برنامه اجرا میشه چک کنید ببینید که آیا کاربر ارتقا یافته هست یا نه، اگر کاربر ارتقا یافته بود یعنی یا واقعا پرداخت کرده یا اینکه کرک کرده و برنامه به اشتباه فکر میکنه که پرداخت شده. برای اطمینان از این موضوع اون developer payload ای که تولید کردید رو بفرستید به سرور، اگر توی سرور هم همون مقدار برای developer payload وجود داشته باشه برای اون کاربر، یعنی واقعا پرداخت رو انجام داده و در غیر اینصورت یعنی کرک شده و مانع ورود کاربر به برنامه میشید.
پس در نهایت شما باید سرور خودتون رو داشته باشید برای حل این مشکل و صرفا به برنامه کلاینتتون که روی گوشی نصب شده برای مدیریت پرداخت ها اکتفا نکنید.
موفق باشید
اول یک نکته ای:
من داخل پست های قبلیم یک جا اشتباهی گفتم که میشه بدون سرور هم با قرار دادن developer payload برنامه بررسی کرد که اشتباه گفتم . و الان میرم که ویرایشش کنم بعدا باعث اشتباه دیگران نشه.
اصلا فراموش کردم که باید بعد از خرید برنامه یک سری به وب سرویس بزنه و وب سرویس هم با REST کردن با بازار ببنه خرید به درستی ثبت شده یا خیر. که من اونجا گفتم که حتما نیازی به سرور نیست که اشتباه بود و حتما نیاز هست. همین جا معزرت میخوام از همه. (اون پست هم ویرایش میکنم.)

اما دوم:
نقل قول نوشته شده توسط Amir Oveisi مشاهده تاپیک
حل این مشکل چندان هم پیچیده نیست! شما برای اینکه امکان پرداخت درون برنامه ای داشته باشید قطعا برنامتون دسترسی اینترنت داره پس بجای اینکه کل مراحل پرداخت رو از طریق برنامه اندرویدیتون انجام بدید، باید مراحل پرداخت رو از طریق سرور های خودتون انجام بدید. یعنی اینکه به جای اینکه برنامه شما به سرور بازار وصل بشه و پرداخت کنه، باید برنامتون به سرور خودتون وصل بشه و سرور شما با بازار ارتباط برقرار کنه و جواب رو به برنامه شما منتقل کنه و مراحل پرداخت رو انجام بدید. وقتی این اتفاق افتاد، سرور شما میدونه که کدوم کاربر واقعا پرداخت رو انجام داده. بعد از این تنها کاری که لازمه انجام بدید اینه که در بازه های زمانی مختلف یه ارتباط کوچیک از برنامه اندرویدی به سرورتون داشته باشید و با ارسال شناسه کاربری به سرور چک کنید ببینید کاربر پرداخت کرده یا نه. پس اگر کاربر برنامه رو کرک کرده باشه توی سرور شما براش پرداختی ثبت نشده و در اولین ارتباطی که با سرور برقرار میشه مشخص میشه برنامه کرک شده و میتونید ورودش به برنامه رو جلوگیری کنید.
برای پرداخت درون برنامه چطوری میشه پرداخت درون برنامه رو تبدیل به پرداخت داخل وب کرد؟