首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序中的购买是行不通的。

应用程序中的购买是行不通的。
EN

Stack Overflow用户
提问于 2013-12-06 11:43:54
回答 2查看 414关注 0票数 1

我目前正在尝试配置我的应用程序在应用程序购买,但它只是不能工作。每次我尝试启动购买流程时,它都会说“这个版本的应用程序没有配置为通过Google计费”。我很肯定,我经过了所有必要的步骤,使它发挥作用。我还测试了SKU "android.test.purchased",它工作得很好。

  • base64EncodedPublicKey是def.正确并与开发人员控制台中的代码完全相同
  • 我没有忘记我的舱单上的<uses-permission android:name="com.android.vending.BILLING" />
  • 我已将我在测试设备上使用的google帐户作为开发人员控制台中的测试帐户使用。
  • 在开发人员控制台中,我正在我的设备an上使用完全相同的APK。我通过adb -d install把它安装在我的设备上

你知道我可能做错了什么吗?

这是我的代码:(onCreate)

代码语言:javascript
复制
base64EncodedPublicKey
        iabHelper = new IabHelper(this, base64EncodedPublicKey);
        iabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
                @Override
                public void onIabSetupFinished(IabResult result) {
                      if (!result.isSuccess()) {
                         // Oh noes, there was a problem.
                         Log.d(PURCHASE_TAG, "Problem setting up In-app Billing: " + result);
                      } else if (result.isSuccess()){
                         // Hooray, IAB is fully set up!
                        Log.d(PURCHASE_TAG, "Setup completed: " + result);
                        iabHelper.queryInventoryAsync(true, null, queryFinishedListener);
                      }
                   }

                });

(onActivityResult)

代码语言:javascript
复制
if (iabHelper.handleActivityResult(requestCode, resultCode, data)) {
            Log.d("TAG", "onActivityResult handled by IABUtil.");
            return;
        }

(按一下按钮启动毛刺流)

代码语言:javascript
复制
if(isPremium){
                saveImageToGallery(imageState.image);
            } else if (iabHelper != null) {
                iabHelper.flagEndAsync();
                purchaseItem(SKU_TEST);

(purchaseItem())

代码语言:javascript
复制
private void purchaseItem(String sku) {
        iabHelper.launchPurchaseFlow(this, sku, 10001,   
                   purchaseFinishedListener);
    }

(听众)

代码语言:javascript
复制
IabHelper.QueryInventoryFinishedListener 
       queryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
       public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
       {
          if (result.isFailure()) {
             // handle error
             return;
           } else if (result.isSuccess()){
               Log.d("$$$$$$$$$$$$$$$", "" + result);
           }
       }
    };

    IabHelper.OnIabPurchaseFinishedListener purchaseFinishedListener 
       = new IabHelper.OnIabPurchaseFinishedListener() {
       public void onIabPurchaseFinished(IabResult result, Purchase purchase) 
       {
          if (result.isFailure()) {
             Log.d("ERROR_TAG", "Error purchasing: " + result);
             return;
          }      
          else if (purchase.getSku().equals(SKU_TEST)) {
             // give user access to premium content and update the UI
              isPremium = purchase.getSku().equals(SKU_TEST);        
          }
       }

    };
EN

回答 2

Stack Overflow用户

发布于 2013-12-06 11:56:48

我想你应该去你签的钥匙店看看。您必须使用相同的密钥存储已上载到谷歌播放和测试的apk。

票数 0
EN

Stack Overflow用户

发布于 2018-04-15 11:22:30

我也有同样的问题,我用以下方法解决了这个问题:

  1. 转到商店开发人员控制台
    1. 设置>管理测试员,然后添加另一封测试邮件,而不是发布应用程序时使用的邮件。
    2. 同样,在开发者控制台下,帐户详细信息(向下滚动)>许可证测试,并添加用户的电子邮件谁将测试你的应用程序。
    3. 在你的设备上,用你允许的测试邮件3.登录游戏商店。
    4. 启动你的应用程序,并在应用程序购买。应该有固定的。

更多testing.html

摘要:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20423046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档