1

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

为此,我使用了 AndroidBillingLibrary。我设置了一个“signatureValidator”,在“validate(String signedData,String signature)”上调用。这是可行的,我收到了签名数据和签名,我返回“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 };);
    }
}
4

0 回答 0