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
- Un título en Game Manager de PlayFab.
- Una integración existente entre el título seleccionado en PlayFab y el App Store de Apple.
- Acceso a App Store Connect.
- Una aplicación ya creada en App Store Connect.
- 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.
- 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.- Vaya a App Store Connect > Users and Access.
-
Seleccione Sandbox.

- Seleccione el botón del signo más (+) junto a Test Accounts.
-
Rellene el formulario y seleccione Create.

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.
- Vaya a Game Manager y navegue hasta su título.
- En el menú de navegación izquierdo, elija Engage > Economy.
-
Seleccione la pestaña Bundles.

- Seleccione New bundle.
-
Agregue al lote la información que desee, como artículos y precios. En este tutorial, use Super Awesome Sword Bundle como nombre.

-
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.

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:- Vaya a la sección Items en modo de edición.
- Seleccione Add. Aparece una ventana que muestra todos los artículos del catálogo.
- Puede filtrar por tipo o buscar un artículo específico.
- Busque nuestra Super Awesome Sword y seleccione Add junto a ella.
- Por último, seleccione el botón Add de la parte inferior.

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.- Vaya a su lote en modo de edición.
- Desplácese hasta la sección Marketplace Mapping.
- En el menú desplegable Marketplace, seleccione el marketplace que desee. (Para este tutorial, es AppleAppStore).
- 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.
- Para terminar, seleccione el + en el lado derecho de esa fila y guarde los cambios.

Paso 4: Realizar una compra
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.

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 claveX-EntityToken. Tendría este aspecto si usa una plataforma de API para realizar pruebas.

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.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étodofinishTransaction(_:) de Apple.
Puede encontrar más información sobre
finishTransaction(_:) en la documentación de Apple.