Un SDK de código abierto para integrar compras en la aplicación en Flutter

Implementa compras en la aplicación en 30 minutos.

Backend listo para utilizo para Flutter compras en la aplicación

Integrar compras en la aplicación requiere crear una infraestructura de backend y servidor para los eventos de suscripción. Esto puede llevar horas de trabajo y ser complicado de mantener.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
El SDK de Adapty te permite integrar suscripciones en la aplicación en tu app iOS con nuestra infraestructura lista, que maneja todos los eventos de suscripción y ofrece características que aumentan los ingresos.
// Your app's code
import 'package:adapty_flutter/adapty_flutter.dart';
Adapty().activate();
 
// Make a purchase, Adapty handles the rest
try {
	final profile = await Adapty().makePurchase(product: product);
	// successful purchase
} on AdaptyError catch (adaptyError) {
	// handle the error
} catch (error) {
	// handle another errors
}
Desde la integración hasta el mantenimiento: Adapty está creado para facilitar el trabajo con IAP.
Solicitar una demostración

¿Por qué elegir el SDK de Adapty?

Estado de suscripción correcto en cualquier momento

Tenga la seguridad de que siempre obtendrá el estado correcto del suscriptor en todas las plataformas.

Validación de recibos del lado del servidor

No necesita preocuparse por la corrección y seguridad de la validación de compras.

Manejo de todo tipo de estados de suscripción

Pruebas gratuitas, actualizaciones, ofertas promocionales, compartición familiar, renovaciones y más.

Plataforma lista para empresas con un ciclo de lanzamiento corto

>99.99% de confiabilidad SLA y actualizaciones regulares del producto.
Configurando plataformas
Instalando el SDK de Adapty
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Procesando eventos de compra

Integración rápida y sencilla

Dedique solo un par de horas para integrar el SDK de Adapty en su aplicación iOS y nosotros nos encargaremos de lo demás.

Solo 5 métodos de SDK para implementar Flutter compras en la aplicación

// Your app's code
try {
    final profile = await Adapty().makePurchase(product: product);
    // successful purchase
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    final profile = await Adapty().restorePurchases();
    // check the access level
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
// Your app's code
try {
    await Adapty().identify(customerUserId);
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
 
 
 
// Your app's code
final builder = AdaptyProfileParametersBuilder()
  ..("Profile_Parameters")
 
try {
    await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
}
// Your app's code
try {
  await Adapty().updateAttribution("<attribution>", source: "<source>", networkUserId: "<networkUserId>");
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
}
 
 
 
Pruébalo gratis

Las personas de todo tipo de negocios recurren a Adapty para aumentar sus ingresos

¿Qué obtienes con Adapty?

El SDK de Adapty proporciona enormes posibilidades para aumentar los ingresos de la aplicación

Analíticas en tiempo real para tu Flutter App

Confía en los datos con un 99.5% de precisión con App Store Connect.
Comienza ahora
App Icon Gravity
Gravity Fit
Salud y Bienestar
“Los paneles analíticos transparentes y avanzados nos ayudan a tomar decisiones más rápido sin usar herramientas adicionales. Nos ahorra mucho tiempo y, por lo tanto, dinero.”
Ekaterina K,
PM en Gravity Fit
Accuracy Adapty Appstore
ABC testing

Pruebas A/B de paywall

Encuentra el paywall más rentable y aumenta los ingresos de tu aplicación.
Explorar pruebas A/B
MentalGrowth
MentalGrowth
Aplicación de Salud y Bienestar
“La rápida analítica de Adapty y la fácil implementación de la función de pruebas A/B nos han permitido validar hipótesis rápidamente y lograr grandes resultados.”
Vadim Nemchenko,
Gerente de Producto en MentalGrowth

Configuración remota de paywalls

Cambia tu paywall de forma remota sin tener que volver a publicar la aplicación.
Pruébalo ahora
Smitten
Smitten - Citas
Estilo de vida
“Nuestro equipo de crecimiento e ingresos puede implementar y gestionar rápidamente paywalls, ofertas de productos y probar niveles de precios en muchos mercados diferentes.”
Kyle Smith,
Jefe de datos en Smitten Dating
Table Json Table Locale

Confianza en la facilidad de uso y el servicio al cliente

Basado en más de 500 opiniones
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025