我正在尝试在我的应用中添加诺基亚IAP,并遵循Nokia In-App Payment Guide中所述的确切代码。
我已经测试了测试ID,我可以获得产品详细信息,也可以购买该项目。但是对于具有已发布(修订版7)发布状态的实际产品,虽然我可以使用getBuyIntent()
方法购买,但我无法获得产品详细信息。我在 AsyncTask getProductDetails()
方法中使用方法doInBackground()
。我通过以下方式从返回的包中得到响应:
ArrayList<String> responseList = result.getStringArrayList("DETAILS_LIST");
responseList
大小为1,它包含7位数的产品ID,如下所示:
{"isvalid":false,"productId":"*******"}
但它应该包含价格的产品详细信息,对吗?
此外,当我尝试使用getPurchases()
方法进行恢复时,它会返回错误代码6.如果我尝试:
ArrayList<String> items = mBundle.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
items
对象始终为null
。
任何人都可以帮助解决错误以及如何解决这些问题吗?我正在使用诺基亚X模拟器,我的产品ID是数字。谢谢!
答案 0 :(得分:1)
您使用的是setProductMappings方法吗?如果没有,您是否为getPurchases提供了productBundle?其中一个需要能够使用getPurchases。我不确定为什么你有getProductDetails的问题,但让我们首先解决getPurchases问题。
答案 1 :(得分:1)
我从内部专家那里获得的另一个原因可能是,如果您使用产品ID别名,那么您必须使用它。
因此,要检查来自公共门户网站的项目,看看您是否设置了产品ID别名,确实如果已经设置了它,那么就会看到您正在使用它。
答案 2 :(得分:1)
对于getProductDetails()
方法:
对于getPurchases()
方法:
getProductDetails()
方法,并且没有为getPurchases()
方法指定任何内容。我没有使用 AsyncTask ,同时还原总是返回错误代码6.现在它可以使用 AsyncTask 。 N.B。 getBuyIntent()
方法不需要 AsyncTask ,没有它就可以正常工作。