moveme_wallet 0.2.2 copy "moveme_wallet: ^0.2.2" to clipboard
moveme_wallet: ^0.2.2 copied to clipboard

SDK Flutter/Dart for MoveMe Digital Wallet (safe client + server payments entry).

moveme_wallet #

SDK Flutter/Dart para /api/digital-wallet.

Install #

dependencies:
  moveme_wallet: ^0.2.2
  moveme_wallet_notifications: ^0.1.0

Client (seguro) #

import 'package:moveme_wallet/moveme_wallet.dart';

final wallet = WalletClient(
  options: WalletClientOptions(
    baseUrl: 'YOUR_BASE_URL',
    apiKey: 'YOUR_API_KEY',
  ),
);

final account = await wallet.ensureAccount('moveme:driver_42');
await wallet.debit(
  externalUserId: 'moveme:driver_42',
  amount: 100,
  idempotencyKey: idempotencyKey('trip', 99, 'fare'),
);

Métodos: createAccount, getByExternalUserId, ensureAccount, getBalance, getStatement, debit, debitForTrip, transfer, listPaymentMethods, createCheckout, getCheckout, health.

Não exporta load / crédito.

Gateway — métodos e checkout #

final methods = await wallet.listPaymentMethods();
// ecrã Pagamento via Gateway — não uses lista fixa na app

final checkout = await wallet.createCheckout(
  externalUserId: 'moveme:driver_42',
  amount: 2000,
  paymentMethod: 'multicaixa_express',
);
// abrir checkout.paymentUrl / checkout.openUrl (ex. w.appmove.com)

Payments (backend only) #

import 'package:moveme_wallet/payments.dart';

await PaymentsClient(
  options: PaymentsClientOptions(
    baseUrl: 'YOUR_BASE_URL',
    paymentsApiKey: 'YOUR_PAYMENTS_API_KEY',
  ),
).load(
  externalUserId: 'moveme:driver_42',
  amount: 2000,
  paymentId: 'pay_xxx',
);

Iniciar carregamento (top-up) #

1. Flutter: listPaymentMethods → utilizador escolhe método + valor
2. Flutter: createCheckout → abre paymentUrl
3. Utilizador paga no gateway / PSP
4. Gateway confirma → wallet credita (ou BFF chama POST /loads)
5. App: onLoadConfirmed / polling → notificação local

A app não envia initialBalance ao criar conta (admin define).
Na 1ª criação, use created / initialBalanceApplied para boas-vindas.

Nunca creditar com API_KEY genérica.

Security #

  • API_KEY → BFF / app controlada. Preferir: mobile → vosso backend → WalletClient.
  • PAYMENTS_API_KEYnunca na app móvel; só payments.dart.

Local notifications #

await ensureAccountWithNotify(
  wallet: wallet,
  notifications: notifs,
  externalUserId: 'moveme:driver_42',
);

Errors #

try {
  await wallet.debit(externalUserId: id, amount: 100);
} on WalletApiError catch (e) {
  if (isInsufficientFunds(e)) { /* top-up */ }
}

License #

MIT

0
likes
0
points
198
downloads

Publisher

unverified uploader

Weekly Downloads

SDK Flutter/Dart for MoveMe Digital Wallet (safe client + server payments entry).

Repository (GitHub)
View/report issues

Topics

#wallet #payments #sdk #flutter

License

unknown (license)

Dependencies

crypto, http, meta

More

Packages that depend on moveme_wallet