Android 使用OpenIab进行Amazon InApp测试
我正在尝试为Android应用程序实现应用内购买。因此,为了支持各种应用商店(如三星、谷歌游戏、亚马逊等),我从 我已经成功地将Android 使用OpenIab进行Amazon InApp测试,android,in-app-purchase,amazon,sandbox,amazon-appstore,Android,In App Purchase,Amazon,Sandbox,Amazon Appstore,我正在尝试为Android应用程序实现应用内购买。因此,为了支持各种应用商店(如三星、谷歌游戏、亚马逊等),我从 我已经成功地将OpenIab用于谷歌游戏商店 但是,对于Amazon,我无法测试InApp的购买情况。 我想使用AmazonSDKTester测试Amazon购买的产品。为此,我创建了amazon.sdktester.json,并放置在/sdcard/amazon.sdktester.json 现在,通常,我正在执行以下步骤 String base64EncodedPublicKey
OpenIab
用于谷歌游戏商店
但是,对于Amazon
,我无法测试InApp的购买情况。
我想使用AmazonSDKTester测试Amazon购买的产品。为此,我创建了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());
}
}
});
String base64EncodedPublicKey=“xxxxxxxx”;
Map storeKeys=newhashmap();
storeKeys.put(OpenIabHelper.NAME_GOOGLE,base64EncodedPublicKey);
OpenIabHelper=新的OpenIabHelper(这是storeKeys);
helper.startSetup(新的IabHelper.OnIabSetupFinishedListener(){
@凌驾
已完成公共void ONIBS设置(IAB结果){
//TODO自动生成的方法存根
if(result.issucess()){
System.out.println(“成功安装完成”);
}
否则{
System.out.println(“设置IAB失败”+result.getMessage());
}
}
});
现在,IabSetup
失败,即,result.issucess()
返回false
但是,如果我使用,那么amazonsdk测试仪
就可以完美地启动了
因此,我的问题是,如何将Amazon SDK tester与
OpenIab
一起使用,即如何使用OpenIab
来测试Amazon InApp购买,这是因为OpenIab必须选择合适的商店来安排购买。OpenIAB仅当从Amazon商店找到应用程序附带的特殊属性时,才会将购买路由到Amazon
要通过Amazon强制OpenIAB工作,请使用以下方法:
1) 如果您使用OpenIAB.jar不想处理源代码,请使用构造函数OpenIABHelper(上下文,选项),如下所示:
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);
Options opts=新选项();
opts.storeKeys=newhashmap();
opts.availableStores=新的ArrayList();
opts.availableStores.add(新AmazonAppstore(上下文){
公共布尔值isBillingAvailable(字符串packageName){
返回true;
}
});
mHelper=新的OpenIabHelper(上下文,选项);
此代码应仅用于测试目的。确保您不会将其发送到生产部门,因为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!!!
公共类AmazonAppstore扩展了DefaultAppstore{
私有静态最终布尔值mDebugLog=false;
私有静态最终字符串标记=AmazonAppstore.class.getSimpleName();
private volatile Boolean sandboxMode=false//