2011-05-06 15 views
18

En la facturación de aplicaciones de Android, ¿es posible consultar de algún modo la información (de precios) para todos los productos con una sola consulta? De manera óptima, podría pasar las identificaciones de productos y devolvería información para esos.¿Cómo consultar información de precios para múltiples productos integrados en la aplicación a la vez?

Lo que estoy buscando es el equivalente de SKProductsRequest para Android Market. http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKProductsRequest/Reference/Reference.html#//apple_ref/occ/cl/SKProductsRequest

Respuesta

13

Ahora es posible con Billing API v3. Puede obtener información con el método getSkuDetails(). El ejemplo es here.

ArrayList skuList = new ArrayList(); 
skuList.add("premiumUpgrade"); 
skuList.add("gas"); 
Bundle querySkus = new Bundle(); 
querySkus.putStringArrayList("ITEM_ID_LIST", skuList); 

Bundle skuDetails = mService.getSkuDetails(3, getPackageName(), "inapp", querySkus); 

int response = skuDetails.getInt("RESPONSE_CODE"); 
if (response == 0) { 
    ArrayList responseList = skuDetails.getStringArrayList("DETAILS_LIST"); 

    for (String thisResponse : responseList) { 
     JSONObject object = new JSONObject(thisResponse); 
     String sku = object.getString("productId"); 
     String price = object.getString("price"); 
     if (sku.equals("premiumUpgrade")) { 
      mPremiumUpgradePrice = price; 
     } else if (sku.equals("gas")) { 
      mGasPrice = price; 
     } 
    } 
} 
+3

¡Muchas gracias por la publicación, funciona! Pero tengo una pregunta: ¿getSkuDetails() devuelve la moneda localizada, o el conjunto de precios predeterminados del desarrollador, que está en dólares estadounidenses? Me parece que solo devuelve dólares de EE. UU., Independientemente de que haya configurado mi sistema y la cuenta de Google Play como Francia. ¿Sabes dónde se documentará esto? No pude encontrar suficientes documentos para esto. – sammiwei

+0

@sammiwei Lo siento, no sé. –

+0

'price_currency_code' da la moneda en el paquete skuDetails –

Cuestiones relacionadas