Android In app非托管服务器验证

时间:2012-12-01 12:22:07

标签: android transactions in-app-billing

我想第一次在应用程序中购买应用程序。我使用非托管项目(它是虚拟的monney),我想在服务器端用我的公钥验证交易。

为此,我使用了AndroidBillingLibrary。我设置了一个“signatureValidator”来调用“validate(String signedData,String signature)”。这是有效的,我收到了signedData和签名,我返回“false”来说“这不是正确的购买”。我用这个启动了我的WS(异步),如果没关系我叫“BillingService.confirmNotifications()”,否则我什么都不做。

但我的问题是:如果服务器没有验证交易,我不会调用“confirmNotification”,但交易仍然是有效的,客户必须付款。如何等待服务器响应并取消(或者只是未确认)该事务不正常?

谢谢!

编辑,我添加了一些代码:

private void requestPurchase(String purchaseId) {
    mPurchaseId = purchaseId;
    // request my purchase
    BillingController.requestPurchase(this, mPurchaseId, false, null);
}

// Receipt the answer of my purchase
@Override
public boolean validate(String signedData, String signature) {
    // when a purchased need to be checked
    mProgressDialog = ProgressDialog.show(this, null, getString(R.string.loading), true, false);
    RequestHelper.getInstance().executeRequest(getRequestCheckReceipt(signedData, signature);
    return false;
}


// Receipt the answer of my WS
@Override
public void onRequestReceived(Request request) {
    if (mProgressDialog != null) {
            mProgressDialog.dismiss();
            mProgressDialog = null;
    }
    if(request.isOk()) {
        BillingService.confirmNotifications(this, new String[] { mPurchaseId };);
    }
}

0 个答案:

没有答案