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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*.pyc
*.*~
*$py.class

# C extensions
Expand Down
90 changes: 45 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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
Expand All @@ -87,15 +87,15 @@ payment_id = sale.payment.payment_id
# Com o ID do pagamento, podemos fazer sua captura,
# se ela não tiver sido capturada ainda
response_capture_sale = cielo_ecommerce.capture_sale(payment_id, 15700, 0)
print '----------------------response_capture_sale----------------------'
print json.dumps(response_capture_sale, indent=2)
print '----------------------response_capture_sale----------------------'
print('----------------------response_capture_sale----------------------')
print(json.dumps(response_capture_sale, indent=2))
print('----------------------response_capture_sale----------------------')

# E também podemos fazer seu cancelamento, se for o caso
response_cancel_sale = cielo_ecommerce.cancel_sale(payment_id, 15700)
print '---------------------response_cancel_sale---------------------'
print json.dumps(response_cancel_sale, indent=2)
print '---------------------response_cancel_sale---------------------'
print('---------------------response_cancel_sale---------------------')
print(json.dumps(response_cancel_sale, indent=2))
print('---------------------response_cancel_sale---------------------')
```


Expand Down Expand Up @@ -139,9 +139,9 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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----------------------')



Expand All @@ -152,15 +152,15 @@ payment_id = sale.payment.payment_id
# Com o ID do pagamento, podemos fazer sua captura,
# se ela não tiver sido capturada ainda
response_capture_sale = cielo_ecommerce.capture_sale(payment_id, 15700, 0)
print '----------------------response_capture_sale----------------------'
print json.dumps(response_capture_sale, indent=2)
print '----------------------response_capture_sale----------------------'
print('----------------------response_capture_sale----------------------')
print(json.dumps(response_capture_sale, indent=2))
print('----------------------response_capture_sale----------------------')

# E também podemos fazer seu cancelamento, se for o caso
response_cancel_sale = cielo_ecommerce.cancel_sale(payment_id, 15700)
print '---------------------response_cancel_sale---------------------'
print json.dumps(response_cancel_sale, indent=2)
print '---------------------response_cancel_sale---------------------'
print('---------------------response_cancel_sale---------------------')
print(json.dumps(response_cancel_sale, indent=2))
print('---------------------response_cancel_sale---------------------')



Expand All @@ -169,9 +169,9 @@ recurrent_payment_id = sale.payment.recurrent_payment.recurrent_payment_id

# Consulta informações da venda recorrente
response_get_recurrent_payment = cielo_ecommerce.get_recurrent_payment(recurrent_payment_id)
print '---------------------response_get_recurrent_payment---------------------'
print json.dumps(response_get_recurrent_payment, indent=2)
print '---------------------response_get_recurrent_payment---------------------'
print('---------------------response_get_recurrent_payment---------------------')
print(json.dumps(response_get_recurrent_payment, indent=2))
print('---------------------response_get_recurrent_payment---------------------')
```


Expand Down Expand Up @@ -215,9 +215,9 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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----------------------')
```

### Gerando token de cartão de crédito e criando um pagamento com o token
Expand Down Expand Up @@ -245,13 +245,13 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# Criar a venda e imprime o retorno
response_create_card_token = cielo_ecommerce.create_card_token(credit_card)
print '----------------------response_create_card_token----------------------'
print json.dumps(response_create_card_token, indent=2)
print '----------------------response_create_card_token----------------------'
print('----------------------response_create_card_token----------------------')
print(json.dumps(response_create_card_token, indent=2))
print('----------------------response_create_card_token----------------------')

# Com o cartão gerado token na Cielo, já temos o Token do cartão para uma futura cobrança
new_card_token = credit_card.card_token
print 'New Card Token:', new_card_token
print('New Card Token:', new_card_token)

# Crie uma instância de Sale informando o ID do pagamento
sale = Sale('456')
Expand All @@ -272,9 +272,9 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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----------------------')
```

### Gerando um boleto simples
Expand Down Expand Up @@ -306,21 +306,21 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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')
```

### Gerando um boleto completo
Expand Down Expand Up @@ -361,21 +361,21 @@ cielo_ecommerce = CieloEcommerce(merchant, environment)

# 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')
```

## Manual Oficial da Cielo
Expand Down
53 changes: 33 additions & 20 deletions cieloApi3/cieloEcommerce.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@

