我在使用Android的IAB进行购物时遇到问题。
我似乎能够获得buyIntent,我从这个代码开始,取自IAB documentation:
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(),
sku, "inapp", getString(R.string.iab_key));
int response = buyIntentBundle.getInt("RESPONSE_CODE");
if(response == 0) {
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(),
1001, new Intent(), 0, 0, 0);
}
然而,当意图开始时,我在应用程序上收到一条错误消息,说明"项目购买不可能(错误代码IAB-LPD)" (从意大利语中松散翻译),在onActivityResult
方法中,在做
int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
我的responseCode
为onActivityResult
,未在IAB API reference中记录,因为它会记录错误代码0,1,3,4等。
Api V2参考说错误代码2适用于网络连接断开的情况,但我的设备连接似乎正常。
我还没有找到任何对错误代码的引用" IAB-LPD"互联网上的任何地方。
我尝试将我的许可证密钥更改为无效值,并且我预计会收到一条错误消息,指出该应用未经授权进行结算"所以我认为这不是问题。许可证密钥我正在使用。
我错过了什么?
更新:我也不认为这是权限问题,因为我能够从文档中描述的相同技术获取SKU详细信息。
进一步更新:在启动意图和执行{{1}}时,我也没有在LogCat中收到任何错误。
答案 0 :(得分:2)
我假设您看到的错误消息是
Impossibile acquistare l'articolo. (Codice di errore: IAB-LPD)
该消息的意大利语翻译似乎有错误(错误代码已翻译)。
您要查找的错误消息是
The item could not be purchased. (Error code: IAB-DPTL)
this question的答案可以帮助您解决问题。
(我为此带来的不便表示道歉,我提交了一个错误修正程序,并且应该在即将发布的版本中修复。)