0

Android documentation says that this method is deprecated, but I do not see what else I can use instead.

Basically, I am trying to do something like this:

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
}

What is the correct way to accomplish checking what the end of the purchase request was?

I have a buy button like this:

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

But I am not really clear what needs to be done next.

Thanks!

4

1 回答 1

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。

于 2012-07-24T23:02:54.300 回答