Skip to main content

Configurar una compra desde la aplicación con PlayFab y el App Store de Apple

En este tutorial se proporcionan instrucciones paso a paso sobre cómo crear un artículo de compra desde la aplicación (IAP) del App Store de Apple, agregarlo a su catálogo en Game Manager y guiar a los jugadores en el proceso de canje.

Requisitos previos

  1. Un título en Game Manager de PlayFab.
  2. Una integración existente entre el título seleccionado en PlayFab y el App Store de Apple.
  3. Acceso a App Store Connect.
  4. Una aplicación ya creada en App Store Connect.
  5. Una compra desde la aplicación creada dentro de su aplicación en App Store Connect. La compra desde la aplicación debe incluir precios y localización.
  6. Una cola de pagos con su correspondiente observador de transacciones que ya forme parte de su aplicación.

Paso 1: Crear usuarios de prueba

Para poder probar correctamente una compra sin incurrir en pagos con dinero real, empiece por crear un usuario de prueba para su aplicación.
  1. Vaya a App Store Connect > Users and Access.
  2. Seleccione Sandbox. Opción de la pestaña Sandbox
  3. Seleccione el botón del signo más (+) junto a Test Accounts.
  4. Rellene el formulario y seleccione Create. Formulario de nuevo usuario de prueba

Paso 2: Crear un lote en Game Manager

Antes de crear un lote en Game Manager, asegúrese de que ya ha creado y publicado en su catálogo los artículos que quiere agregar al lote. En este tutorial, damos por hecho que ya ha creado una espada llamada Super Awesome Sword. Si necesita orientación sobre cómo crear un artículo, consulte este paso.
Para habilitar una asignación de marketplace entre Game Manager y App Store Connect, debe crear un lote en Game Manager. Un lote puede contener varios artículos con distintas cantidades, y PlayFab los agregará al inventario del jugador una vez canjeado. Siga estos pasos para crear un nuevo lote en Game Manager:
  1. Vaya a Game Manager y navegue hasta su título.
  2. En el menú de navegación izquierdo, elija Engage > Economy.
  3. Seleccione la pestaña Bundles. Pestaña Bundles
  4. Seleccione New bundle.
  5. Agregue al lote la información que desee, como artículos y precios. En este tutorial, use Super Awesome Sword Bundle como nombre. Opciones del lote
  6. Desplácese hasta el final de la página y seleccione Save and publish si quiere que los jugadores puedan canjearlo de inmediato. Seleccione “Save as draft” si quiere publicarlo más adelante. Opciones de guardado

Agregar un artículo al lote

Un lote por sí solo no concede ningún artículo a un jugador; primero debemos vincularle artículos y, una vez canjeado, concede esos artículos a ese jugador específico. Para agregar artículos al lote, siga estos pasos:
  1. Vaya a la sección Items en modo de edición.
  2. Seleccione Add. Aparece una ventana que muestra todos los artículos del catálogo.
  3. Puede filtrar por tipo o buscar un artículo específico.
  4. Busque nuestra Super Awesome Sword y seleccione Add junto a ella.
  5. Por último, seleccione el botón Add de la parte inferior.
Esto agrega el artículo al lote. Agregar artículos a un lote

Paso 3: Habilitar la asignación de marketplace

Para garantizar que, cuando un jugador compre un lote desde su aplicación, la compra se realice y se asigne correctamente en Game Manager, debe configurar la asignación de marketplace (Marketplace Mapping). Esto puede hacerse al crear el lote en Game Manager o volviendo al lote en modo de edición después de crearlo.
  1. Vaya a su lote en modo de edición.
  2. Desplácese hasta la sección Marketplace Mapping.
  3. En el menú desplegable Marketplace, seleccione el marketplace que desee. (Para este tutorial, es AppleAppStore).
  4. Para su Marketplace ID, asegúrese de usar el mismo que su Product ID en App Store Connect. En este tutorial, usamos pf.commerce.ios.sas1.
  5. Para terminar, seleccione el + en el lado derecho de esa fila y guarde los cambios.
Asignación de marketplace

Paso 4: Realizar una compra

