3

我正在使用静态引用测试应用内购买。
我正在使用静态参考android.test.purchased,但我无法弄清楚如何在我的onActivityResult(...)方法中获得测试购买的响应。

这是我onActivityResult(....)的方法的主体:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
    // TODO Auto-generated method stub  
    super.onActivityResult(requestCode, resultCode, data);
    Log.d("In-App", "Data = "+data.toString());
    Log.d("In-App", "Request Code = "+requestCode);
    Log.d("In-App", "Result Code = "+resultCode);
}

我的 Logcat 说:

08-16 10:48:10.114: D/In-App(3889): Data = Intent { (has extras) }
08-16 10:48:10.114: D/In-App(3889): Request Code = 666
08-16 10:48:10.114: D/In-App(3889): Result Code = -1

我的测试购买的屏幕截图:
1。

在此处输入图像描述

2.

在此处输入图像描述

问题是,我应该从Data Object我的onActivityResult(....)方法中提取哪些额外内容,以检测当前测试购买的状态(已取消、已购买、已成功接受等)和有关产品的信息(JSON respnse)?
非常感谢任何帮助,谢谢。

4

2 回答 2

8

我已经更新了我的onActivityResult(...)方法

  int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
  String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
  String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");

  if (resultCode == RESULT_OK) {
     //Purchased Status = Purchased
     try {
        //Product Details JSON
        JSONObject jo = new JSONObject(purchaseData);

        //Purchased Product ID
        String sku = jo.getString("productId");
      }
      catch (JSONException e) {

         e.printStackTrace();
      }
    }

  else {
     //Purchased Status = Not Purchased
     }

这样我就获得了购买状态和购买产品的详细信息JSON

于 2013-08-16T08:05:23.593 回答
-1

首先,您需要一个数据库来保存订单。其次,当用户安装您的应用程序时。您必须发布RESTORE_TRANSACTIONS用户购买的产品并将结果插入本地数据库。你可以在这里阅读更多。

编辑:

有关更多详细信息,请查看应用内计费集成

于 2013-08-16T06:28:02.030 回答