Bom dia, @jorginocria! Tudo bem?
O erro que você está enfrentando (Código: 18, Nome: undefined, Mensagem: undefined) ocorre porque a biblioteca EfiPay em JavaScript utiliza recursos do DOM, que o Flutter não consegue implementar sem alguns ajustes. No seu teste com o cartão expirado, você recebeu uma mensagem mais clara porque essa validação passa por um JavaScript que apenas verifica a sintaxe. Para gerar o token de pagamento, é necessário um JavaScript mais complexo que precisa do DOM.
Para corrigir isso, recomendo implementar um método que permita executar JavaScript no Flutter. Você pode encontrar um guia útil neste artigo: Como trabalhar com arquivos JavaScript no Flutter.
Segue também um exemplo de como você pode implementar a chamada para gerar o token de pagamento:
void main() async {
dynamic credentials = {'account_id': ''};
EfiPay efi = EfiPay(credentials);
Map card = {
"brand": "visa",
"number": "4485388557842265",
"cvv": "123",
"expiration_month": "08",
"expiration_year": "2025"
};
dynamic response = await paymentToken(efi, card);
print(response);
}
dynamic paymentToken(EfiPay efi, Map card) async {
dynamic paymentToken = await efi.call("paymentToken", body: card);
}