这是成功进行应用内购买通知的正确位置吗?

时间:2011-08-20 15:32:51

标签: android in-app-purchase in-app-billing

我希望有人可以帮助我。我需要在通过应用内结算服务成功购买商品后通知用户。 [...删除了令人困惑的文字......]

修改

准确地说。从演示Google项目中,我看到他们使用onRequestPurchaseResponse来捕获RESULT_OK代码。在该方法内部,我添加了Toast并通过android.test.purchased项目启动了测试购买。我收到了市场的窗口和消息“授权购买”。完成这个过程后,我的Toast出现了。

@Override
public void onRequestPurchaseResponse(BillingService.RequestPurchase request,
                             Consts.ResponseCode responseCode) {
    if (Consts.DEBUG) {
        Log.d(TAG, request.mProductId + ": " + responseCode);
    }
    if (responseCode == Consts.ResponseCode.RESULT_OK) {
        if (Consts.DEBUG) {
            Log.i(TAG, "purchase was successfully sent to server");
        }
        showToast("purchase was successfully sent to server");//<- MY TOAST!
        logProductActivity(request.mProductId, "sending purchase request");
    } else if (responseCode == Consts.ResponseCode.RESULT_USER_CANCELED) {
        if (Consts.DEBUG) {
            Log.i(TAG, "user canceled purchase");
        }
        logProductActivity(request.mProductId, "dismissed purchase dialog");
    } else {
        if (Consts.DEBUG) {
            Log.i(TAG, "purchase failed");
        }
        logProductActivity(request.mProductId, "request purchase returned " + responseCode);
    }
}

我的问题是,这是将消息置于成功购买的正确位置吗?

2 个答案:

答案 0 :(得分:3)

可以在那里留言,但这不是购买完成的地方。正如您在评论中看到的那样,它表示购买已成功发送到服务器。这并不意味着购买实际上已经完成。这被称为在您的应用程序被带到Google Play之前,用户可以选择进行购买。用户仍然可以退出。但是,如果用户按下BUY,应用程序将重新启动并调用以下代码。

@Override
public void onPurchaseStateChange(PurchaseState purchaseState, String itemId, int quantity, long purchaseTime, String developerPayload) {

    if (purchaseState == PurchaseState.PURCHASED) {
        // PUT YOUR CONFIRMATION MESSAGE HERE
    }
}

答案 1 :(得分:0)

只是为了确认这是完成所有购买后成功行动的正确位置。