Hoy vamos a crear una función qué nos permitirá verificar una compra in app realizada desde ios con Apple y en Python.

Crearemos una funcion util de esta forma:
import requests def verify_ios_purchase(purchase_token: str, testMode: bool = False) -> dict: print(purchase_token) print("---------------------------") """ Verifica el receipt de iOS con los servidores de Apple. Args: purchase_token (str): El receipt-data enviado por la app. testMode sandbox (bool): True si es entorno de pruebas, False si es producción. Returns: dict: Respuesta JSON de Apple. """ url = "https://sandbox.itunes.apple.com/verifyReceipt" if testMode else "https://buy.itunes.apple.com/verifyReceipt" payload = { "receipt-data": purchase_token, "password": SHARED_SECRET_IOS_IAP, "exclude-old-transactions": True } headers = { "Content-Type": "application/json" } try: response = requests.post(url, json=payload, headers=headers, timeout=10) response.raise_for_status() print(response.json()) return response.json() except requests.exceptions.RequestException as e: return {"status": "error", "message": str(e)}
Y la utilizamos de la siguiente forma:
result = verify_ios_purchase(compra_iap.purchaseToken, testMode=compra_iap.test) # Revisar resultado if result.get("status") == 0: print("Compra válida") print(result) else: print("Compra NO válida") print(result.get("message")) #Devuelve excepcion raise HTTPException(status_code=400, detail=f"Compra no válida Apple: {result.get('message')}")
Muy importante esta función debe recibir un transactionReceipt no confundir con el purchaseToken de Android ni con jwsRepresentationIOS de storekit2
Para obtener el SHARED_SECRET_IOS_IAP tenemos que hacer lo siguiente:
Debemos ir a nuestra cuenta de Apple Developer > Usuarios y acceso > Secreto compartido

Y copiamos la clave que devuelve.
Aquí tienes como hacerlo en PHP: https://devcodelight.com/validar-compra-en-aplicacion-compras-in-app-de-ios-usando-php/

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.