moveme_wallet 0.2.0
moveme_wallet: ^0.2.0 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.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, health.
Não exporta load / crédito.
Payments (backend only) #
import 'package:moveme_wallet/payments.dart';
final payments = PaymentsClient(
options: PaymentsClientOptions(
baseUrl: 'YOUR_BASE_URL',
paymentsApiKey: 'YOUR_PAYMENTS_API_KEY',
),
);
await payments.load(
externalUserId: 'moveme:driver_42',
amount: 1000,
paymentId: 'pay_abc',
);
Security #
API_KEY→ só backend da app (ou BFF). Preferir: mobile → vosso backend →WalletClient.PAYMENTS_API_KEY/ webhook secret → nunca na app móvel; sópayments.dart.
Errors #
try {
await wallet.debit(externalUserId: id, amount: 100);
} on WalletApiError catch (e) {
if (isInsufficientFunds(e)) { /* top-up */ }
}
License #
MIT