
نوشته شده توسط
amin_nez
توجه (حل شد) :
بعد از کلی کلنجار راهی پیدا کردم که لاکی نتونه پرداخت رو دور بزنه.نیازی به وب سرویس نیست و از طریق خود برنامه کافه بازار خرید رو چک میکنیم.
فقط کافیه که توی OnIabPurchaseFinishedListener و چک کردن موفقیت آمیز خرید این مرحله رو هم چک کنیم.درواقع کد درون برنامه ای خودتون سرجاش باشه فقط قبل از فعال سازی نرم افزار با این کد خرید رو چک کنید.دوستان لطفا تست کنند و نتیجه رو اعلام کنید.
Inventory inv=null;
try {
inv=mHelper.queryInventory(true, null);
if (inv.hasPurchase(SKU_PREMIUM)) {
Log.d(TAG, "خريد درست است");
// حالا برنامه را فعال کنيد
} else {
Log.d(TAG, "خريد نادرست است");
}
} catch (IabException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
آره جواب داد. یعنی در برنامه ای که توسط لاکی پچ شده بود جواب داد. احتمالا در برنامه ای که پچ نشده دیگه حتما جواب بده. باز دوستان تست کنن
فقط جهت اطمینان باید در دستور if موارد بیشتری چک بشه، مثل Payload و INAPP_DATA_SIGNATURE و ...
یعنی قبل از دستور if باید یه همچین چیزی بنویسیم:
Purchase pu = inv.getPurchase(SKU_PREMIUM);
if (pu == null)
mypayload = "";
else
mypayload = pu.getDeveloperPayload();
بعد در دستور if چک کنیم که مقدار payload هم درست باشه.
یه نکته مهم دیگه؛ قبل از ورود به صفحه خریدتون، حتما چک کنید که کاربر در بازار لاگین کرده باشه -هر چند اگه چک نکنید، خود بازار چک می کنه- چون اگه این مساله چک نشه و کاربر در بازار لاگین نکرده باشه این کدی که دوستمون گذاشتن خطا میده
کدش رو هم به نظرم در یکی از پستها دوستان گذاشته بودن