我希望有人可以帮助我。我需要在通过应用内结算服务成功购买商品后通知用户。 [...删除了令人困惑的文字......]
修改
准确地说。从演示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);
}
}
我的问题是,这是将消息置于成功购买的正确位置吗?
答案 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)
只是为了确认这是完成所有购买后成功行动的正确位置。