2016-03-02 78 views
1

我试图验证产品是否从商店购买。在Android的应用程序结算中显示错误:1003:购买签名验证失败

对于我用下面的代码:

mHelper.queryInventoryAsync(mGotInventoryListener); 

而且回调是如下所述:

IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 
     Log.d(TAG, "Query inventory finished."); 

     // Have we been disposed of in the meantime? If so, quit. 
     if (mHelper == null) return; 

     // Is it a failure? 
     **if (result.isFailure()) { // This fails in our case** 
      complain("Failed to query inventory: " + result); 
      return; 
     } 

    } 
}; 

但每次我收到同样的错误如下图所示连接屏幕的时间。

enter image description here

我有尝试以下提到的步骤,但未能获得成功。

  • “base64EncodedPublicKey”从我们的谷歌播放帐户,应用程序是在alpha测试模式下启动
  • 应用与发布密钥库签署核实
  • “base64EncodedPublicKey” - 复制到记事本,然后再复制到Java文件(阅读这个解决方案的博客中的某处),但这对我并不适用。

任何人都可以提出相同的建议。请让我知道如果我需要添加一些东西来解决这个问题?

回答

0

找到了解决办法:)

有与注册广播接收器的问题。

请重新查找以下代码startSetup正在注册以下代码片段中缺少的广播接收器的方法。

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { 
    if (!result.isSuccess()) { 
    // Oh noes, there was a problem. 
    Log.d(TAG, "Problem setting up In-app Billing: " + result); 
    } mBroadcastReceiver = new IabBroadcastReceiver(MainActivity.this); 
      IntentFilter broadcastFilter = new IntentFilter(IabBroadcastReceiver.ACTION); 
      registerReceiver(mBroadcastReceiver, broadcastFilter); 
    // Hooray, IAB is fully set up! }}); 
+1

“〜注册广播接收机**”的问题是什么意思?这是什么问题。 –