Skip to content
This repository has been archived by the owner on Jan 24, 2025. It is now read-only.

Atualiza versão da API de cobrança PIX v2 #71

Merged
merged 24 commits into from
Aug 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
a31916f
altera versão do pix cobrança
peidrao Jul 16, 2024
ef87687
ajusta métdo de criar cobrança
peidrao Jul 16, 2024
de92760
Merge branch 'main' of github.com:imobanco/bb-wrapper into feature/at…
peidrao Aug 8, 2024
7c35755
atualiza url da API PIX
rodrigondec Aug 8, 2024
94427a2
troca sandbox por hm no PIX
rodrigondec Aug 8, 2024
997a504
Merge branch 'feature/atualiza-versao-api-pix' of github.com:imobanco…
peidrao Aug 8, 2024
8b964bf
Merge branch 'main' into feature/atualiza-versao-api-pix
peidrao Aug 12, 2024
5e51a1c
Merge branch 'feature/atualiza-versao-api-pix' of github.com:imobanco…
peidrao Aug 12, 2024
329e7c2
correção de testes unitários
peidrao Aug 12, 2024
1d20b72
correção de testes unitários
peidrao Aug 12, 2024
5d9c01b
ajusta rota
peidrao Aug 12, 2024
1177c1a
adiciona certificados em examples
peidrao Aug 12, 2024
efdc91b
Merge branch 'main' into feature/atualiza-versao-api-pix
peidrao Aug 12, 2024
b17a840
Merge branch 'feature/atualiza-versao-api-pix' of github.com:imobanco…
peidrao Aug 12, 2024
c47baf5
Update tests/wrapper/test_pagamentos.py
peidrao Aug 12, 2024
6c6f61d
ajustes
peidrao Aug 12, 2024
dc4d3eb
fmt
peidrao Aug 12, 2024
0ba7a37
flexibiliza adição de URL
peidrao Aug 13, 2024
6146e5d
flexibiliza adição de URL
peidrao Aug 13, 2024
c206ebb
corrige testes unitários
peidrao Aug 13, 2024
85042ed
fmt
peidrao Aug 13, 2024
ffae78a
remove método
peidrao Aug 14, 2024
c8a7c90
remove código comentado
peidrao Aug 14, 2024
a0d631a
remove variáveis
peidrao Aug 14, 2024
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
36 changes: 10 additions & 26 deletions bb_wrapper/wrapper/bb.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,8 @@ class BaseBBWrapper(RequestsWrapper):
wrapper base do BB (Banco do Brasil)
"""

BASE_SCHEMA = "https://"
BASE_SUBDOMAIN = "api"
BASE_SANDBOX_ADDITION = ".sandbox"
BASE_PROD_ADDITION = ""
BASE_DOMAIN = ".bb.com.br"
SANDBOX_BASE_URL = ""
BASE_URL = ""

SCOPE = ""

Expand Down Expand Up @@ -51,7 +48,10 @@ def __init__(
if self.__basic_token == "" or self.__gw_app_key == "":
raise ValueError("Configure o basic_token/gw_app_key do BB!")

base_url = self._construct_base_url()
if self._is_sandbox:
base_url = self.SANDBOX_BASE_URL
else:
base_url = self.BASE_URL

super().__init__(
*args,
Expand Down Expand Up @@ -113,19 +113,6 @@ def _data(self):
"""
return getattr(self, f"_{self.__class__.__name__}__data", None)

def _construct_base_url(self):
if self._is_sandbox:
addition = self.BASE_SANDBOX_ADDITION
else:
addition = self.BASE_PROD_ADDITION
base_url = (
f"{self.BASE_SCHEMA}"
f"{self.BASE_SUBDOMAIN}"
f"{addition}"
f"{self.BASE_DOMAIN}"
)
return base_url

def _construct_url(self, *args, **kwargs):
url = super()._construct_url(*args, **kwargs)

Expand Down Expand Up @@ -197,13 +184,10 @@ def __should_authenticate(self):
return is_token_missing or is_token_expired

