Giter Club home page Giter Club logo

pagseguro-php-sdk's Introduction

Biblioteca de integração PagSeguro para PHP

Build Status Total Downloads Latest Stable Version License Join the chat at https://gitter.im/sounoob/pagseguro-php-sdk

Uma biblioteca do PagSeguro que qualquer noob pode usar, editar, contribuir, melhorar e seja lá o que eles quiserem fazer...

A ideia disso é ter um lugar onde terá o suporte a todas APIs disponíveis do PagSeguro, de uma forma onde deverá ser mais atualizada que a versão oficial.

Aqui seu pull request é bem-vindo, desde que mantenha a ideia inicial da API, manter ela de um jeito que qualquer noob se sinta em casa.

O SDK oficial é lindo, mas é difícil de editar os arquivos, quem não manja de PHP pode ficar perdido. A nossa, usaremos a simplicidade, não precisa ser rápido nem lindo, só precisa funcionar e estar bem atualizado o resto vamos refratorando...

Instalação

Nota: Recomendamos a instalação via Composer. Você também pode baixar o repositório como [arquivo zip] ou fazer um clone via Git.

Instalação via Composer

Para baixar e instalar o Composer no seu ambiente acesse https://getcomposer.org/download/ e caso tenha dúvidas de como utilizá-lo consulte a [documentação oficial do Composer].

É possível instalar a biblioteca pagseguro-php-sdk([sounoob/pagseguro-php-sdk]) via Composer de duas maneiras:

  • Executando o comando para adicionar a dependência automaticamente
    php composer.phar require sounoob/pagseguro-php-sdk
    
    Caso tenha composer instalado direto na sua máquina
  composer require sounoob/pagseguro-php-sdk

OU

  • Adicionando a dependência ao seu arquivo composer.json
    {
        "require": {
           "sounoob/pagseguro-php-sdk" : ">=1.0"
        }
    }

Instalação manual

  • Baixe o repositório como [arquivo zip] ou faça um clone;
  • Descompacte os arquivos em seu computador;
  • Execute o comando php composer.phar install no local onde extraiu os arquivos.

Instalação sem composer

  • Baixe o repositório como [arquivo zip] ou faça um clone;
  • Descompacte os arquivos em seu computador;
  • Renomei a pasta vendor_alt para vendor
  • Baixe o projeto core e copie o conteúdo da pasta source para dentro da nossa pasta source.
  • Baixe o projeto boleto e copie o conteúdo da pasta source para dentro da nossa pasta source.
  • Baixe o projeto de busca de transação e copie o conteúdo da pasta source para dentro da nossa pasta source.

Como usar

O diretório example contém exemplos das mais diversas chamadas à API do PagSeguro utilizando a biblioteca e o diretório source contém a biblioteca propriamente dita (código fonte).

pagseguro-php-sdk's People

Contributors

gitter-badger avatar grolandao avatar sena avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pagseguro-php-sdk's Issues

Checkout Transparente - Cartão de Crédito - Problema de formatação no installmentValue

Olá,

No arquivo directPayment\CreditCard.php, função calcInstallmentValue() é necessário formatar a variável $this->post['installmentValue'] para evitar o erro 53041 (installment value invalid value) que ocorre somente quando o valor da parcela termina com zeros. Ex.: (49.00 / 49.90). Sem essa formatação a library está enviando o valor desformatado, 49 ou 49.9 respectivamente. Alteração sugerida:

De:
private function calcInstallmentValue()
{
$this->post['installmentValue'] = 0;

    foreach ($this->item as $item) {
        $this->post['installmentValue'] += ($item['amount'] * $item['quantity']);
    }
}

Para:
private function calcInstallmentValue()
{
$this->post['installmentValue'] = 0;

    foreach ($this->item as $item) {
        $this->post['installmentValue'] += ($item['amount'] * $item['quantity']);
    }
			$this->post['installmentValue'] = number_format($this->post['installmentValue'], 2, '.', '');
}

Obrigado.

Namespace

Será um bom momento termos namespaces?
Dependendo do rumo do projeto poderá causar conflitos com o projeto de quem estiver usando.

Woocommerce

Alguém já usou isso com Woocommerce? Minha ideia vai ser usar isso e tentar fazer uma emissão de boletos mensalmente, para uma assinatura

Carrinho de compras.

Elaboração de uma tela de carrinho de compras com a disposição da imagem abaixo:
image

