Esta NOVA biblioteca PHP visa facilitar a integração com a API da maxiPago! Smart Payments. Nossa plataforma permite aos lojistas virtuais aceitarem pagamentos em diversos países da América Latina e nos EUA e inclui funcionalidades como Cobrança Recorrente Automática, Pagamentos com 1-Clique, Estornos Online, Conciliação de Cartões de Crédito e Ferramentas Anti-Fraude. Se quiser saber mais sobre a maxiPago! visite www.maxipago.com.
Esta biblioteca traz todas as funcionalidades atualmente disponívels na plataforma e ela pode ser copiada e usada livremente por Lojas e desenvolvedores.
Para ter uma visão mais aprofundada da nossa API baixe nossa documentação, disponível aqui. Se você está procurando por uma solução de página hospedada ("hosted payment page"), por favor veja a seção smartPages!.
-
Autorização: verifica se o cartão de crédito usado é válido (número, CVV e data de validade) e se o comprador possui limite suficiente para a compra.
-
Captura: confirma a autorização feita para aquele pedido e completa a transação. Se a transação nunca for capturada o Estabelecimento não receberá o dinheiro e o comprador não será cobrado.
Separar a autorização e a captura em dois momentos diferentes é uma ótima maneira de checar se você tem os produtos em estoque ou fazer uma análise de fraude, e ainda assim garantir o pagamento.
-
Venda Direta: combina a autorização e a captura em uma mesma chamada. Ao usar a requisição de Venda Direta você estará fazendo uma autorização no cartão do cliente e imediatamente capturando o valor total.
-
Void:: cancela uma captura antes do fechamento do lote final do dia. Aqui o dinheiro não troca de mãos. Você só pode cancelar a venda até às 23h59 do dia da captura.
-
Estorno: reverte uma transação de cartão de crédito, debitando o valor do Estabelecimento e devolvendo-o ao comprador. O estorno é uma operação financeira e, por esta razão, pode demorar alguns dias para serem aprovados por algumas processadoras.
-
Recorrente: agenda uma transação de cartão de crédito para ser cobrada em um intervalo específico, definido pelo lojista.
-
Armazenar Cartão: guarda um cartão em nosso sistema e devolve um token único, que pode ser usado em novas transações. Isto permite a implantação de pagamentos com 1-clique no seu site.
-
Boleto: Transações feitas com Boleto funcionam de forma diferente das transações com cartão de crédito. Aqui geramos um boleto e retornamos uma URL para comprador que dá acesso ao boleto. Ela pode ser acessada a qualquer momento antes do vencimento do boleto e até 60 dias após o vencimento.
A biblioteca consiste dos seguintes arquivos:
/lib/
|-- maxiPago.php
|-- maxipago
|-- maxiPagoRequest.php
|-- maxiPagoRequestBase.php
|-- maxiPagoResponseBase.php
|-- maxiPagoServiceBase.php
|-- maxiPagoTransaction.php
|-- maxiPagoXmlHandler.php
Copie /lib/maxipago/ para seu servidor. No seu código, inclua o arquivo maxiPago.php, que checa os requisitos mínimos e inclui os demais arquivos necessários:
require_once "./lib/maxiPago.php";
Agora, crie um novo object da classe maxiPago:
$maxiPago = new maxiPago;
Para poder enviar requisições você precisará de Credenciais válidas. Você pode conseguí-las com nosso Suporte.
A maxiPago! oferece um ambiente de teste ("sandbox") totalmente funcional para simular as transações. Você precisa definir o ambiente para enviar as transações, o que pode ser feito enviando "TEST" ou "LIVE":
Para definir as credenciais e o ambiente usado:
$maxiPago->setCredentials("100", "merchant_key");
$maxiPago->setEnvironment("TEST");
O Modo Debug imprime os XMLs de requisição e resposta para que você possa facilmente identificar problemas na chamada. Para habilitar o debug use o método setDebug():
$maxiPago->setDebug(true);
Para mandar uma requisição para a maxiPago! você precisa chamar um dos métodos listados abaixo, passando um array com os parâmetros, como por exemplo:
$data = array(
"processorID" => "1",
"referenceNum" => "ORDER2937283",
"chargeTotal" => "10.00",
"number" => "4111111111111111",
"expMonth" => "07",
"expYear" => "2017",
"cvvNumber" => "123"
);
$maxiPago->creditCardAuth($data);
Há métodos para resgatar cada parte da resposta. Contudo, você também pode chamar o método getResult() para recuperar todos os campos da resposta em um array:
print_r($maxiPago->getResult());
Array
(
[authCode] => 123456
[orderID] => 0AF90437:013CC42DDE87:F5D0:01E1101A
[referenceNum] => ORD29328493
[transactionID] => 422570
[transactionTimestamp] => 1312156800
[responseCode] => 0
[responseMessage] => AUTHORIZED
[avsResponseCode] =>
[cvvResponseCode] =>
[processorCode] => A
[processorMessage] => APPROVED
[errorMessage] =>
)
#####Transações de Cartão de Crédito#####
- Autorização: creditCardAuth()
- Captura: creditCarcCapture()
- Venda Direta (Autorização + Capura): creditCardSale()
- Salvar cartão automaticamente: creditCardAuth() ou creditCardSale()
- Cancelamento (Void): creditCardVoid()
- Estorno: creditCardRefund()
#####Transações Recorrentes#####
- Criar nova recorrência: createRecurring()
- Cancelar uma recorrência: cancelRecurring()
#####Transações de Boleto#####
- Criar boleto: boletoSale()
#####Relatórios#####
- Sondar uma transação: pullReport()
- Sondar uma lista de transações: pullReport()
- Paginar a lista de transações: pullReport()
- Sondar um relatório pendente: pullReport()
#####Cadastro de Cliente / Salvar Cartão#####
- Criar um perfil: (um perfil precisa ser criado antes de salvar um cartão) addProfile()
- Atualizar um perfil: updateProfile()
- Remover um perfil: deleteProfile()
- Adicionar um cartão de crédito: addCreditCard()
- Remover um cartão de crédito: deleteCreditCard()
#####Validação da chamada#####
- Verifica se houve algum erro na chamada: isErrorResponse()
- Verificar se a chamada foi bem sucedida: isTransactionResponse()
#####Principais méthodos de resposta#####
- Traz o Código de Resposta (transações/vendas): getResponseCode()
- Traz o Código de Autorização, se houver: getAuthCode()
- Traz o Order ID criado: getOrderID()
- Traz o Transaction ID criado: getTransactionID()
- Traz a URL do Boleto (somente Brasil): getBoletoUrl()
- Traz o Código da Adquirente: getProcessorCode()
- Traz o Numero de Referência da Adquirente: getProcessorReferenceNumber()
- Traz o TID da Adquirente: getProcessorTransactionID()
- Traz todos os campos da resposta: getResult()
#####Outros métodos de rsposta#####
- Traz a resposta do AVS (somente EUA): getAvsResponseCode()
- Traz o Comando usado na chamada: getCommand()
- Traz o Customer ID criado: getCustomerId()
- Traz a resposta do CVV: (somente EUA) getCvvResponseCode()
- Traz o score da análise de fraude: getFraudScore()
- Traz a mensagem de resposta: getMessage()
- Traz o número de páginas do relatório: getNumberOfPages()
- Traz a página atual do relatório: getPageNumber()
- Traz o token da página do relatório: getPageToken()
- Traz um array com as transações listadas: getReportResult()
- Traz a data/hora do relatório: getTime()
- Traz o Token criado para o Cartão de Crédito: getToken()
- Traz o número de transações no relatório: getTotalNumberOfRecords()
- Traz o Unix time da transação: getTransactionTimestamp()
A documentação completa da API da maxiPago! pode ser encontrada aqui.
Nossa equipe de suporte está à disposição para ajudá-lo com quaisquer assunto, seja sobre funcionalidades de nossa plataforma ou sobre pagamentos em geral. Eles estão disponíveis para clientes e não-clientes no endereço suporte [@] maxipago [.] com.
Biblioteca de integração para o Gateway de Pagamento maxiPago!
Copyright (C) 2013, maxiPago!
Este programa é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opnião) qualquer versão.
Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa, se não, visite http://www.gnu.org/licenses/.