Pacote para criar pagamentos usando o SDK da API Cielo e-Commerce. Para mais informações, acesse a documentação oficial da Cielo e-Commerce para desenvolvedores.
Orientação gerada a partir de informações públicas. Apenas para referência.
O pacote cielo_ecommerce permite que desenvolvedores Flutter integrem o processamento de pagamentos Cielo e-Commerce em seus aplicativos. Ele fornece uma interface simples para interagir com a API da Cielo, suportando o tratamento seguro de transações em múltiplas plataformas. Projetado para desenvolvedores que criam aplicativos que exigem pagamentos com cartão de crédito, simplifica a integração com a infraestrutura de pagamento da Cielo. O pacote é compatível com Android, iOS, Web, macOS, Windows e Linux, garantindo amplas opções de implantação. É recomendada a documentação oficial para orientações completas sobre implementação.
Casos de uso
Processamento de pagamentos com cartão de crédito em aplicativos móveis
Integração com a API de Comércio Eletrônico Cielo
Construindo aplicativos de comércio eletrônico com Flutter
Suporte a múltiplas plataformas em uma única base de código
Habilitar transações online seguras
Principais recursos
Suporte multiplataforma
Integração simples com a API Cielo
Tratamento seguro de pagamentos
Compatibilidade com SDK oficial
Criado para aplicações Flutter
Indicado para
Desenvolvedores Flutter
criadores de aplicativos de comércio eletrônico
Integradores de gateway de pagamento
Desenvolvedores de aplicativos móveis voltados para o Brasil
Aplicativos que exigem processamento de pagamento Cielo
Considerações
Requer credenciais oficiais da API Cielo
Depende de documentação atualizada
Pode ser necessário medidas de segurança adicionais
Configurações específicas de plataforma são possíveis
Não adequado para métodos de pagamento não Cielo
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
cielo_ecommerce
Pacote para criar pagamentos usando o SDK da API Cielo e-Commerce. Para mais informações acesse a documentação oficial da Cielo e-Commerce para desenvolvedores.
import'package:cielo_ecommerce/cielo_ecommerce.dart';
...
finalCieloEcommerce cielo = CieloEcommerce(
environment: Environment.SANDBOX,
merchant: Merchant(
merchantId: "SEU_MERCHANT_ID",
merchantKey: "SEU_MERCHANT_KEY",
));
_makePayment() async {
print("Transação Simples");
print("Iniciando pagamento....");
//Objeto de vendaSale sale = Sale(
merchantOrderId: "2020032601", // Numero de identificação do Pedido
customer: Customer(
name: "Comprador crédito simples", // Nome do Comprador
),
payment: Payment(
type: TypePayment.creditCard, // Tipo do Meio de Pagamento
amount: 9, // Valor do Pedido (ser enviado em centavos)
installments: 1, // Número de Parcelas
softDescriptor: "Mensagem", // Descrição que aparecerá no extrato do usuário. Apenas 15 caracteres
creditCard: CreditCard(
cardNumber: "4024007153763191", // Número do Cartão do Comprador
holder: 'Teste accept', // Nome do Comprador impresso no cartão
expirationDate: '08/2030', // Data de validade impresso no cartão
securityCode: '123', // Código de segurança impresso no verso do cartão
brand: 'Visa', // Bandeira do cartão
),
),
);
try {
var response = await cielo.createSale(sale);
print('paymentId ${response.payment.paymentId}');
} onCieloExceptioncatch (e) {
print(e);
print(e.message);
print(e.errors[0].message);
print(e.errors[0].code);
}
}
...
...
print("Transação com Cartão Tokenizado");
print("Iniciando pagamento....");
//Objeto de vendaSale sale = Sale(
merchantOrderId: "2020032601", // Numero de identificação do Pedido
customer: Customer(
name: "Comprador crédito simples", // Nome do Comprador
),
payment: Payment(
type: TypePayment.creditCard, // Tipo do Meio de Pagamento
amount: 9, // Valor do Pedido (ser enviado em centavos)
installments: 1, // Número de Parcelas
softDescriptor: "Mensagem", // Descrição que aparecerá no extrato do usuário. Apenas 15 caracteres
creditCard: CreditCard(
cardToken: "db62dc71-d07b-4745-9969-42697b988ccb", // Cartão tokenizado
securityCode: '123', // Código de segurança impresso no verso do cartão
brand: 'Visa', // Bandeira do cartão
)
)
);
try{
var response = await cielo.createSale(sale);
print('paymentId ${response.payment.paymentId}');
paymentId = response.payment.paymentId;
status = response.payment.status;
} onCieloExceptioncatch(e){
print(e.message);
print(e.errors[0].message);
print(e.errors[0].code);
}
...
Transação com Análise de Fraude (AF)
...
print("Transação com Análise de Fraude (AF)");
print("Iniciando pagamento....");
//Objeto de vendaSale sale = Sale(
merchantOrderId: "2020032601", // Numero de identificação do Pedido
customer: Customer(
name: "Comprador crédito AF", // Nome do Comprador
identity: '12345678909', // Número do RG, CPF ou CNPJ do Cliente
identityType: 'CPF', // Tipo de documento de identificação do comprador (CPF ou CNPJ)
email: "compradorteste@live.com", // Email do Comprador
mobile: '5521995760078',
phone: "552125553669",
),
payment: Payment(
type: TypePayment.creditCard, // Tipo do Meio de Pagamento
amount: 9, // Valor do Pedido (ser enviado em centavos)
currency: "BRL", // Moeda na qual o pagamento será feito (BRL)
country: "BRA", // Pais na qual o pagamento será feito
installments: 1, // Número de Parcelas
interest: 'ByMerchant', // Tipo de parcelamento - Loja (ByMerchant) ou Cartão (ByIssuer)
capture: false, // Booleano que identifica que a autorização deve ser com captura automática
authenticate: false, // Define se o comprador será direcionado ao Banco emissor para autenticação do cartão
softDescriptor: "Mensagem", // Descrição que aparecerá no extrato do usuário. Apenas 15 caracteres
creditCard: CreditCard(
cardNumber: "4024007153763191", // Número do Cartão do Comprador
holder: 'Teste accept', // Nome do Comprador impresso no cartão
expirationDate: '08/2030', // Data de validade impresso no cartão
securityCode: '123', // Código de segurança impresso no verso do cartão
brand: 'Visa', // Bandeira do cartão
saveCard: "false", // Booleano que identifica se o cartão será salvo para gerar o token (CardToken)
),
fraudAnalysis: FraudAnalysis(
provider: "cybersource", // Fixo “cybersource”
sequence: "AuthorizeFirst", // Tipo de Fluxo para realização da análise de fraude
sequenceCriteria: "OnSuccess", // Critério do fluxo
captureOnLowRisk: false, // Quando true, captura automática quando o risco de fraude for considerado baixo (Accept)
voidOnHighRisk: false, // Quando true, o estorno deve acontecer automaticamente quando o risco de fraude for considerado alto
totalOrderAmount: 9, // Valor total do pedido
cart: Cart(
items: [
Items(
name: "ItemTeste", // Nome do Produto
quantity: 1, // Quantidade do produto
sku: "201411170235134521346", // Código comerciante identificador do produto
unitPrice: 9// Preço unitário do produto
)
]
),
),
),
);
try {
var response = await cielo.createSale(sale);
print('paymentId ${response.payment.paymentId}');
print('returnCode ${response.payment.returnCode}');
//Obs: FraudAnalysisReasonCode só está disponível em PRODUÇÂO//PRODUCTION/*if(response.payment.returnCode == '00'){
//SANDBOX
/*if(response.payment.returnCode == '4' || response.payment.returnCode == '6'){
print('fraudAnalysisReasonCode ${response.payment.fraudAnalysis.fraudAnalysisReasonCode}');
if(response.payment.fraudAnalysis.fraudAnalysisReasonCode == 100){
print('\ncreditCard ${response.payment.fraudAnalysis}\n');
print('\ncreditCard ${response.payment.fraudAnalysis.replyData}\n');
print('Operação realizada com sucesso!');
} else {
print('Transação não autorizada. Cod.: ${response.payment.fraudAnalysis.fraudAnalysisReasonCode}');
}
} else {
print('Transação não autorizada. Cod.: ${response.payment.returnCode}');
}
}*/print('Operação realizada com sucesso!');
} onCieloExceptioncatch (e) {
print(e);
print(e.message);
print(e.errors[0].message);
print(e.errors[0].code);
}
...
Transação com Boleto
...
print("Operação por Boleto");
print("Gerando boleto....");
//Objeto de vendaSale sale = Sale(
merchantOrderId: "2020032601", // Numero de identificação do Pedido
customer: Customer(
name: "Comprador crédito simples", // Nome do Comprador
identity: "12345678909", // Número do CPF
address: Address(
street: "Avenida Marechal Câmara", // Endereço do Comprador.
number: "160", // Número do endereço do Comprador.
complement: "Sala 934",
zipCode: "22750012", // CEP do endereço do Comprador.
district: "Centro", // Bairro do Comprador.
city: "Rio de Janeiro", // Cidade do endereço do Comprador.
state: "RJ", // Estado do endereço do Comprador.
country: "BRA"// Pais do endereço do Comprador.
)),
payment: Payment(
type: TypePayment.boleto, // Tipo do Meio de Pagamento
amount: 10, // Valor do Pedido (ser enviado em centavos)
provider: "bradesco2", // Banco (A API Aceita apenas boletos Bradesco e Banco do Brasil).
address: "Rua Teste", // Nome do Cedente.
boletoNumber: "123", // Número do Boleto enviado pelo lojista. Usado para contar boletos emitidos (“NossoNumero”).
assignor: "Empresa Teste",
demonstrative: "Desmonstrative Teste", // Texto de Demonstrativo.
expirationDate: "5/1/2015", // Data de expiração do Boleto. Ex. 2020-12-31
identification: "11884926754", // Documento de identificação do Cedente.
instructions: "Aceitar somente até a data de vencimento, após essa data juros de 1% dia.", // Instruções do Boleto.
),
);
try {
var response = await cielo.createSale(sale);
print('paymentId ${response.payment.paymentId}');
print('payment ${response.payment.toJson()}');
print('url do boleto ${response.payment.url}');
print('link de consulta ${response.payment.links[0].href}');
paymentId = response.payment.paymentId;
status = response.payment.status;
setState(() {});
} onCieloExceptioncatch (e) {
print(e);
print(e.message);
print(e.errors[0].message);
print(e.errors[0].code);
}
...
Transação com Google Pay
...
// Para pagamentos com Google Pay, utilize este pacote em conjunto com o pacote "pay", disponível em pub.dev/packages/payprint("Operação por Google Pay");
//Objeto de vendaSale sale = Sale(
merchantOrderId: "2020032601", // Numero de identificação do Pedido
customer: Customer(
name: "Comprador crédito simples", // Nome do Comprador
identity: "12345678909", // Número do CPF
address: Address(
street: "Avenida Marechal Câmara", // Endereço do Comprador.
number: "160", // Número do endereço do Comprador.
complement: "Sala 934",
zipCode: "22750012", // CEP do endereço do Comprador.
district: "Centro", // Bairro do Comprador.
city: "Rio de Janeiro", // Cidade do endereço do Comprador.
state: "RJ", // Estado do endereço do Comprador.
country: "BRA"// Pais do endereço do Comprador.
)),
payment: Payment(
type: TypePayment.creditCard, // Tipo do Meio de Pagamento
amount: 9, // Valor do Pedido (ser enviado em centavos)
installments: 1, // Número de Parcelas
softDescriptor: "Mensagem", // Descrição que aparecerá no extrato do usuário. Apenas 15 caracteres
wallet: Wallet(
type: TypePayment.androidPay, //Nome da provedora de Meio de Pagamento. Para transações Google Pay, utilize “AndroidPay”
walletKey: "{\"encryptedMessage\": \"ZW5jcnlwdGVkTWVzc2FnZQ==\",""\"ephemeralPublicKey\": \"ZXBoZW1lcmFsUHVibGljS2V5\",\"tag\": \"c2lnbmF0dXJl\"}", // Preencher com o valor do parâmetro “signedMessage” retornado pelo Google Pay
additionalData: AdditionalData(
signature: "ZXBoZW1lcmFsUHVibGljS2V5"//Preencher com o valor do parâmetro “signature” retornado pelo Google Pay
)
)
),
);
try {
var response = await cielo.createSale(sale);
print('paymentId ${response.payment.paymentId}');
print('payment ${response.payment.toJson()}');
print('url do boleto ${response.payment.url}');
print('link de consulta ${response.payment.links[0].href}');
paymentId = response.payment.paymentId;
status = response.payment.status;
setState(() {});
} onCieloExceptioncatch (e) {
print(e);
print(e.message);
print(e.errors[0].message);
print(e.errors[0].code);
}
...
Funções opcionais
getReturn(paymentId) - Função para consulta
enableCapture(paymentId) - Função para aprovar a compra
enableVoid(paymentId) - Função para cancelar a compra
Consulte o aplicativo de exemplo deste plugin para obter um exemplo completo. Consulte LICENÇA para obter detalhes.