Japle / python-pagseguro

Integração com a API v2 de pagamentos e notificações do Pagseguro utilizando requests.
MIT License
172 stars 69 forks source link

Esta biblioteca possui suporte a assinaturas? #41

Closed rodfersou closed 8 years ago

rodfersou commented 8 years ago

https://pagseguro.uol.com.br/para_seu_negocio/assinaturas.jhtml

rochacbruno commented 8 years ago

@rodfersou sim!

https://github.com/rochacbruno/python-pagseguro/blob/master/pagseguro/__init__.py#L139

basta informar o dicionario pre_approval={'period': "MONTHLY, ...."} com os atributos

Outros dados opcionais são:max_amount_per_payment, max_payments_per_period, max_amount_per_period, initial_date, final_date, max_total_amount

E você ainda pode passar outros atributos raw como na documentacao da API.

rodfersou commented 8 years ago

maravilha! obrigado

rochacbruno commented 8 years ago

Vou atualizar a versão no PyPi hoje.

rochacbruno commented 8 years ago

por enquanto pode usar

pip install https://github.com/rochacbruno/python-pagseguro/tarball/master

rodfersou commented 8 years ago

Eu tentei fazer alguns testes no sandbox usando essa sua sugestão de configuração (e meu token do sandbox..)

Sempre recebo a seguinte mensagem de erro: 11024 - Items invalid quantity.

Algumas pessoas também reclamaram do sandbox, talvez não seja usável para testar assinaturas: http://forum.pagseguro.uol.com.br/t/11625742/erro-messageitems-invalid-quantitymessage

Confirma?

rodfersou commented 8 years ago

@rochacbruno eu removi as mensagens questionando o release por que depois de ler um pouco do código na revisão do release consegui me encontrar..

De qualquer forma obrigado

rodfersou commented 8 years ago

Consegui dessa forma:

from pagseguro import PagSeguro
from pagseguro.configs import ConfigSandbox

pg = PagSeguro(
    token=TOKEN, email=EMAIL, config=ConfigSandbox())
pg.pre_approval = dict(
    amount_per_payment='30.00',
    charge='manual',
    name='XYZ Magazine Subscription',
    period='MONTHLY',
    max_total_amount='30.00',
    max_amount_per_period='30.00',
    final_date='2016-10-31T00:00:00-02:00'
)
pg.items = [
    {'id': '0001', 'description': 'XYZ Magazine Subscription', 'amount': '30.00', 'quantity': 1}
]
pg.sender = {
    'email': 'c{ID}@sandbox.pagseguro.com.br'
}
pg.redirect_url = '{minha_url}'
response = self.pg.checkout()
print response.payment_url

Mas quando tento abrir a URL aparece a mensagem de Página não encontrada.

ellisonleao commented 8 years ago

Apenas uma pequena correção. Na versão na master mudamos a forma de instanciar a configuração. Agora o config é apenas um dict, onde você pode fazer alguns overrides em algumas variáveis pré-definidas:

Ex:

from pagseguro import PagSeguro

config = {'sandbox': True}
pg = PagSeguro(token=TOKEN, email=EMAIL, config=config)

ver https://github.com/rochacbruno/python-pagseguro/blob/master/pagseguro/config.py

rodfersou commented 8 years ago

Mudei somente as configurações do sandbox para produção, e a página apareceu.

Obrigado

Hernany commented 6 years ago

O atributo CHARGE recebe qual valor para a recorrencia controlada pelo Pagseguro. Seria "auto" como na documentação? Só está funcionando como "manual". Como "auto" o fluxo é interrompido!