我想第一次在我的应用程序中使用应用内购买。我使用一个非托管项目(它是一个虚拟货币),我想在服务器端使用我的公钥验证交易。
为此,我使用了 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 };);
}
}