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

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

سجاد  7 سال پیش  7 سال پیش
0 0

دوستان من پرداخت درون برنامه ای مایکت رو پیاده  سازی کردم و کاملاً درست هست غیر از دو مسئله 1-توی لاگ ها وقتی برنامه بعد از خرید اجرا می شه می نویسه User is NOT PREMIUM  

2-وقتی روی دکمه خرید زده می شه لاگ Purchase successful برام چاپ می شه 

تو این گیرم که باید اطلاعات مربوطه رو توی کالبک launch purchase flow ذخیره کنم یا نه ؟ یعنی کدی با ساختار زیر!

 
buying = getSharedPreferences("buy" , MODE_PRIVATE);
editbuy = buying.edit();

iab = new IabHelper(MainActivity.this , publickey);
iab.enableDebugLogging(true);

iab.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {

if (!result.isSuccess()) {
Toast.makeText(MainActivity.this , "the pay succesed" , Toast.LENGTH_SHORT).show();
return;
}
if (iab == null) return;

Log.i("bill" , "concted to myket");

try{
iab.queryInventoryAsync(true, null, null, new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv) {
if (iab == null) return;

if (result.isFailure()) {
Log.i("bill" , "Failed to query inventory");
return;
}

Purchase premiumPurchase = inv.getPurchase(SKU_PREMIUM);
Log.d("bill", "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));


Log.i("bill" , "boll buy is : " + mIsPremium);


}
});
}catch (IabHelper.IabAsyncInProgressException e){
Log.i("bill", "Error querying inventory. Another async operation in progress.");
}
}
});

one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
iab.launchPurchaseFlow(MainActivity.this, SKU_PREMIUM, 11, new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {
Log.d("bill", "Purchase finished: " + result + ", purchase: " + info);
if (iab == null) return;

if (result.isFailure()) {
Log.i("bill","Error purchasing: " + result);
return;
}
Log.i("bill", "Purchase successful.");


//vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
editbuy.putBoolean("appbuy" , true);
editbuy.apply(); //اطلاعات اینجا ذخیره بشن درسته یا نه ؟
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


}
});
} catch (IabHelper.IabAsyncInProgressException e) {
e.printStackTrace();
} catch (Exception e){


Log.i("bill" , "if myket not install on phone");


}
}
});
0 0
به نظر بله درسته. کار نمیکنه؟ (7 سال پیش)
0 0
مطالعه کنید لینک (7 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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