israel-nogueira / asaas
Api de integração a plataforma asaas
dev-main
2023-06-13 18:14 UTC
This package is auto-updated.
Last update: 2024-10-13 21:06:55 UTC
README
Instalação |
Cobranças
Atualização Cadastral |
Sub clientes |
Sub contas |
Assinatura
Esta é uma classe super simples dos serviços ASAAS.
Sem fru-fru, apenas o que realmente é útil em um sistema/website.
Instalação
Instale via composer.
composer require israel-nogueira/asaas
Crie um arquivo NA RAIZ do projeto var/www/html/.env
e coloque as seguintes informações:
# E-mail da pessoa responsável pelo seu suporte ASAAS ASAAS_NOME_DO_SUPORTE=Leticia Schmitt ASAAS_EMAIL_DO_SUPORTE=leticia.schmitt.rocha@asaas.intercom-mail.com # Aqui são os dados de acesso da sua conta principal do ASAAS ASAAS_EMAIL_CONTA_PAI=exemplo@gmail.com ASAAS_SENHA_CONTA_PAI=minha-senha-123 ASAAS_SANDBOX="https://sandbox.asaas.com" ASAAS_PRODUCAO="https://www.asaas.com" ASAAS_APIKEY_SANDBOX="___APIKEY___" ASAAS_APIKEY_PRODUCAO="___APIKEY___" # É aqui que você vai habilitar o ambiente de produção ou teste ASAAS_AMBIENTE=ASAAS_SANDBOX # ASAAS_SANDBOX | ASAAS_PRODUCAO ASAAS_APIKEY=ASAAS_APIKEY_SANDBOX # ASAAS_APIKEY_SANDBOX | ASAAS_APIKEY_PRODUCAO
! ATENÇÃO !
Todas as funções dessa classe retornam os dados em formatoJSON
sem tratamentos, da mesma forma que o end-point ASAAS nos retorna.
Isso para que você possa integrar tranquilamente com as suas funções internas;
GERANDO UMA NOVA COBRANÇA
<?php include "vendor\autoload.php"; use IsraelNogueira\Asaas\asaas; use lib\cors\meu_sistema; $nova_cobranca = asaas::novaCobranca([ "customer"=> "cus_000005158308", // Esse dado vem no cadastro do usuario "billingType"=> "BOLETO", // BOLETO | CREDIT_CARD | PIX | UNDEFINED "dueDate"=> "2023-03-01", // Vencimento "value"=> 100, // Valor "description"=> "Pedido 056984", // Descrição "externalReference"=> "056984", // Referência externa do seu sistema "discount"=> [ "dueDateLimitDays"=> 12, // Dias antes do vencimento para aplicar desconto. "type"=> "FIXED", // PERCENTAGE | FIXED "value"=> 10, // Valor percentual ou fixo de desconto a ser aplicado sobre o valor da cobrança ], "fine"=> [ "value"=> 1, // VALOR de multa sobre o valor da cobrança para pagamento após o vencimento "type"=> "FIXED" // PERCENTAGE | FIXED ], "interest"=> [ "value"=> 2 //% de juros ao mês sobre o valor da cobrança para pagamento após o vencimento ], "postalService"=> false, /* |------------------------------------------------------------------ | se for por {CREDIT_CARD} e já houver um cartão toknizado |------------------------------------------------------------------ */ "creditCardToken"=> "76496073-536f-4835-80db-c45d00f33695", "remoteIp"=> "116.213.42.532", /* |------------------------------------------------------------------ | se for por {CREDIT_CARD} e não tenha um cartão toknizado, | será necessário cadastrar os dados "creditCard" + "creditCardHolderInfo" |------------------------------------------------------------------ */ "creditCard"=> [ "holderName"=> "marcelo h almeida", "number"=> "5162306219378829", "expiryMonth"=> "05", "expiryYear"=> "2021", "ccv"=> "318" ], "creditCardHolderInfo"=> [ "name"=> "Marcelo Henrique Almeida", "email"=> "marcelo.almeida@gmail.com", "cpfCnpj"=> "24971563792", "postalCode"=> "89223-005", "addressNumber"=> "277", "addressComplement"=> null, "phone"=> "4738010919", "mobilePhone"=> "47998781877" ] ]); // Faça o que quiser agora com os retornos da API: meu_sistema::cadastra_nova_cobranca( $nova_cobranca ); /* |------------------------------------------------- | RECUPERANDO MINHA WALLET |------------------------------------------------- */ $MY_WALLET = asaas::getWallet() print_r($MY_WALLET); ?>
CLIENTES
<? include "vendor\autoload.php"; use IsraelNogueira\Asaas\asaas; use lib\cors\meu_sistema; /* |------------------------------------------------- | LISTA DE CLIENTES |------------------------------------------------- */ $_LISTA = asaas::listaCliente() print_r($_LISTA); /* |------------------------------------------------- | RETORNA DETALHES DO CLIENTE |------------------------------------------------- */ $_DETALHES_ = asaas::getCliente($UID_CLIENTE); print_r($_DETALHES_); /* |------------------------------------------------- | CRIAR NOVO CLIENTE |------------------------------------------------- */ $novo_cliente = asaas::novoCliente([ 'name'=>'José de Abreu', 'email'=>'jose@feats.com.br', 'phone'=>'5541000000000', 'mobilePhone'=>'5541000000000', 'cpfCnpj'=>'43856881174', 'company'=>'Empresa do zé', 'postalCode'=>'81470275', 'addressNumber'=>'72', 'complement'=>'23', 'externalReference'=>'4567', 'additionalEmails'=>'', 'municipalInscription'=>'', 'stateInscription'=>'', 'observations'=>'', ]) /* |------------------------------------------------- | DETELA UM CLIENTE |------------------------------------------------- */ asaas::deleteCliente($UID_CLIENTE); /* |------------------------------------------------- | ALTERA DADOS DE UM CLIENTE |------------------------------------------------- | | Ali eu altero apenas o email, porém todos os dados | que foram usados na criação do cliente poderão ser | inseridos na array no 2º parametro para serem atualizados | */ asaas::updateCliente($UID_CLIENTE,['email'=>'user@exemplo.com']);
ATUALIZAÇÃO CADASTRAL
<? include "vendor\autoload.php"; use IsraelNogueira\Asaas\asaas; use lib\cors\meu_sistema; $novo_cliente = asaas::setDadosComerciais([ "personType"=> "JURIDICA", "cpfCnpj"=> "66625514000140", "birthDate"=> null, "companyType"=> "MEI", "email"=> "emaildaempresa@gmail.com", "phone"=> "11 32300606", "mobilePhone"=> "11 988451155", "postalCode"=> "89223005", "address"=> "Av. Rolf Wiest", "addressNumber"=> "659", "complement"=> "Sala 201", "province"=> "Bom Retiro", ]) // Faça o que quiser agora com os retornos da API: meu_sistema::atualiza_cadastro( $novo_cliente );
SUB-CLIENTES
SUB-CONTAS
<? include "vendor\autoload.php"; use IsraelNogueira\Asaas\asaas; use lib\cors\meu_sistema; /* |------------------------------------------------- | RETORNA JSON COM A LISTA DE SUB-CONTAS |------------------------------------------------- */ $_LISTA = asaas::listaSubContas(); /* |------------------------------------------------- | RETORNA JSON COM DETALHES DA CONTA REQUIRIDA |------------------------------------------------- */ $_DADOS = asaas::getSubConta($_UID); /* |------------------------------------------------- | CRIA UMA NOVA SUB-CONTA E RETORNA OS DADOS |------------------------------------------------- */ $_RETORNO = asaas::novaSubConta([ "name" =>"Nome Completo Do Cliente", "email" =>"myaccount@example.com", "cpfCnpj" =>"15571534000145", "birthDate" =>"2012-05-04", "companyType" =>"LIMITED",//MEI | LIMITED | INDIVIDUAL | ASSOCIATION "phone" =>"", "mobilePhone" =>"45 9 9354 4738", "address" =>"Rua das Laranjeiras", "addressNumber" =>"41", "complement" =>"Sala 502", "province" =>"Bairro do Limoeiro", "postalCode" =>"50050550" ])
ASSINATURA
<? include "vendor\autoload.php"; use IsraelNogueira\Asaas\asaas; use lib\cors\meu_sistema; /* |------------------------------------------------- | GERAR CARNÊ DE ASSINATURA |------------------------------------------------- | Para gerar os carnês gerados a partir de uma assinatura em formato PDF, | é necessário que você tenha o ID da assinatura retornado pelo Asaas. | */ header("Content-Type: application/pdf"); die(asaas::getCarneAssinatura($_ID,['month'=>3,'year'=>2023])); /* |------------------------------------------------- | LISTAR COBRANÇAS DE UMA ASSINATURA |------------------------------------------------- | Para listar as cobranças geradas a partir de uma assinatura. */ $_LISTA = asaas::listaCobrancaAssinatura($_ID); /* |------------------------------------------------- | RETORNA DADOS DE UMA ASSINATURA |------------------------------------------------- */ $_DADOS = asaas::getAssinatura($_ID); /* |------------------------------------------------- | LISTAR ASSINATURAS |------------------------------------------------- | Diferente da recuperação de uma assinatura específica, | este método retorna uma lista paginada com todas | as assinaturas para os filtros informados */ $_LISTA = asaas::listaAssinaturas([ 'customer'=>null, //FILTRAR PELO IDENTIFICADOR ÚNICO DO CLIENTE 'billingType'=>null, //FILTRAR POR FORMA DE PAGAMENTO 'offset'=>null, //INDEX INICIAL DA LISTA 'limit'=>null, //NÚMERO DE ELEMENTOS DA LISTA (MAX: 100) 'includeDeleted'=>false, //TRUE PARA RECUPERAR TAMBÉM AS ASSINATURAS REMOVIDAS 'externalReference'=>null, //FILTRAR PELO IDENTIFICADOR DO SEU SISTEMA ]) /* |------------------------------------------------- | CRIAR NOVA ASSINATURA |------------------------------------------------- | Ao criar a assinatura a primeira mensalidade será | gerada vencendo na data enviada no parâmetro nextDueDate. | */ asaas::novaAssinatura([ "customer"=> $UID_CLIENTE, // Uid do cliente "externalReference"=> "2345", // Referencia externa do seu sistema "split"=>[ [ 'walletId'=>'',// Wallet de quem receberá 'fixedValue'=>'',// valor 'percentualValue'=>'',// % sobre o valor líquido da cobrança ], [ 'walletId'=>'', 'fixedValue'=>'', 'percentualValue'=>'', ], ] "maxPayments"=> 7, //Número máximo de mensalidades a serem geradas para esta assinatura "billingType"=> "PIX",//BOLETO | CREDIT_CARD | PIX | UNDEFINED "nextDueDate"=> "2023-02-28", //Vencimento da 1ª mensalidade "value"=> 19.9, // VALOR "cycle"=> "WEEKLY", // WEEKLY (Semanal) | BIWEEKLY (Quinzenal) | MONTHLY (Mensal) | QUARTERLY (Trimestral) | SEMIANNUALLY (Semestral) | YEARLY (Anual) "description"=> "Assinatura Plano Pró", "discount"=> [ "dueDateLimitDays"=> 12, //Dias antes do vencimento para aplicar desconto. "type"=> "FIXED", // PERCENTAGE | FIXED "value"=> 10, //Valor percentual ou fixo de desconto a ser aplicado sobre o valor da cobrança ], "fine"=> [ "value"=> 1, // VALOR de multa sobre o valor da cobrança para pagamento após o vencimento "type"=> "FIXED" // PERCENTAGE | FIXED ], "interest"=> [ "value"=> 2 //% de juros ao mês sobre o valor da cobrança para pagamento após o vencimento ] ]) /* |------------------------------------------------- | ATUALIZA UMA ASSINATURA |------------------------------------------------- */ asaas::updateAssinatura($ID_ASSINATURA, [ "billingType" => "BOLETO", // BOLETO | CREDIT_CARD | PIX | UNDEFINED "nextDueDate" => "2017-06-15", // Vencimento da próxima mensalidade a ser gerada "value" => 29.9, // VALOR "cycle" => "MONTHLY", // WEEKLY (Semanal) | BIWEEKLY (Quinzenal) | MONTHLY (Mensal) | QUARTERLY (Trimestral) | SEMIANNUALLY (Semestral) | YEARLY (Anual) "description" => "Assinatura Plano Pró", "updatePendingPayments" => true, //true para atualizar mensalidades já existentes com o novo valor ou forma de pagamento "discount" => [ "value" => 10, //Valor percentual ou fixo de desconto "type" => "FIXED", // PERCENTAGE | FIXED "dueDateLimitDays" => 0, // Dias antes do vencimento para aplicar desconto ], "fine" => [ "value" => 1, // VALOR de multa sobre o valor da cobrança para pagamento após o vencimento "type" => "FIXED", // PERCENTAGE | FIXED ], "interest" => [ "value" => 2, //% de juros ao mês sobre o valor da cobrança para pagamento após o vencimento ], ]); /* |------------------------------------------------- | ATUALIZA UMA ASSINATURA |------------------------------------------------- */ asaas::deleteAssinatura($ID_ASSINATURA);