• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    CoffeeScript
  • Created over 12 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Integração ao Pagseguro para sistemas usando o Node.js

node-pagseguro

Integração ao Pagseguro para sistemas usando o Node.js

Instalação

npm install pagseguro

Como usar

Veja um exemplo de projeto utilizando o pacote pagseguro acessando este repositório: https://github.com/emersonjsouza/node-pagseguro-sample.git

Para pagamentos únicos

    //Inicializar a função com o e-mail e token
    var pag, pagseguro;
    pagseguro = require('pagseguro');
    pag = new pagseguro({
        email : '[email protected]',
        token: '95112EE828D94278BD394E91C4388F20'
    });

    //Configurando a moeda e a referência do pedido
    pag.currency('BRL');
    pag.reference('12345');

    //Adicionando itens
    pag.addItem({
        id: 1,
        description: 'Descrição do primeiro produto',
        amount: "4230.00",
        quantity: 3,
        weight: 2342
    });

    pag.addItem({
        id: 2,
        description: 'Esta é uma descrição',
        amount: "5230.00",
        quantity: 3,
        weight: 2342
    });

    pag.addItem({
        id: 3,
        description: 'Descrição do último produto',
        amount: "8230.00",
        quantity: 3,
        weight: 2342
    });

    //Configurando as informações do comprador
    pag.buyer({
        name: 'José Comprador',
        email: '[email protected]',
        phoneAreaCode: '51',
        phoneNumber: '12345678'
    });

    //Configurando a entrega do pedido

    pag.shipping({
        type: 1,
        street: 'Rua Alameda dos Anjos',
        number: '367',
        complement: 'Apto 307',
        district: 'Parque da Lagoa',
        postalCode: '01452002',
        city: 'São Paulo',
        state: 'RS',
        country: 'BRA'
    });

    //Configuranto URLs de retorno e de notificação (Opcional)
    //ver https://pagseguro.uol.com.br/v2/guia-de-integracao/finalizacao-do-pagamento.html#v2-item-redirecionando-o-comprador-para-uma-url-dinamica
    pag.setRedirectURL("http://www.lojamodelo.com.br/retorno");
    pag.setNotificationURL("http://www.lojamodelo.com.br/notificacao");

    //Enviando o xml ao pagseguro
    pag.send(function(err, res) {
        if (err) {
            console.log(err);
        }
        console.log(res);
    });

Assinaturas (Pagamentos Recorrentes)

    // Inicializa o objeto PagSeguro em modo assinatura
    var pagseguro = require('pagseguro'),
        pag = new pagseguro({
            email : '[email protected]',
            token: '95112EE828D94278BD394E91C4388F20',
            mode : 'subscription'
        });

    //Configurando a moeda e a referência do pedido
    pag
        .currency('BRL')
        .reference('12345');

    /***********************************
    *     Configura a assinatura       *
    ************************************/

    //Configurando as informações do comprador
    pag.buyer({
        name: 'José Comprador',
        email: '[email protected]',
        phoneAreaCode: '51',
        phoneNumber: '12345678',
        street: 'Rua Alameda dos Anjos',
        number: '367',
        complement: 'Apto 307',
        district: 'Parque da Lagoa',
        postalCode: '01452002',
        city: 'São Paulo',
        state: 'RS',
        country: 'BRA'
    });

    // Configurando os detalhes da assinatura (ver documentação do PagSeguro para mais parâmetros)
    pag.preApproval({
        // charge: 'auto' para cobranças automáticas ou 'manual' para cobranças
        // disparadas pelo seu back-end
        // Ver documentação do PagSeguro sobre os tipos de cobrança
        charge: 'auto',
        // Título da assinatura (até 100 caracteres)
        name: 'Assinatura de serviços',
        // Descrição da assinatura (até 255 caracteres)
        details: 'Assinatura mensal para prestação de serviço da loja modelo',
        // Valor de cada pagamento
        amountPerPayment: '50.00',
        // Peridiocidade dos pagamentos: Valores: 'weekly','monthly','bimonthly',
        // 'trimonthly','semiannually','yearly'
        period: 'monthly',
        // Data de expiração da assinatura (máximo 2 anos após a data inicial)
        finalDate: '2016-10-09T00:00:00.000-03:00'
    });



    //Configurando URLs de retorno e de notificação (Opcional)
    //ver https://pagseguro.uol.com.br/v2/guia-de-integracao/finalizacao-do-pagamento.html#v2-item-redirecionando-o-comprador-para-uma-url-dinamica
    pag
        .setRedirectURL("http://www.lojamodelo.com.br/retorno")
        .setNotificationURL("http://www.lojamodelo.com.br/notificacao");

    // Configurando URL de revisão dos termos de assinatura (Opcional)
    pag.setReviewURL("http://www.lojamodelo.com.br/revisao");

    //Enviando o xml ao pagseguro
    pag.send(function(err, res) {
        if (err) {
            console.log(err);
        }
        console.log(res);
    });

Modo Sandbox

