Android结算 - 它表示不推荐使用checkBillingSupported()。我应该用什么呢?

时间:2012-07-24 22:53:49

标签: android android-billing

Android文档说这个方法已被弃用,但我没有看到我可以使用的其他方法。

基本上,我正在尝试这样做:

if (mBillingService.requestPurchase(issueProductIdPsych, Consts.ITEM_TYPE_INAPP ,  null)) 
{
   // Check what happened? Did the person finish the purchase? did they cance?
   if(mBillingService.checkBillingSupported(Consts.ITEM_TYPE_INAPP))
   {

   }                              

    //BillingHelper.requestPurchase(mContext, "android.test.purchased");
    // android.test.purchased or android.test.canceled or android.test.refunded
}

完成检查购买请求结束的正确方法是什么?

我有一个这样的购买按钮:

        buy.setOnClickListener(new Button.OnClickListener() 
        {  
           public void onClick(View v) 
           {

但我不清楚接下来需要做些什么。

谢谢!

1 个答案:

答案 0 :(得分:1)

希望用您需要的代码替换代码更简单,但显然谷歌描述了另一种选择。您必须实现MarketBillingService接口。所以这只是设计上的一点点调整。幸运的是,他们向您展示了如何实现这一目标。

http://developer.android.com/guide/google/play/billing/billing_integrate.html

转到“创建本地服务”主题。子类别是:

  • 绑定到MarketBillingService
  • 将结算请求发送到MarketBillingService
  • 确认支持应用内结算(CHECK_BILLING_SUPPPORTED)
  • 提出购买请求(REQUEST_PURCHASE)

为了解释所写的内容,我将在此处对其进行描述:

在类别中:“验证是否支持应用内结算(CHECK_BILLING_SUPPPORTED)” 他们要求您使用sendBillingRequest()。这允许您发送五种不同类型的结算请求:

  • CHECK_BILLING_SUPPORTED-验证Google Play应用程序是否支持应用内结算以及可用的应用内结算API版本。
  • REQUEST_PURCHASE - 发送应用内商品的购买请求。
  • GET_PURCHASE_INFORMATION - 检索购买或退款的交易信息。
  • CONFIRM_NOTIFICATIONS - 确认您已收到购买或退款的交易信息。
  • RESTORE_TRANSACTIONS - 检索用户的托管购买交易记录。

说您必须在执行请求之前创建一个包。

以下是如何执行确认的示例:

Bundle request = makeRequestBundle("CONFIRM_NOTIFICATIONS");
request.putStringArray(NOTIFY_IDS, mNotifyIds);
Bundle response = mService.sendBillingRequest(request);

检索响应后,检查Bundle中的内容,将有三个关键项:RESPONSE_CODE,PURCHASE_INTENT和REQUEST_ID。 RESPONSE_CODE键为您提供请求的状态,REQUEST_ID键为您提供请求的唯一请求标识符。 PURCHASE_INTENT键为您提供PendingIntent,您可以使用它来启动结帐UI。