【问题标题】:Amazon InApp testing using OpenIab使用 OpenIab 进行 Amazon InApp 测试
【发布时间】:2014-01-11 18:58:48
【问题描述】:

我正在尝试为 Android 应用程序实现应用内购买。因此,为了支持各种应用商店(即三星、Google Play、亚马逊等),我正在使用来自enter link description here的 OpenIab

我已成功将OpenIab 用于 Google Play 商店。

但是,对于Amazon,我无法测试 InApp 购买。 我想使用亚马逊 SDK 测试器测试亚马逊购买。为此,我创建了amazon.sdktester.json 并放置在/sdcard/amazon.sdktester.json

现在,像往常一样,我正在执行以下步骤

String base64EncodedPublicKey = "xxxxxxxx";

Map<String, String> storeKeys = new HashMap<String, String>();
        storeKeys.put(OpenIabHelper.NAME_GOOGLE, base64EncodedPublicKey);
OpenIabHelper helper= new OpenIabHelper(this, storeKeys);
        helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

            @Override
            public void onIabSetupFinished(IabResult result) {
                // TODO Auto-generated method stub

                if (result.isSuccess()) {
                    System.out.println("Successfully Setup finished");
                }
                else {
                    System.out.println("Failed to setup IAB"+result.getMessage());
                }

            }
        });

现在,IabSetup 正在失败,即 result.isSuccess() 正在返回 false

但是,如果我使用IAP API,那么Amazon SDK tester 会完美启动。

所以,我的问题是,如何使用带有OpenIab 的 Amazon SDK 测试器,即如何使用 OpenIab 测试 Amazon InApp 购买。

【问题讨论】:

    标签: android in-app-purchase amazon sandbox amazon-appstore


    【解决方案1】:

    这是因为 OpenIAB 必须选择合适的商店来路由购买。 OpenIAB 仅在从亚马逊商店找到应用程序附带的特殊属性时才会将购买路由到亚马逊。

    要通过 Amazon 强制 OpenIAB 工作,请使用以下方法:

    1) 如果你使用 OpenIAB.jar 不想处理源代码,请使用如下所示的构造函数 OpenIABHelper(context, Options):

        Options opts = new Options();
        opts.storeKeys = new HashMap<String, String>();
        opts.availableStores = new ArrayList<Appstore>();
        opts.availableStores.add(new AmazonAppstore(context) {
            public boolean isBillingAvailable(String packageName) {
                return true;
            }
        });
        mHelper = new OpenIabHelper(context, opts);
    

    此代码应仅用于测试目的。确保不要将其发送到生产环境,因为无论从何处安装应用程序,OpenIAB 都会尝试仅将购买路由到亚马逊

    2) 如果您喜欢使用 OpenIAB 资源,而不仅仅是在 AmazonStore 中打开几个标志:

    public class AmazonAppstore extends DefaultAppstore {
        private static final boolean mDebugLog = false;
        private static final String TAG = AmazonAppstore.class.getSimpleName();
    
        private volatile Boolean sandboxMode = false; // <------- switch to false!!!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多