Android 谷歌inApp onPurchaseStatechange
我正在我的应用程序中实现谷歌应用程序内购买。我从Google端下载了代码,并在我的应用程序中运行。当我第一次遇到“签名验证失败”的错误时,我通过在发布版本中构建我的应用程序来解决它,对它进行签名,并将其作为未发布的应用程序发布到谷歌安卓市场。现在,当我购买应用程序并按下“接受”按钮并购买它时,我收到了一个响应,但数据没有存储在OnPurchEstate中。同样,应用程序给出了下载此应用程序时必须购买的信息。任何帮助都将不胜感激。这是详细的代码 我从onClick方法调用requestPurchase(stringproductid,stringpayload)Android 谷歌inApp onPurchaseStatechange,android,in-app-purchase,in-app-billing,Android,In App Purchase,In App Billing,我正在我的应用程序中实现谷歌应用程序内购买。我从Google端下载了代码,并在我的应用程序中运行。当我第一次遇到“签名验证失败”的错误时,我通过在发布版本中构建我的应用程序来解决它,对它进行签名,并将其作为未发布的应用程序发布到谷歌安卓市场。现在,当我购买应用程序并按下“接受”按钮并购买它时,我收到了一个响应,但数据没有存储在OnPurchEstate中。同样,应用程序给出了下载此应用程序时必须购买的信息。任何帮助都将不胜感激。这是详细的代码 我从onClick方法调用requestPurcha
@Override
public void onClick(View view) {
if(view == requestPurchaseButton) {
mBillingService.requestPurchase("android.test.purchased", "10");
}
}
调用了onRequestPurchaseResponse(Request,ResponseCode)回调方法。此处的responseCode给出值结果\u OK。因此,请求已发送到服务器
@Override
public void onRequestPurchaseResponse(RequestPurchase request,
ResponseCode responseCode)
{
if(responseCode == ResponseCode.RESULT_OK) {
Log.d("My APP", "onRequestPurchaseResponse.ResponeCode.RESULT_OK");
} else if(responseCode == ResponseCode.RESULT_USER_CANCELED) {
} else {
}
}
但是回调方法
@Override
public void onPurchaseStateChange(PurchaseState purchaseState,
String itemId, int quantity, long purchaseTime,
String developerPayload) {
Log.d("PucrchedState", "onPurchaseStateChanged");
}
从不调用。onPurchaseStateChange()是异步调用的,可能需要一些时间(通常在几秒钟内)。但是,如果您的设备位于防火墙后面,则响应可能会丢失或延迟,请确保没有任何东西阻止传入的连接(检查Google Talk是否工作)。还要确保您已在清单中注册了相应的
BroadcastReceiver
不清楚问题是什么,请详细说明实际问题。您可能还想试试最近发布的应用内计费v3,它更容易集成和理解。@Nikolay Elenkov我已经更新了我的问题