Para obtener más información sobre este tema, consulte In-App Purchases. Para obtener información general sobre cómo configurar las compras desde la aplicación, consulte la documentación para desarrolladores de Apple.
Ahora ya tiene su IAP creada en App Store Connect, su lote configurado con artículos en Game Manager y la asignación de marketplace de su lote configurada. Pasemos a comprar la IAP desde su aplicación. Una vez que tenga el artículo IAP expuesto y disponible para su compra desde la aplicación, puede usar el usuario de prueba que creamos en el paso 1 para comprar la IAP en su aplicación. Una vez completado, la API de Apple debería devolver un recibo que después debe usar con la API de canje de PlayFab para validar la compra y conceder al jugador los artículos del lote.

Paso 5: Canjear la compra desde la aplicación

Una vez que obtenga el recibo de la API de Apple, debe usar la llamada a la API RedeemAppleAppStoreInventoryItems de PlayFab para canjear correctamente la IAP. En este caso, debería conceder nuestra Super Awesome Sword al jugador autenticado.

Comprobar que ambos identificadores coinciden

Antes de realizar la llamada de canje, debe asegurarse de que el identificador alternativo que usó en Game Manager para la asignación de marketplace coincide con el Product ID de App Store Connect. La captura de pantalla siguiente procede de su lote en Game Manager; el Marketplace ID es lo que llamamos AlternateId; básicamente, es otra forma de identificar el lote. Asignación de marketplace Desde App Store Connect, vaya a My Apps, seleccione la aplicación que desee y, a continuación, vaya a Features > In-App Purchases en el menú de navegación izquierdo. Por último, seleccione su IAP y, en los metadatos de la IAP, verá el Product ID. Product ID de App Store Connect

Autenticar al jugador

Para canjear un artículo, use RedeemAppleAppStoreInventoryItems. Pero antes, debemos asegurarnos de que el jugador que quiere canjear los artículos se autentica correctamente en la aplicación, para lo cual se usa LoginWithApple. Después de una llamada a LoginWithApple correcta, la API de PlayFab devuelve un EntityToken que debe usar como parte de los encabezados de RedeemAppleAppStoreInventoryItems con una clave X-EntityToken. Tendría este aspecto si usa una plataforma de API para realizar pruebas. Claves de encabezado de la plataforma de API

Realizar la llamada de canje

Con el jugador autenticado, ambos identificadores comprobados y coincidentes, y el recibo de la compra realizada por el jugador en la aplicación, ya está listo para realizar la llamada de canje. Para ello, use la llamada a la API RedeemAppleAppStoreInventoryItems.
La llamada de canje tiene un único valor, que es el recibo devuelto por Apple después de una compra correcta de la IAP. Una respuesta correcta incluiría un código de estado 200 junto con datos como una marca de tiempo y un MarketplaceTransactionId. Después de ejecutar una llamada de canje correcta, debería poder ver una Super Awesome Sword en el inventario del jugador autenticado. Esto desencadena un evento correspondiente en el historial de transacciones del jugador, que puede consultarse en la pestaña Transaction History (V2) de la página de información general del jugador en Game Manager. Junto con una nueva entrada de registro en el historial de transacciones del jugador, también se desencadena y registra un evento PlayStream items_redeemed. Puede acceder a estos registros de su título desde la página Data, en la sección Analyze de la barra de navegación izquierda de Game Manager. Aquí puede editar consultas para buscar registros específicos o ejecutarlas con la configuración predeterminada para obtenerlo todo. Debería haber un registro con el nombre de evento items_redeemed.

Paso 6: Finalizar la transacción

Después de canjear correctamente los artículos comprados, debe asegurarse de finalizar correctamente la transacción para evitar que permanezca indefinidamente en la cola de compras. Es importante tener en cuenta que debe finalizar la transacción tanto si se realizó correctamente como si produjo un error. Para finalizar correctamente la transacción, debe usar el método finishTransaction(_:) de Apple.
Puede encontrar más información sobre finishTransaction(_:) en la documentación de Apple.

Consulte también

Última modificación el 28 de agosto de 2026