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