def __oauth_url(self):
return (
f"{BaseBBWrapper.BASE_SCHEMA}"
f"oauth"
f'{".sandbox" if self._is_sandbox else ""}'
f"{BaseBBWrapper.BASE_DOMAIN}"
f"/oauth/token"
)
if self._is_sandbox:
return "https://oauth.sandbox.bb.com.br/oauth/token"
else:
return "https://oauth.bb.com.br/oauth/token"

def __authenticate(self):
"""
Expand Down
3 changes: 2 additions & 1 deletion bb_wrapper/wrapper/cobrancas.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
class CobrancasBBWrapper(BaseBBWrapper):
SCOPE = "cobrancas.boletos-info cobrancas.boletos-requisicao"

BASE_DOMAIN = ".bb.com.br/cobrancas/v2/boletos"
SANDBOX_BASE_URL = "https://api.sandbox.bb.com.br/cobrancas/v2/boletos"
BASE_URL = "https://api.bb.com.br/cobrancas/v2/boletos"

def __init__(
self,
Expand Down
4 changes: 2 additions & 2 deletions bb_wrapper/wrapper/pagamento_lote.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ class PagamentoLoteBBWrapper(BaseBBWrapper):
"""

SCOPE = "pagamentos-lote.lotes-requisicao pagamentos-lote.transferencias-info pagamentos-lote.transferencias-requisicao pagamentos-lote.cancelar-requisicao pagamentos-lote.devolvidos-info pagamentos-lote.lotes-info pagamentos-lote.pagamentos-guias-sem-codigo-barras-info pagamentos-lote.pagamentos-info pagamentos-lote.pagamentos-guias-sem-codigo-barras-requisicao pagamentos-lote.pagamentos-codigo-barras-info pagamentos-lote.boletos-requisicao pagamentos-lote.guias-codigo-barras-info pagamentos-lote.guias-codigo-barras-requisicao pagamentos-lote.transferencias-pix-info pagamentos-lote.transferencias-pix-requisicao pagamentos-lote.pix-info pagamentos-lote.boletos-info" # noqa
BASE_PROD_ADDITION = "-ip"
BASE_DOMAIN = ".bb.com.br/pagamentos-lote/v1"
SANDBOX_BASE_URL = "https://api.sandbox.bb.com.br/pagamentos-lote/v1"
BASE_URL = "https://api-ip.bb.com.br/pagamentos-lote/v1"

def _valida_lote_data(self, model, **kwargs):
try:
Expand Down
5 changes: 3 additions & 2 deletions bb_wrapper/wrapper/pix_cob.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ class PIXCobBBWrapper(BaseBBWrapper):

SCOPE = "cob.read cob.write pix.read pix.write"

BASE_DOMAIN = ".bb.com.br/pix/v1"
SANDBOX_BASE_URL = "https://api-pix.hm.bb.com.br/pix/v2"
BASE_URL = "https://api-pix.bb.com.br/pix/v2"

