簡體   English   中英

Android應用程式內購買失敗

[英]Android in-app purchase failed

我正在嘗試在我的應用程序中實現應用內結算系統,但是由於出現以下錯誤,我無法查詢廣告資源來檢索訂閱:

IabResult: Error refreshing inventory (querying owned items). (response: -1003:Purchase signature verification failed)

我做了什么:

  1. 已簽名的APK已在封閉的ALPHA中上傳到Google Play的商店中,並已發布
  2. 我在“測試人員”部分添加了測試人員帳戶(gmail)(在測試設備上使用了相同的gmail帳戶)
  3. 我已經發送了一封電子郵件,其中包含指向測試人員的電子郵件的鏈接,以“成為測試人員”申請該應用程序(如果我搜索該應用程序,我還會在Play商店中看到該應用程序)
  4. 我已經創建了訂閱,所有訂閱都已發布
  5. 該應用程序已由Google審核,並且一切正常(狀態:已發布)
  6. 應用程序版本名稱“ 1.1.5-alpha-15”,版本代碼“ 15”和程序包名稱與Google Play商店中的相同

代碼(活動中):

private IabHelper mIabHelper;    

// Init setup listener
private IabHelper.OnIabSetupFinishedListener mIabSetupListener = new IabHelper.OnIabSetupFinishedListener() {
   @Override
   public void onIabSetupFinished(IabResult result) {
      if (result.isSuccess()) {
         // Load success, now query for inventory
         List<String> skus = new ArrayList();
         skus.add("packagename.org.dev.subscription.monthly");
         skus.add("packagename.org.dev.subscription.yearly");

         mIabHelper.queryInventoryAsync(true, skus, mQueryInventoryFinishedListener);
      }
   }
};

// Listener to load the subscriptions
private IabHelper.QueryInventoryFinishedListener mQueryInventoryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
   @Override
   public void onQueryInventoryFinished(IabResult result, Inventory inv) {
      if (result.isFailure()) {
         Log.e(TAG, "Failure, check error!");
         return;
      }
   }
};

@Override
protected void onCreate(Bundle savedState) {
   super.onCreate(savedState);

   mIabHelper = new IabHelper(this, PUBLIC_KEY_BASE_64);
   mIabHelper.enableDebugLogging(true, "BILLING");
   mIabHelper.startSetup(mIabSetupListener);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   if (mIabHelper == null || !mIabHelper.handleActivityResult(requestCode, resultCode, data))
      super.onActivityResult(requestCode, resultCode, data);
}

@Override
protected void onDestroy() {
    super.onDestroy();

    if (mIabHelper != null) {
        mIabHelper.dispose();
    }
}

我在設備上復制了相同的APK(簽名)並安裝了它,但出現上述錯誤。 我還以調試模式運行該應用程序,出現同樣的錯誤。 我不知道該怎么辦。

我在這里(stackoverflow)看到Google API正在緩存某些數據。 我應該恢復出廠設置嗎? 或者如何清除緩存的數據?

如果您的應用程序的基數為64的公共密鑰不正確,則簽名驗證失敗。 確保您使用的是正確的“ PUBLIC_KEY_BASE_64”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM