Android应用内非托管服务器验证
我想在我的应用程序中首次使用应用内购买。我使用一个非托管项(它是一个虚拟monney),我想在服务器端用我的公钥验证事务 为了做到这一点,我使用了。我设置了一个“signatureValidator”,在“validate(stringsigneddata,stringsignature)”上调用它。这是工作,我收到签名数据和签名,我返回“假”表示“这不是一个正确的购买”。我用这个启动了我的WS(异步),如果可以,我调用“BillingService.confirmNotifications()”,否则我什么都不做 但我的问题是:如果服务器不验证事务,我不会调用“confirmNotification”,但事务仍然是验证的,客户必须付费。我如何才能等待服务器响应并取消(或只是不确认)事务它不正常 谢谢 编辑,我添加了一些代码:Android应用内非托管服务器验证,android,transactions,in-app-billing,Android,Transactions,In App Billing,我想在我的应用程序中首次使用应用内购买。我使用一个非托管项(它是一个虚拟monney),我想在服务器端用我的公钥验证事务 为了做到这一点,我使用了。我设置了一个“signatureValidator”,在“validate(stringsigneddata,stringsignature)”上调用它。这是工作,我收到签名数据和签名,我返回“假”表示“这不是一个正确的购买”。我用这个启动了我的WS(异步),如果可以,我调用“BillingService.confirmNotifications()
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 };);
}
}
好的,现在使用新的API(v3),我将我的对象更改为“托管”,当服务器告诉我密钥正确时,我会使用它。我认为您还需要添加一些服务器端代码。我不认为,服务器端非常简单:只检查签名的数据并返回true或false。