Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[flake8]
max-line-length = 120
exclude=.venv
7 changes: 7 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
language: python
python:
-3.7

install:
-pip install -r requirements-dev.txt

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# API-3.0-Python

SDK API-3.0 Python Cielo
[![Build Status](https://travis-ci.org/CharlesTenorio/API-3.0-Python.svg?branch=master)](https://travis-ci.org/CharlesTenorio/API-3.0-Python)



Expand Down
3 changes: 0 additions & 3 deletions cieloApi3/__init__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
from .environment import *
from .merchant import *

from .sale import *
from .customer import *
from .creditCard import *
from .payment import *

from .recurrentPayment import *

from .cieloEcommerce import *
1 change: 0 additions & 1 deletion cieloApi3/address.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

class Address(object):

def __init__(self):
Expand Down
14 changes: 3 additions & 11 deletions cieloApi3/cieloEcommerce.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

from .request.createSale import CreateSale
from .request.querySale import QuerySale
from .request.updateSale import UpdateSale
Expand All @@ -7,28 +6,27 @@
from .request.deactivateRecorrency import DeactivateRecorrency
from .request.reactivateRecorrency import ReactivateRecorrency


class CieloEcommerce(object):

def __init__(self, merchant, environment):

self.environment = environment
self.merchant = merchant

def create_sale(self, sale):

request = CreateSale(self.merchant, self.environment)

return request.execute(sale)

def capture_sale(self, payment_id, amount = None, service_tax_amount = None):
def capture_sale(self, payment_id, amount=None, service_tax_amount=None):
request = UpdateSale('capture', self.merchant, self.environment)

request.amount = amount
request.service_tax_amount = service_tax_amount

return request.execute(payment_id)

def cancel_sale(self, payment_id, amount = None):
def cancel_sale(self, payment_id, amount=None):
request = UpdateSale('void', self.merchant, self.environment)

request.amount = amount
Expand All @@ -41,27 +39,21 @@ def get_sale(self, payment_id):
return request.execute(payment_id)

def create_card_token(self, creditCard):

request = CreateCardToken(self.merchant, self.environment)

return request.execute(creditCard)

def get_recurrent_payment(self, recurrent_payment_id):

request = QueryRecorrency(self.merchant, self.environment)

return request.execute(recurrent_payment_id)

def deactivate_recurrent_payment(self, recurrent_payment_id):

request = DeactivateRecorrency(self.merchant, self.environment)

return request.execute(recurrent_payment_id)

def reactivate_recurrent_payment(self, recurrent_payment_id):

request = ReactivateRecorrency(self.merchant, self.environment)

return request.execute(recurrent_payment_id)


2 changes: 1 addition & 1 deletion cieloApi3/creditCard.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .objectJSON import ObjectJSON


class CreditCard(ObjectJSON):

def __init__(self, security_code, brand):
Expand Down
1 change: 0 additions & 1 deletion cieloApi3/customer.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

class Customer(object):

def __init__(self, name):
Expand Down
5 changes: 4 additions & 1 deletion cieloApi3/objectJSON.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import json
from future.utils import integer_types

Expand Down Expand Up @@ -38,6 +37,7 @@ def process_name_key(dictionary):

return newDictionary


def capitalize_key(key):
parts = key.split('_')

Expand All @@ -47,6 +47,7 @@ def capitalize_key(key):

return ''.join(newParts)


def remove_none(dado):

if isinstance(dado, dict):
Expand All @@ -56,6 +57,7 @@ def remove_none(dado):

return dado


def remove_none_dict(obj):
retorno = {}
for chave in obj:
Expand All @@ -66,6 +68,7 @@ def remove_none_dict(obj):

return retorno


def remove_none_list(lista):
resposta = []
for linha in lista:
Expand Down
7 changes: 3 additions & 4 deletions cieloApi3/payment.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

from .objectJSON import ObjectJSON

PAYMENTTYPE_CREDITCARD = "CreditCard"
Expand All @@ -10,9 +9,10 @@
PROVIDER_BANCO_DO_BRASIL = "BancoDoBrasil"
PROVIDER_SIMULADO = "Simulado"


class Payment(ObjectJSON):

def __init__(self, amount, installments = 1):
def __init__(self, amount, installments=1):

self.amount = amount
self.service_tax_amount = None
Expand Down Expand Up @@ -48,14 +48,13 @@ def __init__(self, amount, installments = 1):
self.digitable_line = None
self.address = None

#Boleto
# Boleto
self.boleto_number = None
self.assignor = None
self.demonstrative = None
self.identification = None
self.instructions = None


def prepare(self):

if self.credit_card:
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/recurrentPayment.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@

INTERVAL_MONTHLY = "Monthly"
INTERVAL_BIMONTHLY = "Bimonthly"
INTERVAL_QUARTERLY = "Quarterly"
INTERVAL_SEMIANNUAL = "SemiAnnual"
INTERVAL_ANNUAL = "Annual"


class RecurrentPayment(object):

def __init__(self, authorize_now=True):
Expand Down
8 changes: 5 additions & 3 deletions cieloApi3/request/base.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import uuid, json

from future.utils import raise_with_traceback
from requests import Request, Session


class Base(object):

def __init__(self, merchant):
Expand Down Expand Up @@ -36,7 +36,8 @@ def send_request(self, method, uri, data=None, params=None):

response = s.send(prep)

if 'json' in response.headers['Content-Type'].lower():
if 'json' in response:
response.headers['Content-Type'].lower()
answers = response.json()
else:
answers = [{
Expand All @@ -52,6 +53,7 @@ def send_request(self, method, uri, data=None, params=None):

data_send = json.loads(body or 'null')

raise_with_traceback(Exception('\r\n%s\r\nMethod: %s\r\nUri: %s\r\nData: %s' % (''.join(errors), method, response.url, json.dumps(data_send, indent=2))))
raise_with_traceback(Exception('\r\n%s\r\nMethod: %s\r\nUri: %s\r\nData: %s' % (
''.join(errors), method, response.url, json.dumps(data_send, indent=2))))

return answers
2 changes: 1 addition & 1 deletion cieloApi3/request/createCardToken.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class CreateCardToken(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/createSale.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class CreateSale(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/deactivateRecorrency.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class DeactivateRecorrency(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/queryRecorrency.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class QueryRecorrency(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/querySale.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class QuerySale(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/reactivateRecorrency.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class ReactivateRecorrency(Base):

def __init__(self, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/request/updateSale.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .base import Base


class UpdateSale(Base):

def __init__(self, type, merchant, environment):
Expand Down
2 changes: 1 addition & 1 deletion cieloApi3/sale.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

from .objectJSON import ObjectJSON


class Sale(ObjectJSON):

def __init__(self, merchant_order_id):
Expand Down
17 changes: 9 additions & 8 deletions example/saleBoletoComplete.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#-*- coding: utf-8 -*-s
# -*- coding: utf-8 -*-s

import sys

sys.path.insert(0, "./")

from cieloApi3 import *
Expand Down Expand Up @@ -39,18 +40,18 @@

# Criar a venda e imprime o retorno
response_create_sale = cielo_ecommerce.create_sale(sale)
print '----------------------response_create_sale----------------------'
print json.dumps(response_create_sale, indent=2)
print '----------------------response_create_sale----------------------'
print('----------------------response_create_sale----------------------')
print(json.dumps(response_create_sale, indent=2))
print('----------------------response_create_sale----------------------')

# Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
# dados retornados pela Cielo
payment_id = sale.payment.payment_id

# Com o ID do pagamento, podemos fazer uma consulta do pagamento
response_get_sale = cielo_ecommerce.get_sale(payment_id)
print '----------------------response_get_sale----------------------'
print json.dumps(response_get_sale, indent=2)
print '----------------------response_get_sale----------------------'
print('----------------------response_get_sale----------------------')
print(json.dumps(response_get_sale, indent=2))
print('----------------------response_get_sale----------------------')

print '\r\nLink Boleto:', sale.payment.url, '\r\n'
print('\r\nLink Boleto:', sale.payment.url, '\r\n')
17 changes: 9 additions & 8 deletions example/saleBoletoSimple.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#-*- coding: utf-8 -*-s
# -*- coding: utf-8 -*-s

import sys

sys.path.insert(0, "./")

from cieloApi3 import *
Expand Down Expand Up @@ -30,18 +31,18 @@

# Criar a venda e imprime o retorno
response_create_sale = cielo_ecommerce.create_sale(sale)
print '----------------------response_create_sale----------------------'
print json.dumps(response_create_sale, indent=2)
print '----------------------response_create_sale----------------------'
print('----------------------response_create_sale----------------------')
print(json.dumps(response_create_sale, indent=2))
print('----------------------response_create_sale----------------------')

# Com a venda criada na Cielo, já temos o ID do pagamento, TID e demais
# dados retornados pela Cielo
payment_id = sale.payment.payment_id

# Com o ID do pagamento, podemos fazer uma consulta do pagamento
response_get_sale = cielo_ecommerce.get_sale(payment_id)
print '----------------------response_get_sale----------------------'
print json.dumps(response_get_sale, indent=2)
print '----------------------response_get_sale----------------------'
print('----------------------response_get_sale----------------------')
print(json.dumps(response_get_sale, indent=2))
print('----------------------response_get_sale----------------------')

print '\r\nLink Boleto:', sale.payment.url, '\r\n'
print('\r\nLink Boleto:', sale.payment.url, '\r\n')
Loading