O modo Sandbox do PagSeguro (hoje, 09/10/2014, em beta) permite o desenvolvedor a testar seu código usando o serviço do PagSeguro sem disparar transações reais mas ainda recebendo notificações. Por enquanto ele só dá suporte a pagamentos padrão, logo para testar assinaturas ainda é necessário realizar uma transação real.

Para utilizar o modo Sandbox, basta inicializar a biblioteca com a opção mode : 'sandbox' como no exemplo abaixo e utilizá-la para gerar pagamentos avulsos.

    // Inicializa o objeto PagSeguro em modo assinatura
    var pagseguro = require('pagseguro'),
        pag = new pagseguro({
            email : '[email protected]',
            token: '95112EE828D94278BD394E91C4388F20',
            mode : 'sandbox'
        });

É preciso gerar um token específico para o modo Sandbox na Página do Sandbox do PagSeguro

Changelog

  • v0.1.0 - Assinaturas no PagSeguro
    • Novo construtor aceita um objeto de configuração ao invés dos argumentos de e-mail e token. A maneira antiga ainda é válida, mas está obsoleta e gerará um aviso no console.
    • A configuração aceita três modos de pagamento (atributo mode):
      • 'payment' : Pagamento único padrão do PagSeguro (Padrão)
      • 'subscription' : Modo de assinatura para pagamentos recorrentes
      • 'sandbox' : Modo de testes do PagSeguro (ver https://sandbox.pagseguro.uol.com.br/)
    • Nova função para configurar assinaturas: pag.preApproval(config)
    • Caso a função addItem() seja chamada em modo subscription, é levantada uma exceção
    • Caso a função preApproval() seja chamada em modo payment ou sandbox, é levantada uma exceção
    • Caso a função setReviewURL() seja chamada em modo payment ou sandbox, é levantada uma exceção

More Repositories

1

node-tar.gz

⚠️ DEPRECATED ⚠️ Native gzip compression and decompression utility for Node.js.
JavaScript
158
star
2

rust-webview

Tiny cross-platform UI library for Rust that uses a webview for rendering HTML5
Objective-C
77
star
3

node-portastic

Find open ports programmatically with Node.js
JavaScript
76
star
4

rackety

Blazing fast in-memory key/value storage
Rust
10
star
5

node-bolty

Binary object serialization. Inspired by Procotol Buffers.
JavaScript
10
star
6

rust-endless-jumper

A game written in Rust
Rust
10
star
7

rust-geopattern

A Rust server that generates geopatterns
Rust
8
star
8

node-lxd

LXD remote client for Node.js
JavaScript
7
star
9

proxy-reverso

Proxy reverso usando o Node.js
JavaScript
6
star
10

example-modular-graphql

An example containing code for building modular GraphQL servers
JavaScript
6
star
11

test-webcamstream

Compartilhe sua webcam em realtime através de um gif.
JavaScript
5
star
12

node-joik

A place for storing Joi schemas and avoid circular dependencies issue
JavaScript
4
star
13

federation-pagination-demo

JavaScript
4
star
14

boilerplate-hapi-mongodb

Boilerplate completo utilizando Hapi e Mongoose
JavaScript
4
star
15

node-eventary

A little helper that aids on the building of middlewares and pluggables applications.
JavaScript
4
star
16

use-lifecycle

A collection of hooks that helps you to track the lifecycle of your components in a similar way to class components.
JavaScript
4
star
17

web-boilerplate

JavaScript
3
star
18

tutorial-leveldb

Tutoriais de LelvelDB para Node.js
JavaScript
3
star
19

pulsar-sys

Rust raw bindings for the official Pulsar C API
C++
3
star
20

node-hapi-faker

Reply with fake data to easily create and mock endpoints
JavaScript
3
star
21

tdc2014

Repositório para a apresentação do TDC2014
JavaScript
2
star
22

tutorial-promises

Exemplos de utilização de promises
JavaScript
2
star
23

opendinary

A self-hosted alternative to Cloudinary
Rust
2
star
24

nodebr.org

Agregador de ideias para a NodeBR
JavaScript
2
star
25

node-hapi-joier

Better Joi error messages for your 400 responses.
JavaScript
1
star
26

tutorial-hapijs-upload

Mostra como receber uploads no Hapijs
JavaScript
1
star
27

node-videostream

Vide streaming com Node.js
JavaScript
1
star
28

alanhoff.com-dust

Repositório para o post sobre Node.js no alanhoff.com
JavaScript
1
star
29

node-gladden

A Joi registry and dependency manager for all your validation schemas
1
star
30

cs-app

Stuff that I wrote while reading CS:APP
C
1
star
31

node-defe

A simple, 144 bytes, ES5 compatible and standalone implementation of the deprecated Promise.defer() method.
JavaScript
1
star
32

tutorial-bitbucket-deploy

Deploy automático usando o Bitbucket, seu POST hook e o PM2.
JavaScript
1
star
33

blog

Conteúdo do meu blog pessoal
1
star
34

use-boxed-callback

A custom hook for creating immutable callback references and preventing rerenders
JavaScript
1
star