Articles of android billing

Android inapp billing – BillingService在onServiceConnected和onServiceDisconnected上有编译错误

我正在使用Dungeons应用程序示例,我正在使用该示例中提供的BillingService类。 我正在使用Java 6和@override为我工作,但我在BillingService.java中的这两个方法得到了编译错误: /** * This is called when we are connected to the MarketBillingService. * This runs in the main UI thread. */ @Override public void onServiceConnected(ComponentName name, IBinder service) { if (Consts.DEBUG) { Log.d(TAG, “Billing service connected”); } mService = IMarketBillingService.Stub.asInterface(service); runPendingRequests(); } /** * This is called when we are disconnected from […]

“在测试Google应用内结算时,从服务器RPC S-7 AEC-0检索信息时出错”

我正在尝试在应用程序结算中将Google实施到我的应用程序中。 我创建了SKU产品ID并在代码中实现了结算流程。 在我输入所有测试帐户详细信息,位置,电话号码等单击保存按钮后,我尝试测试应用程序内的billind时,它会出现错误”Error retrieving information from server RPC S-7 AEC-0″ 。 我也发布了应用程序创建的测试帐户并使用测试帐户登录到设备。 任何人都可以帮我解决这个问题。 我完全搞砸了….

InAppBilling V3 – 购买订阅项目时,“purchaseData”和“dataSignature”为空

我在使用新的InAppBilling V3购买subsciption项目时遇到问题 这是我的IABHelper的handleActivityResult方法: public boolean handleActivityResult(int requestCode, int resultCode, Intent data) { IabResult result; if (requestCode != mRequestCode) return false; checkSetupDone(“handleActivityResult”); // end of async purchase operation flagEndAsync(); if (data == null) { Log.e(TAG + “Null data in IAB activity result.”); result = new IabResult(IABHELPER_BAD_RESPONSE, “Null data in IAB result”); if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, […]

inventory.getPurchase()总是返回null,尽管已经购买了

我正在使用in-ap购买样本。 我的应用程序有2个按钮,第一个按钮默认禁用,点击第二个按钮将购买并启用第一个按钮。 购买按钮工作正确,但购买后,我检查库存,但它总是返回null,这意味着我还没有购买。 这是源代码: 建立: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buyButton = (Button) findViewById(R.id.buyButton); clickButton = (Button) findViewById(R.id.clickButton); clickButton.setEnabled(false); String base64EncodedPublicKey = “key”; mHelper = new IabHelper(this, base64EncodedPublicKey); mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) { Log.d(TAG, “In-app Billing setup failed: ” + result); } else { Log.d(TAG, “In-app […]

无法使用测试帐户进行Android应用内购买“发布商无法购买此商品”

我正在尝试在Android中测试应用内购买。 我已将私人签名的apk上传到Google Player开发者控制台。 它目前是“Alpha测试”部分的草案 。 当我尝试购买商品时,出现以下错误: The publisher cannot purchase this item. 这让我很困惑,因为我使用的是测试帐户 ,而不是用于发布此应用的帐户。 我怀疑它可能会失败,因为我手机上有开发者帐户,但这是我的个人电话,所以我不想通过电话删除帐户(特别是如果我不确定它会解决问题)。 任何人都可以确认是否必须从手机中完全删除发布商帐户以测试应用内购买? 谢谢!

确定退款的Play商店下载

Play商店现在会在购买后2小时内自动批准退款。 我有一个Android应用程序,人们可以从应用程序创建和控制VPS游戏主机。 也就是说,当你启动应用程序时,你会经历注册流程,之后你会有一个运行游戏的VPS。 注册后,如果您想对VPS进行任何更改,则只需要该应用程序。 我看到人们通过购买应用程序来滥用此function(提供30天免费VPS),通过注册流程创建他们的VPS,然后他们要求退款(如果在2小时内自动获得批准)。 从谷歌钱包我可以看到哪些订单ID被取消,但我如何将其链接回用户deviceID或我可以在应用程序中获取的其他东西? 我强迫用户在完成注册流程之前申报他们的Google用户帐户: Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[]{“com.google”}, false, null, null, null, null); // … email = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); 但是这只给了我他们的电子邮件地址,我无法将其链接回作为Google电子钱包中唯一标识符的OrderID。 如何将其帐户/电子邮件/设备ID与订单ID(或Google电子钱包中提供的其他信息)相关联? 请注意:这不适用于订单ID随时可用的应用内购买。 这是购买应用程序 。 谢谢! 修改:Google Play服务授权和用户帐户管理无法让您一直到订单ID: http : //developer.android.com/google/auth/http-auth.html以下是有关应用内结算的文档(毫不奇怪)不提供任何获取应用程序采购订单ID信息的方法: http : //developer.android.com/google/play/billing/billing_reference.html许可不提供订单ID: http:// developer .android.com /谷歌/播放/许可/ overview.html 有类似问题但未得到答复的人: http : //pcandsys.com/20378/verify-purchase-in-google-play-by-orderid / b3

使一个IAP对不同的应用程序有效

到目前为止,我通过应用内购买在Play商店中发布我的应用以停用广告。 我正在重新设计整个应用程序,我想将它分成两个应用程序:一个用于移动设备(如原始设备)和一个用于Android TV设备,因此我考虑将这两个版本作为两个新应用程序发布并转换为实际的应用程序成像购买经理。 我希望已付费的用户移除移动版中的广告,以便在电视广告中删除广告。 有一些方法可以检查应用程序是否未从Play商店安装和/或是否已被篡改(例如,使用apktools)。 也可以将付费应用创建为其他应用的“关键”。 我在想创建三个应用程序: PM:购买经理,将取代实际的应用程序 MB:我的应用程序的移动版本 电视:我的应用程序的电视版 所有三个应用程序都将使用相同的密钥进行签名,并将包括篡改检测。 PM将有一个公开的Activity ,MB或电视可以使用它来检查用户是否购买了“移除广告”function。 但我有两个问题: 这种设计是安全的还是可以被开发利用? 是否有更优雅的方式(除了上传多个APK )这样做? 编辑1:我分割我的应用程序有两个主要原因: 我的应用程序目前支持API级别9,通过添加leanback库我应该将最小SDK增加到17级 我不想要一个大的apk同时具有电视和移动版本的图像和布局

在静态代码中的应用购买错误

我正在使用当前代码购买来调用购买意图 Bundle buyIntentBundle = mService.getBuyIntent(3, pContext.getPackageName(), “android.test.canceled”, “inapp”, “bGoa+V7g/yqDXv”); Set allKeys = buyIntentBundle.keySet(); Object responseCode= buyIntentBundle.get(“RESPONSE_CODE”); Object intent= buyIntentBundle.get(“BUY_INTENT”); Log.i(TAG,”buyIntentBundle”+buyIntentBundle.keySet()+”responseCode”+responseCode+”intent”+intent); PendingIntent pendingIntent = buyIntentBundle.getParcelable(“BUY_INTENT”); if (pendingIntent != null) { pContext.startIntentSenderForResult(pendingIntent.getIntentSender(), 2013, new Intent(), Integer.valueOf(0), Integer.valueOf(0),Integer.valueOf(0)); } 现在onActivityResult我正在检查 if (requestCode == 2013) { Log.i(TAG, “onactivity result called inside request code”); int responseCode = intent.getIntExtra(“RESPONSE_CODE”, 0); String […]

每种付款方式的Android“付款方式已被拒绝”

我正在尝试使用Android实现应用内结算,但我遇到了一个奇怪的错误,我找不到任何有类似问题的在线人员。 我做了以下事情: 上传APK与开发者控制台的计费权限作为alpha版本。 添加了Google小组进行测试,我的个人Gmail帐户是会员。 已经选择加入URL并成为测试人员。 添加了我的个人Gmail帐户作为启用测试的帐户(在设置>帐户详细信息中)。 创建非消耗品并将其设置为“活动”。 等了24个小时。 在我的手机上放置一个已签名的版本。 当我按下“购买”按钮时,它会打开商店对话框,其中显示“这是一个测试订单,您将不会被收费”。 到目前为止一切似乎都很好,但每种付款方式都说“此付款方式已被拒绝。” 所以我无法继续 这包括Google Play余额,美国运通卡,Visa和PayPal帐户。 我尝试了以下,但没有一个工作: 使用不同的Google帐户进行测试付款。 从开发人员控制台设置中的测试帐户列表中删除了我的帐户,尝试使用“真实”交易。 试过一个不同的设备。 试图创造一个不同的产品。 什么可能是错的?

IabHelper Android bug(NullPointerException)launchPurchaseFlow?

我正在使用Google提供的应用内结算的最新版本文件。 今天我下载应用程序时手机出现错误(我试图重复这些步骤,但错误不再出现)。 让我们说在我的MainActivity中,我有一个按钮,用户可以购买一些应用内商品。 我的活动调用这个构造函数: public void launchPurchaseFlow(Activity act, String sku, int requestCode, OnIabPurchaseFinishedListener listener) { launchPurchaseFlow(act, sku, requestCode, listener, “”); } 通过这种方式: mHelper.launchPurchaseFlow(MainActivity.this, SKU_UNLOCKED, RC_REQUEST, mPurchaseFinishedListener, “”); 今天我收到了这个NullPointerException错误: java.lang.NullPointerException at xxx.xxx.xxxxx.util.IabHelper.launchPurchaseFlow(IabHelper:386) at xxx.xxx.xxxxx.util.IabHelper.launchPurchaseFlow(IabHelper:338) at xxx.xxx.xxxxx.MainActivity$6.onClick(MainActivity:422) MainActivity的第422行是mHelper.launch …… IabHelper的第338行是构造函数。 然后在launchePurchaseFlow里面: 386行: Bundle buyIntentBundle = mService.getBuyIntent(3, mContext.getPackageName(), sku, itemType, extraData); 这是try-catch块的内部: try { logDebug(“Constructing buy intent for […]