ver historial consultar compras apple app iphone iphone-sdk-3.0 in-app-purchase storekit

consultar - historial de compras app store iphone



iPhone en la compra de aplicaciones: ¿los productos de respuesta siguen vacíos? (9)

Básicamente, intenté configurar las compras de aplicaciones en una aplicación de prueba antes de implementarlas en una aplicación adecuada en la que mi empresa esté trabajando. He leído el kit de almacenamiento pdf y otros fragmentos alrededor de 1000 veces, pero los productos todavía se devuelven como vacíos. Esto es exactamente lo que hice hasta ahora:

Aplicación de prueba de configuración y elementos de prueba de compra en la aplicación
Creé una nueva identificación de aplicación para ''Test App One'' en el portal para desarrolladores de mi empresa en el iPhone Dev Center. Me aseguré de que el prefijo fuera com.mycompany.testappone para garantizar que se pudieran configurar las compras en la aplicación. Permaneciendo en la sección de ID de la aplicación, configuré en las compras de la aplicación marcando la opción ''Habilitar compra de la aplicación''.

Creé ''Test App One'' en iTunes Connect y completé el procedimiento habitual, pero seleccioné ''upload binary later'' y no lo sometí a revisión ya que la aplicación no hace nada. ¡Seguramente no tenemos que enviar la aplicación para revisarla para que funcione! Luego hice clic en administrar en las compras de la aplicación y creé una nueva con la identificación del producto ''test1'' y la aprobé para que se autorizara la venta.

Código
Configuré un nuevo proyecto en XCode llamado TestAppOne y aquí están las únicas 2 clases que estoy usando por ahora:

TestAppOneAppDelegate.h:

#import <UIKit/UIKit.h> #import <StoreKit/StoreKit.h> @interface TestAppOneAppDelegate : NSObject <UIApplicationDelegate, SKRequestDelegate, SKProductsRequestDelegate> { UIWindow *window; }

TestAppOneDelegate.m:

#import "TestAppOneAppDelegate.h" static NSString *kMyFeatureIdentifier1 = @"com.mycompany.testappone.test1"; @implementation TestAppOneAppDelegate @synthesize window; - (void)applicationDidFinishLaunching:(UIApplication *)application { if([SKPaymentQueue canMakePayments]) { NSLog(@"IN-APP:can make payments"); } else { NSLog(@"IN-APP:can''t make payments"); } [self requestProductData]; [window makeKeyAndVisible]; } - (void)requestProductData { NSLog(@"IN-APP:requestProductData"); SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMyFeatureIdentifier1]]; request.delegate = self; [request start]; NSLog(@"IN-APP:requestProductData END"); } - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { NSLog(@"IN-APP:productsRequest"); NSArray *myProduct = response.products; NSLog(@"IN-APP:array count: %i", [myProduct count]); [request autorelease]; NSLog(@"IN-APP:productsRequest END"); } - (void)dealloc { [window release]; [super dealloc]; } @end

Prueba en el dispositivo
Creé una cuenta de prueba de zona de pruebas y me desconecté de mi cuenta de iTunes en el iPhone, pero no inicié sesión con la cuenta de prueba ya que la documentación nos dice que no hagamos esto hasta que se nos indique en la etapa de compras. Luego creo la aplicación y aquí está el registro que obtengo:

IN-APP:can make payments IN-APP:requestProductData IN-APP:requestProductData END IN-APP:productsRequest IN-APP:array count: 0 IN-APP:productsRequest END

¿Puede alguien decirme si he dejado alguna etapa o si hay algo que estoy haciendo mal? Lamentablemente, no parece haber aplicaciones de ejemplo creadas por Apple.


Compruebe si su identificador de paquete (por ejemplo, com.company.appname) en XCode coincide con el de iTunes Connect.

No tiene que enviar el binario para que funcione.


De hecho, creo que tienes que enviar el binario para que funcione.

Puede establecer la fecha de lanzamiento para un futuro lejano.


En mi caso, el motivo fue el alojamiento de contenido de Apple activado por error. El producto estaba disponible solo cuando lo apagué


Gracias a la respuesta de alpere descubrí que había usado una identificación de producto incorrecta. No era como pensaba de.company.appname.PROFESSIONAL_LICENSE . Solo el uso de PROFESSIONAL_LICENSE en mi caso (sin las principales instrucciones de identificación del paquete) funciona :)


Intenta agregar un producto de suscripción gratuita. Si aparece en la respuesta, no hay nada incorrecto en su código. Como Free Subscription es el único tipo que no requiere Acuerdos, Impuestos y Banca, y si aparece y los otros no, entonces es un problema relacionado con su contrato.


No es necesario subir el binario para probar Sandbox de InAppPurchase. Solo tiene que agregar el elemento InAppPurchase en iTunesConnect y ponerlo en estado "Ready to submit" (debe) solo. Si lo envía para su revisión, siempre le dará a su respuesta el producto vacío.


Otro paso importante que a menudo se pasa por alto es que debe asegurarse de tener una configuración de Contrato de aplicaciones pagas de iOS que se encuentra en la sección "Contratos, impuestos y operaciones bancarias" de iTunes Connect. Primero tiene que hacer clic en el botón de solicitud, luego debe hacer clic en los 3 botones de Configuración (Información de contacto, Información del banco, Información fiscal)


Simplemente elimine la aplicación en su dispositivo y vuelva a iniciarla desde XCode. Me arregló el problema.

No es necesario cargar el archivo binario o esperar horas después de crear la compra en la aplicación en iTunes Connect.


Verifique si hay identificaciones de producto no válidas.

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { for (NSString *invalidProductId in response.invalidProductIdentifiers) { NSLog(@"Invalid product id: %@" , invalidProductId); } }

Si hay identificadores de productos no válidos, visite http://troybrant.net/blog/2010/01/invalid-product-ids/

Es una lista de verificación muy completa para este problema.