رفتن به مطلب
  • 0

مصرف خرید از بازار


ahmandir

سوال

سلام دوستان خداروشکر با مطالب دوستان تونستم به خوبی خرید درون برنامه بازارا رو راه بندازم تنها مشکلی که هنوز برام پابرجا مونده این که که چجوری خرید مشتری رو مصرف کنم تا قابل استفاده ی مجدد نباشه . مثلا کاربر سکه توی برنامم میخره و میخوام بعدا باز هم بتونه سکه بخره .

 

کدهای پرداخت الانم به این شکل هستن 3 تا متغییر برای بیس 64 و شناسه ی محصول و آخری با نام اچ مه لب هلپر هست :

   public String RSA_KEYy="cooooooooooooood";
    private  String KEY_P2 = "kala1";
    private IabHelper h;

ادامه ی کدها توی آن کریت :


buy = (Button) findViewById(R.id.buy);


        h = new IabHelper(this, RSA_KEYy);
        h.startSetup(
                new IabHelper.OnIabSetupFinishedListener()
                {
                    @Override
                    public void onIabSetupFinished(IabResult result)
                    {
                        if( result.isSuccess() )
                        {
                            ArrayList<String> moreSkus = new ArrayList<String>();
                            moreSkus.add( KEY_P2 );
                            h.queryInventoryAsync( true, moreSkus,
                                    new IabHelper.QueryInventoryFinishedListener()
                                    {
                                        @Override
                                        public void onQueryInventoryFinished(IabResult result, Inventory inv)
                                        {
                                            if( result.isSuccess() )
                                            {
                                                SkuDetails d = inv.getSkuDetails(KEY_P2);
                                                buy.setText(getTitle());

                                            }
                                            else
                                            {
                                                //
                                            }
                                        }
                                    }
                            );
                        }
                    }
                }
        );



        buy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                h.launchPurchaseFlow(MainActivity.this, KEY_P2, 1001,
                        new IabHelper.OnIabPurchaseFinishedListener()
                        {
                            @Override
                            public void onIabPurchaseFinished(IabResult result, Purchase info)
                            {
                                if ( result.isSuccess() ) {
                                    //



                                    Toast.makeText(MainActivity.this, "yeeeeeees", Toast.LENGTH_SHORT).show();
                                } else {
                                    //
                                    Toast.makeText(MainActivity.this, "noooooooooooo", Toast.LENGTH_SHORT).show();
                                }
                            }
                        }
                );
            }
        });

و قسمت آخر :

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        h.handleActivityResult(requestCode, resultCode, data);
    }

 

 

با این کد خرید انجام میشه تنها مشکلی که دارم می خوام خرید رو مصرف کنه و کاربر با خرید مجدد پول رو دوباره پرداخت کنه .

 

ممنون میشم راهنماییم کنین خیلی به این کد نیاز دارم .

 

توی خود بازار دراین باره این کد ها رو به عنوان مثال داده :

mHelper.consumeAsync(inventory.getPurchase(SKU_GAS),
   mConsumeFinishedListener);

و

IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
   new IabHelper.OnConsumeFinishedListener() {
   public void onConsumeFinished(Purchase purchase, IabResult result) {
      if (result.isSuccess()) {
         // provision the in-app purchase to the user
         // (for example, credit 50 gold coins to player's character)
      }
      else {
         // handle error
      }
   }
};

این کد رو باید توی کد خودم جایگذاری کنم اما دقیق نمیتونم . البته h رو بجای لب هلپر قرار میدم و KEY محصول خودم رو بجای پارامتر اول اما نمیدونم mconsmefinishedlistener رو چیکارش کنم .

 

 

باز هم ممنون میشم راهنماییم کنین .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

ببین عزیز دل،

مصرف خرید کاربر؛همون مصرف سکه هاش هست.شما تعداد سکه هارو مدیریت کن.

این عکس رو ببینید »

cafebazaar.png

 

شاید ایراد کارتون اینجاست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

 

 

من فعلا توی کد امتحان تنها یک توست دادم . زمان امتحان بار اول مبلغ رو کسر کرد و برگشت و توست yes رو داد . بار دوم اما بدون کم کردن هزینه پیام یس رو داد . حالا دو کد آخری که نوشتم توی تاپیک باید توی کدم قرار بگیرن تا خرید مصرف بشه .

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 7 ساعت قبل، ahmandir گفته است :

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

 

 

من فعلا توی کد امتحان تنها یک توست دادم . زمان امتحان بار اول مبلغ رو کسر کرد و برگشت و توست yes رو داد . بار دوم اما بدون کم کردن هزینه پیام یس رو داد . حالا دو کد آخری که نوشتم توی تاپیک باید توی کدم قرار بگیرن تا خرید مصرف بشه .

 

سلام،

شما با این کد محصول رو مصرف می کنید:

int response = mService.consumePurchase(3, getPackageName(), token);

توضیحات بیشتر در اینجا:

پیاده‌سازی - پرداخت درون‌برنامه‌ای بازار

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کاری به کدهایی که گذاشتید ندارم کلا!

شما با هربار خرید مقدار سکه ای که باید به کاربر بدید رو مقدارش رو انکریپت کنید بزارید توی حافظه داخلی یا واسه امنیت بیشتر توی سرورتون ( هاست و . . . ).

بعد از تموم شدن سکه ها، این روال تکرار پیدا می کنه.

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 دقیقه قبل، مجید آرتا گفته است :

سلام

کاری به کدهایی که گذاشتید ندارم کلا!

شما با هربار خرید مقدار سکه ای که باید به کاربر بدید رو مقدارش رو انکریپت کنید بزارید توی حافظه داخلی یا واسه امنیت بیشتر توی سرورتون ( هاست و . . . ).

بعد از تموم شدن سکه ها، این روال تکرار پیدا می کنه.

 

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

 

میخوام کاربر 5000 تومن خرید کرد خریدش مصرف بشه تا بتونه دوباره با همین گزینه 5000 تومن دیگه بخره . قسمت کار با سکه رو نوشتم و کامل هست تمام برنامه نوشته شده مونده لنگ همین مصرف خرید کاربر .

 

 

الان کاربر یک بار سکه بخره بار دوم فقط کلیک کنه از بازار مقدار می یاد که قبلا خرید کرده . می خوام خرید قبلش مصرف بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...