def listar_pix(self, inicio=None, fim=None, page=0):
"""
Expand Down Expand Up @@ -157,7 +158,7 @@ def criar_cobranca(

url = self._construct_url("cob", end_bar=True)

response = self._put(url, data)
response = self._post(url, data)

self._injeta_qrcode_data(response, nome_recebedor)

Expand Down
2 changes: 1 addition & 1 deletion examples/lotes_pagamento/cadastrar_pagamento_boleto.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
bb_fmt = "%d%m%Y"

lote_data = {
"n_requisicao": 579145,
"n_requisicao": 529279,
"agencia": 1607,
"conta": 99738672,
"dv_conta": "X",
Expand Down
2 changes: 1 addition & 1 deletion examples/pix_cob/consultar_cobranca.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from bb_wrapper.wrapper import PIXCobBBWrapper

c = PIXCobBBWrapper()
c = PIXCobBBWrapper(cert=("./certs/cert.pem", "./certs/key.pem"))

txid = "HUAY0i0XMbuq6W3EcGapjsGCp5V19ToaRNR"

Expand Down
3 changes: 2 additions & 1 deletion examples/pix_cob/consultar_devolucao_pix.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

from bb_wrapper.wrapper import PIXCobBBWrapper

c = PIXCobBBWrapper()
c = PIXCobBBWrapper(cert=("./certs/cert.pem", "./certs/key.pem"))


end_to_end_id = "E000000002021012216250Q5N2JSL8RB"
devolucao_id = "9fc76d58bbda3a0cdd5f1b92b6490216"
Expand Down
2 changes: 1 addition & 1 deletion examples/pix_cob/criar_cobrança_cnpj.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"nome_devedor": "ÉṔçà`s Francisco da Silva Francisco da Silva Francisco da Silva Francisco da Silva Francisco da Silva", # noqa: E501
"valor": 130.44,
"nome_recebedor": "Imobanco",
"chave": "7f6844d0-de89-47e5-9ef7-e0a35a681615",
"chave": "9e881f18-cc66-4fc7-8f2c-a795dbb2bfc1",
"descricao": "Cobrança dos serviços prestados.",
"info": [{"nome": "Sacado", "valor": "Nome do sacado aqui"}],
}
Expand Down
3 changes: 2 additions & 1 deletion examples/pix_cob/criar_cobrança_qrcode.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

from bb_wrapper.wrapper import PIXCobBBWrapper

c = PIXCobBBWrapper()
c = PIXCobBBWrapper(cert=("./certs/cert.pem", "./certs/key.pem"))


data = {
"expiracao": 60 * 60, # 60 segundos = 1 minuto. 60 minutos = 1h
Expand Down
2 changes: 1 addition & 1 deletion examples/pix_cob/listar_pix.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from bb_wrapper.wrapper import PIXCobBBWrapper

c = PIXCobBBWrapper()
c = PIXCobBBWrapper(cert=("./certs/cert.pem", "./certs/key.pem"))

response = c.listar_pix(page=0)

Expand Down
4 changes: 3 additions & 1 deletion tests/wrapper/test_cobrancas.py
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,8 @@ def test_construct_url_1(self):
"""
result = CobrancasBBWrapper()._construct_url(end_bar=True)

expected = "https://api.sandbox.bb.com.br/cobrancas/v2/boletos/?gw-dev-app-key="
expected = (
"https://api.sandbox.bb.com.br/cobrancas/v2/boletos/?gw-dev-app-key=KEY"
)

self.assertIn(expected, result)
9 changes: 4 additions & 5 deletions tests/wrapper/test_pix_cob.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,11 @@ def test_construct_url_1(self):
- for chamado PIXCobBBWrapper()._construct_url(end_bar=True, search=None)
Então:
- o resultado deve ter pelo menos o texto
'https://api.hm.bb.com.br/pix/v1/?gw-dev-app-key='
'https://api-pix.hm.bb.com.br/pix/v2/?gw-dev-app-key=KEY'
"""
result = PIXCobBBWrapper()._construct_url(end_bar=True)

expected = "https://api.sandbox.bb.com.br/pix/v1/?gw-dev-app-key="
expected = "https://api-pix.hm.bb.com.br/pix/v2/?gw-dev-app-key=KEY"

self.assertIn(expected, result)

Expand All @@ -184,12 +184,11 @@ def test_construct_url_2(self):
- for chamado PIXCobBBWrapper()._construct_url(end_bar=False)
Então:
- o resultado deve ter pelo menos o texto
'https://api.hm.bb.com.br/pix/v1?gw-dev-app-key='
'https://api-pix.hm.bb.com.br/pix/v2?gw-dev-app-key='
"""
result = PIXCobBBWrapper()._construct_url(end_bar=False)

expected = "https://api.sandbox.bb.com.br/pix/v1?gw-dev-app-key="

expected = "https://api-pix.hm.bb.com.br/pix/v2?gw-dev-app-key="
self.assertIn(expected, result)

def test_consultar_cobranca_content_bizarro(self):
Expand Down