我正在开发支持应用内购买的Android应用程序。
我将已签名的APK上传到播放控制台作为草稿(不向公众发布)并创建了一些项目。
我成功购买了一件商品,并在核实收据后确实已经消费了该商品。
String purchaseToken = (new JSONObject(purchaseData)).getString("purchaseToken");
int result = mService.consumePurchase(3, getPackageName(), purchaseToken);
消费结果为0.
但是,当我再次购买消耗品时,它会响应7(已经拥有)
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), productId, "inapp", payLoad);
if (buyIntentBundle.getInt("RESPONSE_CODE") == 0){
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
startIntentSenderForResult(...Skiped);
} else {
Log.e(LOG_TAG, "Response = " + buyIntentBundle.getInt("RESPONSE_CODE"));
// The logcat shows 7(Already owned)
}
即使我在Google电子钱包中取消订单,或者将Consume()中的purchaseToken更改为“inapp:com.packageName:android.test.purchased”,我也无法再购买该商品了(所有其他令牌值都会返回错误代码5)
我的消费功能有什么问题吗? 提前谢谢
更新
我发现我应该总是上传最新的APK来玩商店草稿进行测试。 getBuyIntent 现在返回成功,我可以 startIntentSenderForResult
但是,弹出对话框(由Android创建)仍然显示“已经拥有”
再次更新。
这个问题只存在于我的第一个开发设备中.... !!! 它在其他测试设备上运行良好。
答案 0 :(得分:0)
Google Play开发人员支持最近做了一些更改,现在应用必须发布,而不是草稿模式。 Alpha或Beta很好,但在Alpha草案或Beta草案模式下无法测试购买。