braintree_native_ui 0.4.0 copy "braintree_native_ui: ^0.4.0" to clipboard
braintree_native_ui: ^0.4.0 copied to clipboard

Plugin nativo para tokenizar cartão, rodar 3DS2 e coletar device data com Braintree usando UI própria.

braintree_native_ui #

Plugin Flutter/FlutterFlow para integração nativa com o Braintree (Android/iOS) sem Drop‑in, pensado para apps em larga escala. Tokeniza cartão, executa 3DS2, coleta device data, Apple Pay/Google Pay, PayPal (Vault/Checkout) e faz cache local de metadados não sensíveis (bandeira, últimos 4 dígitos, validade). Também permite armazenar o authorization (client token ou tokenization key) no dispositivo.

Recursos #

  • Tokenização de cartão (Android/iOS)
  • 3D Secure 2
  • Coleta de device data (fraude)
  • Apple Pay (iOS) e Google Pay (Android)
  • PayPal Vault e Checkout
  • Cache local de metadados: bandeira, últimos 4, validade (no máximo 5 itens)
  • Armazenamento local do authorization (client token / tokenization key)
  • Sem necessidade de editar Podfile ou build.gradle do app (dependências ficam no plugin)

Instalação #

pubspec.yaml:

dependencies:
  braintree_native_ui: ^0.4.0
  http: ^1.2.2 # opcional, para fetchAndCacheClientToken()

No iOS, rode pod install no projeto do app após atualizar dependências.

Uso rápido #

import 'package:braintree_native_ui/braintree_native_ui.dart';

final bnui = BraintreeNativeUi();

// 1) Obter authorization (client token via seu backend) e salvar
final token = await bnui.fetchAndCacheClientToken(
  endpoint: Uri.parse('https://sua.api/client-token'),
  // headers: {'Authorization': 'Bearer <jwt>'},
  // body: {'customerId': '123'},
  tag: 'main',
);

// 2) Tokenizar cartão (o plugin salva bandeira/últimos 4/validade automaticamente)
final nonce = await bnui.tokenizeCard(
  authorization: token,
  number: '4111111111111111',
  expirationMonth: '12',
  expirationYear: '2030',
  cvv: '123',
);

// 3) 3DS (opcional)
final verified = await bnui.performThreeDSecure(
  authorization: token,
  nonce: nonce!,
  amount: '10.00',
);

// 4) Apple Pay / Google Pay / PayPal
await bnui.requestApplePayPayment(
  authorization: token,
  merchantIdentifier: 'merchant.com.seu.id',
  countryCode: 'US',
  currencyCode: 'USD',
  amount: '10.00',
);

await bnui.requestGooglePayPayment(
  authorization: token,
  amount: '10.00',
  currencyCode: 'USD',
);

final ppVaultNonce = await bnui.requestPayPalVault(authorization: token);
final ppCheckoutNonce = await bnui.requestPayPalCheckout(
  authorization: token,
  amount: '10.00',
  currencyCode: 'USD',
);

// 5) Ler metadados salvos para exibir no UI (FlutterFlow-friendly)
final cards = await bnui.getCachedCards();
// Ex.: [{type: 'card', brand: 'visa', last4: '1111', expirationMonth: '12', expirationYear: '2030'}]

Observações importantes #

  • Client token não pode ser gerado no dispositivo. Gere no seu servidor com o SDK Server oficial da Braintree e entregue ao app (use fetchAndCacheClientToken() ou cacheAuthorization()).
  • Nunca armazene número completo ou CVV. O plugin armazena apenas metadados não sensíveis (bandeira, últimos 4, validade) após a tokenização.
  • Nonces devem ser enviados ao seu backend para criar transações ou vault.
  • “Transferir dinheiro entre usuários” exige lógica no servidor (ex.: capturas, split/payouts via PayPal/Braintree). O app móvel não move fundos sozinho.
  • Apple Pay requer Merchant ID e entitlements; Google Pay requer configuração prévia. As dependências são incluídas no plugin; não é necessário editar Podfile ou build.gradle do app.

Veja example/ para um app de demonstração.

Licença #

MIT. Veja LICENSE.

1
likes
150
points
180
downloads

Publisher

unverified uploader

Weekly Downloads

Plugin nativo para tokenizar cartão, rodar 3DS2 e coletar device data com Braintree usando UI própria.

Repository (GitHub)
View/report issues

Topics

#braintree #payments #three-d-secure #card #native

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http, plugin_platform_interface

More

Packages that depend on braintree_native_ui

Packages that implement braintree_native_ui