Google inApp onPurchaseStatechange

时间:2012-12-18 07:36:34

标签: android in-app-purchase in-app-billing

我正在我的应用中实施Google应用内购买。我从Google端下载了代码并在我的应用中运行它。我第一次收到“签名验证失败”的错误我通过在发布版本中构建我的应用程序,签名并在谷歌Android市场上将其作为未发布的应用程序发布来解决它。现在在那个圣人购买应用程序并按下接受按钮并购买它时,我收到了回复,但数据未存储在onPurchseState中。再次应用程序给出下载此应用程序,你必须购买它。任何帮助将不胜感激。这是详细代码

我正在从onClick方法调用requestPurchase(String productId,String payload)。

@Override
public void onClick(View view) {
    if(view == requestPurchaseButton) {
        mBillingService.requestPurchase("android.test.purchased", "10");
    }
}

调用onRequestPurchaseResponse(Request,ResponseCode)的回调方法。这里的responseCode给出值RESULT_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");

    }
永远不会打电话给

1 个答案:

答案 0 :(得分:1)

onPurchaseStateChange()是异步调用的,可能需要一些时间(通常在几秒钟内)。但是,如果您的设备位于防火墙后面,响应可能会丢失或延迟,请确保没有任何内容阻止传入连接(检查Google Talk是否正常工作)。还要确保您已在清单中注册了相应的BroadcastReceiver