2014-02-11 59 views
0

我對當前的應用內結算文檔非常困惑。差異launchPurchaseFlow和pendingIntent適用於Android上的應用內結算

Here它說,發起購買此調用必須進行:

mHelper.launchPurchaseFlow(this, SKU_GAS, 10001, 
mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); 

here上面說一個的PendingIntent啓動購買這樣

Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), sku, "inapp", 
"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ"); 

PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT"); 

startIntentSenderForResult(pendingIntent.getIntentSender(), 
1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), 
Integer.valueOf(0)); 

那麼,哪一個是什麼呢?它們都是API版本3,並且這兩種方式彼此獨立工作。非常容易混淆......

回答

0

第一個使用IabHelper類,該類依次使用第二個示例中使用的方法。如果您打算使用IabHelper(由Google維護並使API更方便地調用應用程序),那麼您將使用第一個示例。如果您想要構建自己的應用內結算界面,則可以使用第二種方法。

+0

非常感謝Iain的洞察力。所以,第二個例子是第一個例子的一部分。如何消費購買,這是通過mService.consumePurchase(3,getPackageName(),purchaseToken)完成的? 我在問,因爲在導出我的.apk然後進行購買時,像這樣購買消費不起作用,所以應用內購買窗口只顯示一次,但之後再也不會顯示。 –

+0

「不行」是什麼意思?消費電話的迴應應該告訴你哪裏出了問題。 – ianhanniballake

+0

今天我再次嘗試了幾個小時,它總是適用於SKU「android.test.purchased」,但是一旦我使用我創建的產品中的實際sku並導出.apk,我總會得到RESULT_DEVELOPER_ERROR == 5作爲來自mService.consumePurchase(3,getPackageName(),purchaseToken)的響應。你有什麼想法,爲什麼? –