آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

باگ های سیستم پرداخت درون برنامه ای که باید براش فکری کرد !!! اساتید نظر بدن

نورحسینی  10 سال پیش  10 سال پیش
+3 0

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

باگ دوم هم اینکه  برنامه من یک کمی تغییرات میخاد که احتیاج به آپدیت داره . در آپدیت هم باید بگیم اول برنامه به صورت کامل حذف بشه بعد ورژن جدید رو نصب کنند . وقتی هم که بخان مجدد نصب کنند برنامه مسلما قفله و برای باز کردن قابلیت هاش   دوباره باید اون رو بخرن ولی سیستم مالی بازار حتی برای اونهایی که یک بار برنامه رو قبلا خریدن  دوباره به صورت رایگان باز نمیکنه .البته این امکان برای برنامه هایی که از ابتدا پولی باشن پیش بینی شده و شما میتونی اونها رو در لیست خریده شده ها پیدا و دوباره به صورت رایگان نصب کنی ولی همونطور که گفتم مستندات من طوری که باید حتما دوباره پرداخت بشه تا برنامه براش باز بشه  . حالا عزیزان با  این دو تا مشکل بزرگ  چه باید کرد؟

0 0
دوستان منتظر راهکار هستیم! (10 سال پیش)
0 0
سلام در مورد مشکل دوم خدمتتون عرض کنم که تمام پرداخت های درون برنامه ای کاربر در حسابش ذخیره می شه و حتی اگه با یک گوشیه دیگه برنامه شما رو نصب کنه اگر در بازار لاگین کرده باشه دیگه لازم نیست دوباره پولی بده. در مورد مشکل اول هم باید دید علت کرش چیه؟ ساده ترین راهش استفاده از try هست (10 سال پیش)
0 0
نه مشکل دوم وارده، طرف اگر با پرداخت درون برنامه ای یک برنامه رو خریده باشه دوباره که بخاد نصب کنه باید برای ارتقا اون مبلغ رو واریز کنه و همچین باگی وجود داره، من به بازار ایمیل زدم و منتظر پاسخشون هستم، که البته هنوز خبری ازشون نشده (10 سال پیش)
0 0
تو توضیحات برنامه بنویسید کلیه پولهایی که اضافه گرفته میشه صرف کودکان سرطانی محک میشه ، کسی بهتون گیر نمیده :-) (10 سال پیش)
0 0
اونی که باید گیر بده میده قربونت برم :) سید تو که انقدر کارت درسته به جای اینکه بیای جوک بگی یه راه حل بده ببینیم چه کنیم آخه . بابا من میخام آپدیت بزارم نمیتونم . کمک کنید ! رضایی جان تو هنوز موفق نشدی حلش کنی ؟ کدت رو با مجتبی چک کردی یه چیزایی دیدم ؟ بی زحمت حل شد یه ندا به من هم بده ممنون . (10 سال پیش)
0 0
راستی رضایی جان راه حل مشکل اول چیه ؟ این برای شما حل شده لابد دیگه که قبولش نکردی . راهش چیه؟ ممنون . (10 سال پیش)
0 0
@MiRHaDi :) ، سید جان من الان به شدت سرم شلوغه، گهگاهی برا رفع خستگی ی سر میام سایت، در مورد باگ پرداخت درون برنامه ای دیواری کوتاه تر از ALU بیچاره گیر نیاوردم، ایشالا خبرش که رسید دلیل این مشکل رو میذارم توو همون تاپیک پرداخت درون برنامه ای که همه استفاده کنن (10 سال پیش)
0 0
حسین جان فکر میکنم منظورم رو درست بیان نکردم اونجاییکه گفتم (قبول نکردی) . منظورم این نبود که بیایی قبول کنی مشکل رو حل کنی بلکه منظورم این بود که من گفتم ۲ تا باگ داره ولی شما فقط دومیش رو قبول کردی و گفتی مشکل دوم وارده و این یعنی باگ اول رو که مربوط به کرش میشه رو حل کردی برای خودت. منظورم این بود قربونت برم . حالا اگر یک زمانی وقت کردی هم راه حل رفع کرش رو بزار و هم راهکاره جلوگیری از پرداخت دوباره مشتری ها رو . ممنون از لطفت . (10 سال پیش)
0 0
در مورد اول با یک try - catch میتونی خطا رو مدیریت کنی و در مورد دوم تا جایی که من تست کردم مشکلی نیست یعنی کاربر وقتی ارتقا میده، حتی اگه برنامه رو حذف کنه و دوباره نصب کنه کافیه یک بار اقدام کنه برای ارتقاء و بدون نیاز به پرداخت بازار حسابش رو تایید میکنه (10 سال پیش)
0 0
پرداخت درون برنامه ای باگ زیاد داره ، ولی هیچ کدوم از اینا نیست ، توی برنامه من که درحال حاضر 4 روزه که توی تست بازار هست هیچ کدوم از این مشکلات نیست ، ولی یکسری مشکلات بزرگتر هست که اونم تابع ستاپ کردن بازاره ، اون تا دلتون بخواد باگ داره (10 سال پیش)
0 0
شما استادی (10 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Hajhosseini  10 سال پیش
+1 0

سوال اول شما 2 حالت داره ، 1 اینکه شما ستاپ بازار رو در onCreate صفحه مین گذاشته باشید و عملیات خرید بعد از انجام متد ستاپ بازار انجام بشه ، که توی اون حالت با نوشتن کد :

 @Override
    public void onDestroy() {
        super.onDestroy();
        if (mHelper != null)
            mHelper.dispose();
        mHelper = null;
    }

مشکلتون حل میشه .
توی حالت دوم اینه که متدستاپ بازار رو توی صفحه خرید گذاشته باشید و ستاپ هم زمان با خرید انجام بشه که احتمالش خیلی کمه چون باگ های زیادی داره ، توی اون حالت باید کاربر رو فورس کنید که تا اتمام ستاپ بازار صبر کنه و توی برنامه باید دقت کنید که فقط و فقط یکبار متد ستاپ بازار رو اجرا کنید ، اگر 2 بار اجراش کنید جوابی از لیستنر ها دریافت نمیکنید و برنامه روی لودینگتون هنگ میکنه

0 0
ممنون از لطفت علی جان و از وقتی که گزاشتی باید کامل بخونمش قربونت برم . (10 سال پیش)
پاسخ به سوال 
Hajhosseini  10 سال پیش
+1 0

سوال دوم شما خیلی سادست : شما اگر توی مین برنامه ستاپ بازار :

 if (isPackageInstalled() && checkOnlineState()) {
                //bazzar

                try {

                    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

                        public void onIabSetupFinished(IabResult result) {

                            if ( !result.isSuccess()) {}
                            mHelper.queryInventoryAsync(mGotInventoryListener);
                        }
                    });
                }
                catch (Exception e) {}
            }

