android - 如何在 Activity 结果方法上检测应用内购买的状态

标签 android in-app-purchase

我正在使用静态引用测试应用内购买。
我正在使用静态引用 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.

enter image description here

2.

enter image description here

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

最佳答案

我已经更新了我的 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

关于android - 如何在 Activity 结果方法上检测应用内购买的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266679/

相关文章:

java - 在 >=23 中膨胀类 Seekbar 时出错

android - android API eval 26 中未收到通知

android - Xamarin 清除 Android 日志

android - 如何在 ionic 中使用图像作为按钮

ios - 如何实现内购赠送?

ios - 管理订阅购买的时间 - iOS

java - 按下一个按钮来保存来自不同 Activity 的地理位置详细信息并将其显示在 MapView 上?

swift - MZCommerceInAppBuy.App BuyInfoDataAccessFailure_message

objective-c - SKPaymentTransaction expires_date,似乎 "auto renew"机制在沙箱中不起作用

android - 无法登录手动安装的 APK 的 Google Play 服务