Nokiax 诺基亚X IAP-getPurchases(),即我购买的产品不会从getPurchases()获得

Nokiax 诺基亚X IAP-getPurchases(),即我购买的产品不会从getPurchases()获得,nokiax,Nokiax,我从getProductDetails()获取一些产品id详细信息。 我成功地购买了前三个测试产品。但是我无法从getPurchases()获取已购买的产品列表 ================================================================================= public void getThePurchasedItem(ArrayList<String> productQuery){ final Bu

我从getProductDetails()获取一些产品id详细信息。 我成功地购买了前三个测试产品。但是我无法从getPurchases()获取已购买的产品列表

=================================================================================

    public void getThePurchasedItem(ArrayList<String> productQuery){
    final Bundle queryBundle = new Bundle();
    queryBundle.putStringArrayList("ITEM_ID_LIST", productQuery);
    new Thread(new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
            String continuationToken = null;
            Bundle ownedItems = null;
            try {
                showToast("getThePurchasedItem 0000000");
                ownedItems = mService.getPurchases(BILLING_API_VERSION, getPackageName(), ITEM_TYPE_INAPP, queryBundle, continuationToken);
                showToast("getThePurchasedItem 1111111");
       //                   ownedItems = mService.getPurchases(BILLING_API_VERSION, getPackageName(), ITEM_TYPE_INAPP, null, null);
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            int response = ownedItems.getInt("RESPONSE_CODE");

            showToast("response code:"+response);

            if (response == RESULT_OK) {
                ArrayList<String> ownedProducts = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
                ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");

                continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");

                System.out.println("getPurchasedItem data size:"+purchaseDataList.size());
                System.out.println("getPurchasedItem item size:"+ownedItems.size());
                String data = "";

                showToast("purchaseDataList.size():"+purchaseDataList.size());
                showToast("ownedProducts.size():"+ownedProducts.size());

                for (int i = 0; i < purchaseDataList.size(); ++i) {
                    String purchaseData = purchaseDataList.get(i);
                    String product = ownedProducts.get(i);

                    System.out.println("product:"+product);
                    System.out.println("purchaseData:"+purchaseData);
                    /*purchaseData look like this
                    {
                    "productId": "YourProductID",
                    "purchaseToken": "XDd333xk38s",
                    "developerPayload": ""
                    }*/
                    try {
                        JSONObject jsonPurchaseData = new JSONObject(purchaseData);
                        String productId = jsonPurchaseData.getString("productId");
                        String developerPayload = jsonPurchaseData.getString("developerPayload");
                        String purchaseToken = jsonPurchaseData.getString("purchaseToken");
                        lastObtainedPurchaseToken = purchaseToken;

                        System.out.println("productId:"+productId);
                        System.out.println("developerPayload:"+developerPayload);
                        System.out.println("purchaseToken:"+purchaseToken);

                        data += "=============================\n";
                        data +="\nproductId:"+productId + "\n";
                        data +="developerPayload:"+developerPayload + "\n";
                        data +="purchaseToken:"+purchaseToken + "\n\n";

                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    // do something with this purchase information
                    // e.g. display the updated list of products owned by user
                } 
                data += "=============================";

                if(purchaseDataList.size()==0){
                    data="No one product purchased";
                }
                final String finalData = data;
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        textview.setText(finalData);
                    }
                });
            }else{
                System.out.println("getPurchasedItem failed:"+response);
            }
        }
    }).start();
}
public void getThePurchasedItem(ArrayList productQuery){
final Bundle queryBundle=新Bundle();
putStringArrayList(“项目ID列表”,productQuery);
新线程(newrunnable()){
@凌驾
公开募捐{
//TODO自动生成的方法存根
字符串continuationToken=null;
Bundle ownedItems=null;
试一试{
showtoots(“getThePurchasedItem 0000000”);
ownedItems=mService.getPurchases(计费API版本,getPackageName(),项目类型,查询包,continuationToken);
showToast(“getThePurchasedItem 1111111”);
//ownedItems=mService.getPurchases(计费API版本,getPackageName(),项目类型,空,空);
}捕获(远程异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
int response=ownedItems.getInt(“响应代码”);
showToast(“响应代码:”+响应);
如果(响应==结果_正常){
ArrayList ownedProducts=ownedItems.getStringArrayList(“INAPP\u采购项目清单”);
ArrayList purchaseDataList=ownedItems.getStringArrayList(“INAPP\u采购\u数据\u列表”);
continuationToken=ownedItems.getString(“INAPP_CONTINUATION_TOKEN”);
System.out.println(“getPurchasedItem数据大小:”+purchaseDataList.size());
System.out.println(“getPurchasedItem大小:+ownedItems.size());
字符串数据=”;
showToast(“purchaseDataList.size():”+purchaseDataList.size());
showToast(“ownedProducts.size():”+ownedProducts.size());
对于(int i=0;i
测试ID没有在后端存储购买状态信息,因此您无法使用它们获取数据。因此,要使实际购买历史记录正常工作,您应该使用您为诺基亚商店中的内容保留的真实ID。另外,请记住,在您尝试使用ID之前,请等待ID通过QA