رو به این روش انجام بدید ، یعنی اول چک بشه که اتصال به اینترنت انجام شده و بعد ببینید که بازار نصب هست یا نه ، که میشه جدا چک کرد و با یک Toast به کاربر اطلاع داد ( اگر کد هارو ندارید بگید که زیر این تاپیک کد ها رو اضافه کنم ) ...
توی این شرایط ستاپ بازار انجام میشه و بعد از 3-5 ثانیه ( میتونه 1 تا 10 ثانیه باشه با سرعت اینترنت شما ) جوابی از بازار به ما برگردونده میشه که توی لیستنر اول بازار یعنی :

 IabHelper.QueryInventoryFinishedListener mGotInventoryListener = 
new IabHelper.QueryInventoryFinishedListener() {
public void onQueryInventoryFinished(IabResult result, Inventory inventory) { try { if (result.isFailure()) { return; } else { mIsPremium = inventory.hasPurchase(SKU_PREMIUM); if (mIsPremium){ (توضیحات 1) } else { (توضیحات 2) } } } catch (Exception e) {} } };

توضیحات 1 زمانی اتفاق می افته که برنامه خریداری شده باشه از قبل ، هیچ فرقی نداره که کاربر چند بار برنامه رو پاک یا نصب کنه ، اگر با یوزری که خریده با بازار لاگین باشه این تابع بعد از اون زمان گفته شده انجام میشه ، ، ، اینجا همون جاییه که شما باید UI رو به خریداری شده تغییر بدید .
توضیحات 2 : زمانی اتفاق می افته که کاربر خرید نکرده باشه ، که استفاده از این تابع پیشنهاد نمیشه به این دلیل که ممکنه کاربر خرید کرده باشه ولی به بازار لاگین نباشه ، به اینترنت متصل نباشه ، یا از همه اینا بدتر اینکه با یک یوزر دیگه لاگین کرده باشه ، که توی اینجور شرایط شما کاربر رو عادی میکنید و میگید دوباره باید برنامه رو بخره.
امیدوارم مفید بوده باشه

0 0
ممنون از لطفت علی جان و از وقتی که گزاشتی باید کامل بخونمش قربونت برم . (10 سال پیش)
پاسخ به سوال 
Hajhosseini  10 سال پیش
+1 0

یک چیز دیگه یادم رفت ، اگر شما برای برنامتون Key استفاده کنید نیازی نیست برای هر آپدیت به کاربر بگید قبلی رو پاک کنه و بعدی رو نصب کنه . توضیحات کامل در فصل 18 آموزشها

0 0
ممنون از لطفت علی جان و از وقتی که گزاشتی باید کامل بخونمش قربونت برم . (10 سال پیش)
0 0
خواهش میکنم دوست عزیز (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .