{"id":137924,"date":"2022-12-15T00:00:00","date_gmt":"2022-12-15T00:00:00","guid":{"rendered":"https:\/\/adapty.io\/es-android-in-app-purchases-part-5-server-side-purchase-validation\/"},"modified":"2022-12-15T00:00:00","modified_gmt":"2022-12-15T00:00:00","slug":"android-in-app-purchases-part-5-server-side-purchase-validation","status":"publish","type":"post","link":"https:\/\/adapty.io\/es\/blog\/android-in-app-purchases-part-5-server-side-purchase-validation\/","title":{"rendered":"Las compras dentro de la aplicaci\u00f3n de Android, parte 5: Validaci\u00f3n de las compras del lado del servidor"},"content":{"rendered":"\n
La validaci\u00f3n del lado del servidor (server-side) puede ayudarte a validar la autenticidad de la compra. El dispositivo har\u00e1 una petici\u00f3n a los servidores de Google para averiguar si la compra se realiz\u00f3 realmente y si es v\u00e1lida.<\/p>\n\n\n\n
En esta gu\u00eda, hablaremos de c\u00f3mo configurar la validaci\u00f3n del lado del servidor para las aplicaciones de Android. <\/p>\n\n\n\n
Cabe se\u00f1alar que la validaci\u00f3n del lado del servidor no es obligatoria: las compras dentro de la aplicaci\u00f3n seguir\u00e1n funcionando sin la misma. Sin embargo, tiene algunas ventajas importantes:<\/p>\n\n\n\n
Seg\u00fan nuestra experiencia, la primera ventaja es suficiente para establecer el procesamiento de compras en el lado del servidor.<\/p>\n\n\n\n\n\n
Podemos resumir la validaci\u00f3n del pago (purchase validation) en Android con este esquema:<\/p>\n\n\n\n Para utilizar Google Play Developer API, primero tendr\u00e1s que generar una clave para firmar las solicitudes. En primer lugar, tendr\u00e1s que vincular tu cuenta de Google Play Console (donde gestionas tu aplicaci\u00f3n) con tu cuenta de Google Cloud (donde generar\u00e1s una clave para la firma de solicitudes). Una vez que todo est\u00e9 configurado, tendr\u00e1s que conceder al usuario los derechos de gesti\u00f3n de compra. Har\u00eda falta un art\u00edculo dedicado a describir este proceso. Por suerte, ya lo describimos en una gu\u00eda paso a paso que se encuentra en la documentaci\u00f3n de Adapty<\/a>. <\/p>\n\n\n\n Ten en cuenta que normalmente tendr\u00e1s que esperar 24 horas o m\u00e1s despu\u00e9s de generar una clave para que empiece a funcionar. Para evitarlo, s\u00f3lo tienes que actualizar la descripci\u00f3n de cualquier producto o suscripci\u00f3n en la app, lo que activar\u00e1 instant\u00e1neamente la clave. <\/p>\n\n\n\n Utilizamos la biblioteca oficial google-api-python-client<\/a> para utilizar la Google Play Developer API. Esta biblioteca est\u00e1 disponible para la mayor\u00eda de los lenguajes populares, y te recomiendo que la utilices ya que soporta todos los m\u00e9todos que puedas necesitar.<\/p>\n\n\n\n A diferencia de la validaci\u00f3n del lado del servidor de iOS<\/a>, en Android, tanto la validaci\u00f3n de las suscripciones como la de otros productos se implementan utilizando diversos m\u00e9todos. Por tanto, al validar una transacci\u00f3n, necesitas saber si se trata de un producto o de una suscripci\u00f3n. En la pr\u00e1ctica, esto significa que tendr\u00e1s que transferir estos datos desde la aplicaci\u00f3n m\u00f3vil, as\u00ed como mantener la marca en la base de datos en caso de que sea necesaria la revalidaci\u00f3n del token.<\/p>\n\n\n\n La segunda diferencia importante es que mientras cada transacci\u00f3n tiene su propio token en Android, todas las transacciones de iOS utilizan un secreto compartido espec\u00edfico de la aplicaci\u00f3n para almacenar todo el historial de transacciones. Esto significa que si quieres poder restaurar las compras del usuario en cualquier momento, tendr\u00e1s que almacenar todos los tokens de compra, en lugar de elegir uno solo arbitrariamente.<\/p>\n\n\n\n Para validar la suscripci\u00f3n, tendr\u00e1s que invocar el m\u00e9todo purchases.subscriptions.get.<\/em><\/a>B\u00e1sicamente, se trata de una llamada de solicitud GET:<\/p>\n\n\n\n <\/figure>\n\n\n\n
<\/figure>\n\n\n\nAutenticaci\u00f3n para las solicitudes de la API para desarrolladores de Google Play<\/h3>\n\n\n\n
Validaci\u00f3n de transacciones de suscripci\u00f3n<\/h3>\n\n\n\n