from .request.createSale import CreateSale
from .request.modifyRecurrencyAmount import ModifyRecurrencyAmount
from .request.modifyRecurrencyCreditCard import ModifyRecurrencyCreditCard
from .request.modifyRecurrencyDay import ModifyRecurrencyDay
from .request.modifyRecurrencyNextPaymentDate import ModifyRecurrencyNextPaymentDate
from .request.queryOrder import QueryOrder
from .request.querySale import QuerySale
from .request.updateSale import UpdateSale
from .request.createCardToken import CreateCardToken
from .request.queryRecorrency import QueryRecorrency
from .request.deactivateRecorrency import DeactivateRecorrency
from .request.reactivateRecorrency import ReactivateRecorrency
from .request.zeroAuth import ZeroAuth


class CieloEcommerce(object):

Expand All @@ -15,53 +21,60 @@ def __init__(self, merchant, 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

return request.execute(payment_id)

def get_sale(self, payment_id):
request = QuerySale(self.merchant, self.environment)

return request.execute(payment_id)

def create_card_token(self, creditCard):

def create_card_token(self, credit_card):
request = CreateCardToken(self.merchant, self.environment)

return request.execute(creditCard)
return request.execute(credit_card)

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)

def modify_recurrency_day(self, recurrent_payment_id, day):
request = ModifyRecurrencyDay(self.merchant, self.environment)
return request.execute(recurrent_payment_id, day)

def modify_recurrency_next_payment_date(self, recurrent_payment_id, string_date):
request = ModifyRecurrencyNextPaymentDate(self.merchant, self.environment)
return request.execute(recurrent_payment_id, string_date)

def modify_recurrency_amount(self, recurrent_payment_id, amount):
request = ModifyRecurrencyAmount(self.merchant, self.environment)
return request.execute(recurrent_payment_id, amount)

def modify_recurrency_credit_card(self, payment, recurrent_payment_id):
request = ModifyRecurrencyCreditCard(self.merchant, self.environment)
return request.execute(payment, recurrent_payment_id)

def get_order(self, order_id):
request = QueryOrder(self.merchant, self.environment)
return request.execute(order_id)

def get_zero_auth(self, credit_card):
request = ZeroAuth(self.merchant, self.environment)
return request.execute(credit_card)
2 changes: 1 addition & 1 deletion cieloApi3/creditCard.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@

from .objectJSON import ObjectJSON


class CreditCard(ObjectJSON):

def __init__(self, security_code, brand):
Expand All @@ -14,7 +15,6 @@ def __init__(self, security_code, brand):
self.card_token = None
self.customer_name = None


def update_return(self, response_return):

self.card_token = response_return['CardToken']
6 changes: 3 additions & 3 deletions cieloApi3/payment.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,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 +49,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
41 changes: 41 additions & 0 deletions cieloApi3/paymentreturn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from datetime import datetime

from cieloApi3 import CreditCard


class PaymentReturn(object):
def __init__(self):
self.payment_id = None
self.recurrent_payment_id = None
self.id_ordem = None
self.tid = None
self.installments = None
self.capture = None
self.recurrent = None
self.credit_card = None
self.amount = None
self.received_date = None
self.status = None

def update_return(self, r):
self.id_ordem = r.get('MerchantOrderId')

rp = r.get('Payment') or {}
self.payment_id = rp.get('PaymentId')
self.tid = rp.get('Tid')
self.installments = rp.get('Installments')
self.capture = rp.get('Capture')
self.recurrent = rp.get('Recurrent')
self.amount = rp.get('Amount')
self.received_date = datetime.strptime(rp.get('ReceivedDate'), '%Y-%m-%d %H:%M:%S')
self.status = rp.get('Status')

cc = rp.get('CreditCard') or {}
self.credit_card = CreditCard(None, None)
self.credit_card.card_number = cc.get('CardNumber')
self.credit_card.holder = cc.get('Holder')
self.credit_card.expiration_date = cc.get('ExpirationDate')
self.credit_card.brand = cc.get('Brand')

recurrent_payment = rp.get('RecurrentPayment') or {}
self.recurrent_payment_id = recurrent_payment.get('RecurrentPaymentId')
2 changes: 2 additions & 0 deletions cieloApi3/recurrentPayment.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
INTERVAL_SEMIANNUAL = "SemiAnnual"
INTERVAL_ANNUAL = "Annual"


class RecurrentPayment(object):

def __init__(self, authorize_now=True):
Expand All @@ -13,4 +14,5 @@ def __init__(self, authorize_now=True):
self.start_date = None
self.end_date = None
self.interval = None
self.next_recurrency = None
self.recurrent_payment_id = None
Loading