尝试订阅产品时,需要应用内计费android返回身份验证
这是我第一次在android中处理应用内计费 1) 我使用的是API v3 2) 我已经上传了我的应用程序的alpha版本,以便能够进行测试 3) 我已经创建了一个订阅产品 4) 这是我在产品中订阅的代码尝试订阅产品时,需要应用内计费android返回身份验证,android,in-app-purchase,google-play,google-play-services,in-app-billing,Android,In App Purchase,Google Play,Google Play Services,In App Billing,这是我第一次在android中处理应用内计费 1) 我使用的是API v3 2) 我已经上传了我的应用程序的alpha版本,以便能够进行测试 3) 我已经创建了一个订阅产品 4) 这是我在产品中订阅的代码 mSubscribeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try {
mSubscribeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
Bundle subscribeIntentBundle = mService.getBuyIntent(3, getPackageName(), "my_product_id", "subs", "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");
PendingIntent pendingIntent = subscribeIntentBundle.getParcelable("BUY_INTENT");
if (subscribeIntentBundle.getInt("RESPONSE_CODE") == 0) {
startIntentSenderForResult(pendingIntent.getIntentSender(), 4002, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
} else {
Toast.makeText(MainActivity.this, "Error Code: " + subscribeIntentBundle.getInt("RESPONSE_CODE"), Toast.LENGTH_SHORT).show();
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (SendIntentException e) {
e.printStackTrace();
}
}
});
5) 我得到以下错误
- 我尝试过使用不同的设备,但都有相同的错误,我也用我的Google帐户登录,可以打开Google Play Store并查看我的应用程序
- 我还试图从app manager中清除Google Play Store的数据
有人能帮忙吗?我以前也有同样的问题。转到您的google开发者控制台,确保您的应用程序已发布到任何版本(alpha、beta或prod)。然后,应用内购买将起作用:)应用内购买帐户的Android开发者测试应遵循以下键 base64EncodedPublicey //测试Base64EncodedPublicey
public static final String base64EncodedPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg" +
"KCAQEAhNe2XQ70DceAwE6uyYJGK1dIBbZcPdlER/9EEzylr6RDU6tnGj0Tk7kceN03GKvRf/ucT+ERLL3O" +
"aHR22PXRXLZ17NZ81x6oS2vGmLyXBnjrU/I+asl8cNuLGySaoCdXxPAV+A9g6OG13dk+KY9i0O1roGpFH" +
"fsAFyKCgSqR0PMJZ1bS+wFFBYf3M4IxgBcxuuZKDmR+MztCgm5N4zc6w2CwFZn3mXeDoTg15mWDU3sZO" +
"WeRwFeynhV+FCYdDp8DpAkLk1b5IiXYFQ53wxCh/GxiKqBB6uQMmAixFjAcZV1QWfcBABae9vxiV5" +
"VAEJvOOnhPxnaT9HYadW0pQ/UbJwIDAQAB";
和那个样的钥匙
购买的物品
//测试项目(已购买)
public static final String ITEM_PURCHASED = "android.test.purchased";
并开始将此代码onCreate()放入
应用程序内购买
IabHelper helper = new IabHelper(this, Constants.base64EncodedPublicKey);
helper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
Log.d("#InAppStartSetup#", "In-app Billing setup failed: " + result);
} else {
Log.d("#InAppStartSetup#", "In-app Billing setup successful.");
}
}
});
终于在这里的代码手柄上赢得了时间
helper.launchPurchaseFlow(YOUR_ACTIVITY, Constants.ITEM_PURCHASED,
YOUR_REQUEST_CODE, mPurchaseFinishedListener, "");
谢谢大家…在我的例子中,
versionCode
、versionName
和applicationId
与开发者控制台上当前版本的应用程序不同步。我在build.gradle文件中更改了这些。它们不同,因为我在android studio中从eclipse重写了应用程序。在这之后,应用程序内计费就起作用了。developer.android.com上的文档似乎过时了
如果你想在不发布的情况下测试你的应用内计费,你必须创建一个谷歌组并添加一个测试人员的alpha列表。请看这里:
更新
截至2015年年中,这已不再必要。您在google play开发者控制台中有几个新的测试选项。在可怕的消息中遇到同样的问题: 需要进行身份验证。您需要登录到您的Google帐户 我有两个问题:
- 将草稿应用程序上载为alpha或beta版本,并附带一些版本代码
- 使用具有活动订阅的帐户登录设备李>
- 使用与alpha/beta版本相同的版本在此设备上安装已签名的应用程序
- 在Android Studio中,使用发布密钥对应用程序进行签名(这将创建一个签名的app-release.apk文件)
- 然后确保使用adb安装路径/to/your/app-release.apk(不是通过Alpha/Beta版)将其安装到物理设备上。
我现在看到的是我新创建的一款应用内产品。我怀疑,一旦应用内产品被谷歌“发布”到他们所有的服务器上,它将在几个小时内消失。问题在我发布应用时解决了,我试图在未发布的应用上测试,所以我得到了以前的错误,但当我发布应用时,我再也没有收到这个错误,但如果要测试我的应用,我现在需要什么,关于如何使用沙箱模式测试订阅模块,或者至少使用静态响应(如buy product)测试订阅模块,您是否有任何信息。@Amira请帮助我解决同样的问题。你能发布你的应用程序内购买相关的全部代码吗?bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ我必须通过哪个键?为什么投票率最高的答案在底部?这对我很有用。我的二分钱:一旦你点击“发布”你的应用程序,它将需要几个小时才能获得批准。此外,应用程序内产品需要处于活动状态(如果已禁用),这会导致相同的问题。当我的应用程序以生产、测试模式上载,但应用程序状态为草稿时,我会收到此错误,发布相同的错误是必须的?第二点对我很有用。即使我已经发布了(测试版)应用程序,我也有同样的错误。激活inapp项解决了问题。这是我的解决方案,ID不匹配。是的,第二个!就是这样。这几个新选项是什么?阿尔法和贝塔测试,有几个选项:个人电子邮件邀请、组和其他一些我认为(这是一个下拉菜单,打开它,看看里面有什么)。