1

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

编辑

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

@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);
    }
}

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

4

2 回答 2

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
    }
}
于 2012-05-17T03:22:07.830 回答
0

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

于 2011-08-20T20:51:25.573 回答