No lugar dos dados do usuário teríamos um formulário com os dados do usuário.

No final um botão comprar esse botão deve pegar os dados digitados no formulário e os dados mockados do carinho e passar para classe payment.

Suporte a criação de planos

Precisamos de montar algo no padrão da classe payment.
Em this->data precisamos de um array seguindo a estrutura do json no final desse comentário.

Não é necessário fazer parse de json, a classe de conexão deverá converter o array em json.

Referencia:
https://dev.pagseguro.uol.com.br/referencia-da-api/api-de-pagamentos-pagseguro#!/ws_pagseguro_uol_com_br/request_xml

{
"redirectURL": "http://www.seusite.com.br/assinatura-concluida",
"reference": "REF#123",
"preApproval": {
"name": "Nome do Plano",
"charge": "AUTO",
"period": "MONTHLY",
"amountPerPayment": 200,
"membershipFee": 150,
"trialPeriodDuration": 28,
"expiration": {
"value": 10,
"unit": "MONTHS"
},
"details": "string",
"maxAmountPerPeriod": 100,
"maxAmountPerPayment": 100,
"maxTotalAmount": 100,
"maxPaymentsPerPeriod": 3,
"initialDate": "2017-07-31",
"finalDate": "2017-07-31",
"dayOfYear": "03-27",
"dayOfMonth": 1,
"dayOfWeek": "MONDAY",
"cancelURL": "http://seusite.com.br/cancelamento"
},
"reviewURL": "http://lojamodelo.com.br/revisar",
"maxUses": 500,
"receiver": {
"email": "[email protected]"
}
}

Problema ao rodar em produção

Usei a lib para integrar a um sistema que estou fazendo, e testei todo em Sandbox, quando fui alterar para produção, estou recebendo o erro "Unauthorized".

Conferi o Token, mudei o método para "Config::setProduction();" e sempre me retorna o erro abaixo;

Fatal error: Uncaught Exception: E-mail or token is invalid in this environment: Sandobx in(...)

Estranho é que o erro retornado não está me retornando o "Enviroment" correto.

Onde eu estou errando? Lembrando que no Sandbox funciona corretamente.

Trocar setShippingType por metodos mais declarativos

Esperar o noob lembrar quando usar o 1, 2 ou 3, pode ser muita coisa.

Talvez, algo como os exemplos abaixo ajudasse um pouco mais.

$this->setShippingTypePAC(); //$this->setShippingType(1);
$this->setShippingTypeSedex(); //$this->setShippingType(2);
$this->setShippingTypeOther(); //$this->setShippingType(3);

@grolandao o que acha?

Composer

Precisamos de um composer.json pedindo um phpunit.
Será necessário para rodar no travis.org

API Boleto retorna Exceção: API is not available in sandbox environment

Olá caros amigos e colegas de profissão!

Estou tentando os testes para boleto, entretanto de acordo com a exceção: "API is not available in sandbox environment" não poderei testar via sandbox... ?

Eu fiz uma integração com a API deles, porém não há como alterar a data de vencimento nem descrição. Alguém tem uma luz ?

Sandbox ou Produção

Nos exemplos disponíveis não encontrei como informar ao código se é modo sandbox ou produção, como que faço isso?

Erro na API de Boletos

Estou tentando utilizar a API de boletos mas o retorno que estou recebendo é sempre

stdClass Object ( [timestamp] => 2018-08-08T20:40:39.598+0000 [status] => 500 [error] => Internal Server Error [exception] => org.springframework.dao.IncorrectResultSizeDataAccessException [message] => result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: result returns more than one elements [path] => /recurring-payment/boletos )

Inicialmente tentei enviar um post com o json sem utilizar nenhuma biblioteca e recebi este erro, então decidi usar o SDK do pagseguro e por fim utilizei este aqui e nas 3 tentativas recebo o mesmo erro, não acho que estou enviando informações incorretas porque quando mando algum dado incorreto ou deixo de enviar um dado obrigatório o retorno vem com uma mensagem bem direta.

Escrevo essa issue na esperança de que possam me ajudar a descobrir qual o problema.

O projeto ainda está ativo?

Olá! Quero usar esse projeto em um serviço, ele está maduro e confiável?

Se sim, poderei estar colaborando ativamente em melhorias ao mesmo tempo que implemento em meu projeto.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.