Articles of in app billing

如何修复 – “此版本的应用程序未配置市场结算”?

当我尝试进行应用内购买时,我不断收到此错误消息。 我已经上传了此应用的先前版本,我可以成功进行应用内购买! 我看过清单文件,它是相同的(除了版本代码) – 但我不能摆脱这个错误:( 是否有描述如何处理此问题的文档? 我已经尝试了本论坛中建议的所有补救措施,包括: – 确保我构建一个未签名的apk并使用我的发布密钥明确签名(是的 – 我已经检查以确保密钥/密码是准确的) – 确保正确的权限已启用(自上次成功构建以来尚未更改此权限 我错过了一些微不足道的东西 – 但对于我的生活,我无法想象什么! 请帮忙! 这是我的清单文件如下:

应用内结算,inventory.getPurchase在不同的设备上为空,而不是付款

在我的应用程序用户可以购买广告删除,我保留这个项目(不消费)。 所以我在我的主要活动中有片段,检查用户是否购买了物品。 public class BillingInventoryFragment extends Fragment { // Helper billing object private IabHelper mHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); initialiseBilling(); } private void initialiseBilling() { if (mHelper != null) { return; } // Create the helper, passing it our context and the public key to verify signatures with mHelper = new […]

每月每次续订都会更新Android应用内订阅购买日期吗?

我正在实施一个可以购买应用内订阅的应用。 订阅每月续订。 当用户购买订阅时,他们可以免费试用30天。 我知道我可以从返回的JSON访问purchaseDate值,但是我有几个问题: 当一个人的订阅续订时,purchaseTime / purchaseDate是否会更新到续订的日期/时间? 或者它始终是原始购买日期? 我试图找出在应用程序中本地缓存它的最佳方法,以便在更新时间每个月只使用一次getPurchases检查,是否有任何好的示例或我可以遵循的最佳实践? 请不要通过发布文档链接来回复。 我知道在哪里find它并已经读过:)

取消或退还Android中消费的应用内购买

我有一个应用程序内托管项目(非订阅),我将其记录在我的服务器上后(在使用购买状态API进行validation后)使用它。 我了解,应用内购买的退款/取消只能通过Merchant帐户控制台完成。 Android应用是否会收到有关已消费商品的取消/退款的通知? 使用后, queryInventoryAsync() API不会返回任何项目。 应用是否需要定期继续调用此API以了解取消/退款? 我测试了购买状态API(在服务器上)在取消后返回信息。 INFO: { “consumptionState” : 1, “developerPayload” : “payload”, “kind” : “androidpublisher#inappPurchase”, “purchaseState” : 1, “purchaseTime” : “1392878938499” } 在我使用它之后,我认为订单信息已在Google Play服务器上清除。 如果是这样,我不能依赖购买状态API来检测取消。 旁注:但是我注意到通过购买状态API返回的consumptionState不正确。 我已经使用它了,queryInventoryAsync()不再在设备上返回此项。 一段时间后,purchaseState从“0”变为“1”(取消),但consumptionState仍为1 – 尚未消耗。 我希望它能在真正的购买中正常工作(我仍处于测试模式) 在文档中,只有v2 API有一些关于取消/退款的信息(IN_APP_NOTIFY intent)。 V3 InApp billing API不讨论处理退款/取消。 TrivialDrive示例也没有任何示例。 我查看了这些问题但还不清楚。 Android应用内结算:订单取消后,购买状态保持“已购买” Android应用内结算:订单取消后,购买状态保持“已购买”状态 在v3中处理应用内结算退款处理应用内结算退款

InappBilling错误 – validation是必需的。 你需要登录你的谷歌帐户

我正在尝试制作一个不适用的演示。 我按照本教程学习这个。 Lemme告诉我执行此任务所遵循的步骤 我使用了下面提到的代码 package com.ohn.inappbilling; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.View; import android.widget.Button; import com.hello.inappbilling.util.IabHelper; import com.hello.inappbilling.util.IabResult; import com.hello.inappbilling.util.Inventory; import com.hello.inappbilling.util.Purchase; import com.ohn.inappbilling.R; public class MainActivity extends ActionBarActivity { private static final String TAG = “com.hello.inappbilling”; static final String ITEM_SKU = “com.buttonclick”; IabHelper mHelper; private Button clickButton; private Button buyButton; […]

Android更新了订阅orderID

inventory.getPurchase给出的’recurrence orderID’没有“..X”作为后缀。但根据Google的文档,recurrence orderID应该有’..X’作为后缀。我做错了什么?可以如果我们真的得到谷歌文档中提到的重复订单ID,请告诉我吗?(我已经添加了每月订阅)。 谢谢,

为什么在IMarketBillingService之上提供其他服务?

Google的market_billing示例就像其他人一样,通过本地服务包装器BillingService连接到远程服务BillingService 。 我知道服务具有在后台执行操作的优势,但远程IMarketBillingService不够用吗? 在洋葱中加入另一层有什么好处? 如果我尝试直接从我的主要活动,在UI线程中连接到远程IMarketBillingService ,我将失去什么? 如果不建议直接在UI线程中连接到远程IMarketBillingService , BillingService可以用主活动中的另一个线程替换本地BillingService ?

Android应用内购买在付款后崩溃

我已经在我的应用程序中实现了应用程序购买我已经使用“TrivialDrive”示例进行应用内结算的第3版,我已经使用静态响应测试了应用程序,所有工作都按预期工作。 但是当我从市场上下载应用程序时,应用程序在成功购买时崩溃, 我的代码是成功购买的 IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { public void onIabPurchaseFinished(IabResult result, Purchase purchase) { Log.d(TAG, “Purchase finished: ” + result + “, purchase: ” + purchase); if (result.isFailure()) { complain(“Error purchasing: ” + result); } if (purchase != null) { if (purchase.getSku().equals(Constants.IN_APP_PURCHASE_PRODUCT_ID)) { // bought the premium upgrade! String message = getResources().getString(R.string.app_purchase_successful_msg); mIsPremium […]

Android应用内结算v3未返回正确的本地化价格(getSkuDetails)

我正在尝试使用不同的本地价格测试Android In-app billing v3 API中的getSkuDetails方法。 我使用了Google提供的示例应用程序(TrivialDrive),并对其进行了修改,以显示Google为响应getSkuDetails而返回的价格: SkuDetails gasDetails = inventory.getSkuDetails(SKU_GAS); if (gasDetails != null){ alert(“Gas Price is ” + gasDetails.getPrice()); } 我已经在应用中安装了一个为墨西哥设置了Google电子钱包位置的帐户。 当应用程序运行时,警报错误地显示$ 1.00的燃气价格,但是当我尝试购买更多燃气时,它显示购买的正确价格为$ 12.72。 为什么getSkuDetails没有返回正确的MX $ 12.72而不是$ 1.00的本地化价格? 很高兴提供更多代码段,但以上是我添加到Google提供的示例应用中的所有内容。

在Google Play应用内结算中消费已取消购买

我正在开发一个应用程序,该应用程序利用Google Play应用内结算V3销售有效期为一段时间的商品。 用户进行购买后,我会将购买数据发送到我们的服务器并立即使用,如果成功的话。 然后,服务器授予对该特定用户的额外服务的访问权限,直到该期间结束。 注意:我没有使用应用内订阅。 我正在测试沙盘模式下测试用户的购买情况,不会付款。 他们中的大多数是成功的,这种流程很好。 但是,有时,我的购买会立即被Google取消。 在我的Google Checkout帐户的订单历史记录中,我看到以下行: “为了您的保护,Google取消了此订单。该交易被视为欺诈。” 即使发生这种情况,我也会看到我在购买数据中收到”purchaseState”: 0表示成功。 此外,尝试使用此产品也会导致成功(调用IInAppBillingService.consumePurchase(version, package, token)返回0)。 稍后查询我的库存表明我没有购买(因此没有退款/取消),我可以再次自由购买相同的商品。 这与正常的,未解除状态的行为相同。 Google是否经常在测试沙箱之外以相同的方式取消订单? 由于开发商无法控制的原因,成功购买和消费的物品是否仍可取消(即退款)? 是否可以了解已经消费的产品的取消?