我想第一次在应用程序中购买应用程序。我使用非托管项目(它是虚拟的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 };);
}
}