🐍SDK Python

bemfácil® Payment SDK

Este SDK facilita a integração com o gateway de pagamentos bemfácil®, permitindo que você realize operações como autenticação, tokenização de cartões, criação de transações, captura de pagamentos e consulta de status de transações.

Instalação

Para instalar o SDK, você pode usar o pip:

pip install bemfacil_payment_sdk

Uso

Para usar o SDK, você precisa de um nome de usuário e senha fornecidos pela bemfacil®. Para obter essas credenciais, entre em contato com a bemfacil® para adquirir um usuário de teste ou de produção.

Configuração Inicial

Primeiro, configure o SDK com suas credenciais. Você pode fazer isso diretamente no seu código ou integrá-lo em um projeto Django (veja a seção de Integração com Django abaixo).

from bemfacil_payment_sdk.client import BemFacilPaymentClient

client = BemFacilPaymentClient(
    username='[email protected]',
    password='sua_senha'
)

Tokenização de Cartão

Para tokenizar um cartão, você pode usar o seguinte código:

card_token = client.tokenize_card('5555666677778884', '12/25', {
    'first_name': 'John',
    'last_name': 'Doe',
    'birth_date': '01/01/1970',
    'phone': '+5511999999999',
    'email': '[email protected]'
})
print(card_token)

Criação de Transação

Para criar uma transação, use o seguinte código:

transaction = client.create_transaction('40404040411', 10, 'credit', 1)
print(transaction)

Captura de Pagamento

Para capturar um pagamento, use o seguinte código:

capture_response = client.capture_payment(transaction['transaction_id'], {
    'number': '5555666677778884',
    'expiry_date': '12/25',
    'cvv': '123'
})
print(capture_response)

Consulta de Status de Transação

Para consultar o status de uma transação, use o seguinte código:

status = client.get_transaction_status(transaction['transaction_id'])
print(status)

Atualização de Senha

Para atualizar a senha, use o seguinte código:

response = client.change_password('nova_senha123')
print(response)

Atualização do Token de Autenticação

Para atualizar o token de autenticação, use o seguinte código:

client.refresh_auth_token()
print('Token atualizado:', client.api_key)

Integração com Django

Você pode integrar este SDK em um projeto Django. Aqui está um exemplo de como fazer isso:

Configuração

Adicione as configurações do bemfacil® no seu settings.py:

# settings.py
BEMFACIL_USERNAME = '[email protected]'
BEMFACIL_PASSWORD = 'sua_senha'
BEMFACIL_BASE_URL = 'https://gws-hml.bemfacil.com.br'

Crie um arquivo de configuração para inicializar o cliente do SDK:

config/bemfacil.py:

from django.conf import settings
from bemfacil_payment_sdk.client import BemFacilPaymentClient


def get_bemfacil_client():
    return BemFacilPaymentClient(
        username=settings.BEMFACIL_USERNAME,
        password=settings.BEMFACIL_PASSWORD,
        base_url=settings.BEMFACIL_BASE_URL
    )

Use o SDK em suas views:

views.py:

from django.shortcuts import render
from django.http import JsonResponse
from config.bemfacil import get_bemfacil_client


def tokenize_card_view(request):
    if request.method == 'POST':
        card_number = request.POST.get('card_number')
        card_expiry = request.POST.get('card_expiry')
        card_holder_data = {
            'first_name': request.POST.get('first_name'),
            'last_name': request.POST.get('last_name'),
            'birth_date': request.POST.get('birth_date'),
            'phone': request.POST.get('phone'),
            'email': request.POST.get('email')
        }
        client = get_bemfacil_client()
        try:
            response = client.tokenize_card(card_number, card_expiry, card_holder_data)
            return JsonResponse(response)
        except Exception as e:
            return JsonResponse({'error': str(e)}, status=400)

    return render(request, 'tokenize_card.html')


def create_transaction_view(request):
    if request.method == 'POST':
        document = request.POST.get('document')
        amount = request.POST.get('amount')
        payment_method = request.POST.get('payment_method')
        installments = request.POST.get('installments')
        client = get_bemfacil_client()
        try:
            response = client.create_transaction(document, amount, payment_method, installments)
            return JsonResponse(response)
        except Exception as e:
            return JsonResponse({'error': str(e)}, status=400)

    return render(request, 'create_transaction.html')

Testes

Para rodar os testes, use o comando:

python -m unittest discover tests

Usuários de teste

Username
Password

BemFacil2024@

BemFacil2024@

BemFacil2024@

Cartões de Teste

Aqui estão alguns cartões de teste que você pode usar para simular transações durante o desenvolvimento:

Bandeira
Número do Cartão
Exp Date
Cod. Sec

VISA

x895379980000580

12/23

518

VISA

x895379980000572

12/23

841

VISA

x895379980000564

12/23

11

VISA

x895379980000325

12/23

45

Mastercard

512X342233150747

ANY

ANY

Mastercard

512X343287499758

ANY

ANY

Mastercard

51203501XXX64594

ANY

ANY

Mastercard

222269042006459X

ANY

ANY

Contato

Para obter as credenciais de usuário de teste ou de produção, entre em contato com a bemfacil®.

Last updated