Biblioteca de CULQI para el lenguaje Python, pagos simples en tu sitio web. Consume el Culqi API.
| Versión actual | Culqi API |
|---|---|
| 0.2.6 (2017-02-27) | v2 |
- Python 2.7, 3.5, 3.6, 3.7, 3.8-dev
- Credenciales de comercio en Culqi.
pip install culqipyfrom uuid import uuid4
import culqipy
api_key = '{LLAVE PUBLICA}'
api_secret = '{LLAVE SECRETA}'
client = Client(api_key=api_key, api_secret=api_secret)token_data = {
"cvv": "123",
"card_number": "4111111111111111",
"expiration_year": "2020",
"expiration_month": "09",
"email": "richard@piedpiper.com",
}
token = client.token.create(data=token_data)
print(token["data"])retrieved_token = client.token.read(token["data"]["id"])
print(retrieved_token["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_token = client.token.update(id_=token["data"]["id"], data=metadatada)
print(updated_token["data"])retrieved_token_list = client.token.list()
assert "items" in retrieved_token_list["data"]charge_data = {
"amount": 10000,
"capture": False,
"currency_code": "PEN",
"description": "Venta de prueba",
"email": "richard@piedpiper.com",
"installments": 0,
"source_id": token["data"]["id"],
}
charge = client.charge.create(data=charge_data)
print(charge["data"])captured_charge = client.charge.capture(charge["data"]["id"])
print(captured_charge["data"])retrieved_charge = client.charge.read(charge["data"]["id"])
print(retrieved_charge["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_charge = client.charge.update(id_=charge["data"]["id"], data=metadatada)
print(updated_charge["data"])retrieved_charge_list = client.charge.list()
assert "items" in retrieved_charge_list["data"]refund_data = {
"amount": 100,
"reason": "solicitud_comprador",
"charge_id": charge["data"]["id"],
}
refund = client.refund.create(data=refund_data)
print(refund["data"])retrieved_refund = client.refund.read(refund["data"]["id"])
print(retrieved_refund["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_refund = client.refund.update(id_=refund["data"]["id"], data=metadatada)
print(updated_refund["data"])retrieved_refund_list = client.refund.list()
assert "items" in retrieved_refund_list["data"]customer_data = {
"address": "Avenida Lima 123213",
"address_city": "LIMA",
"country_code": "PE",
"email": "richard@piedpiper.com",
"first_name": "Richard",
"last_name": "Piedpiper",
"phone_number": "+51998989789",
}
customer = client.customer.create(data=customer_data)
print(customer["data"])retrieved_customer = client.customer.read(customer["data"]["id"])
print(retrieved_customer["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_customer = client.customer.update(id_=customer["data"]["id"], data=metadatada)
print(updated_customer["data"])deleted_customer = client.customer.delete(id_=customer["data"]["id"])
print(deleted_customer["data"])retrieved_customer_list = client.customer.list()
assert "items" in retrieved_customer_list["data"]card_data = {
"token_id": token["data"]["id"],
"customer_id": customer["data"]["id"],
}
card = client.card.create(data=card_data)
print(card["data"])retrieved_card = client.card.read(card["data"]["id"])
print(retrieved_card["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_card = client.card.update(id_=card["data"]["id"], data=metadatada)
print(updated_card["data"])deleted_card = client.card.delete(id_=card["data"]["id"])
print(deleted_card["data"])retrieved_card_list = client.card.list()
assert "items" in retrieved_card_list["data"]plan_data = {
"amount": 1000,
"currency_code": "PEN",
"interval": "dias",
"interval_count": 2,
"limit": 10,
"name": "plan-{0}".format(uuid4().hex[:4]),
"trial_days": 30,
}
plan = client.plan.create(data=plan_data)
print(plan["data"])retrieved_plan = client.plan.read(plan["data"]["id"])
print(retrieved_plan["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_plan = client.plan.update(id_=plan["data"]["id"], data=metadatada)
print(updated_plan["data"])deleted_plan = client.plan.delete(id_=plan["data"]["id"])
print(deleted_plan["data"])retrieved_plan_list = client.plan.list()
assert "items" in retrieved_plan_list["data"]subscription_data = {
"card_id": card["data"]["id"],
"plan_id": plan["data"]["id"],
}
subscription = client.subscription.create(data=subscription_data)
print(subscription["data"])retrieved_subscription = client.subscription.read(subscription["data"]["id"])
print(retrieved_subscription["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_subscription = client.subscription.update(id_=subscription["data"]["id"], data=metadatada)
print(updated_subscription["data"])deleted_subscription = client.subscription.delete(id_=subscription["data"]["id"])
print(deleted_subscription["data"])retrieved_subscription_list = client.subscription.list()
assert "items" in retrieved_subscription_list["data"]order_data = {
"amount": 1000,
"currency_code": "PEN",
"description": "Venta de prueba",
"order_number": "order-{0}".format(uuid4().hex[:4]),
"client_details": {
"first_name": "Richard",
"last_name": "Piedpiper",
"email": "richard@piedpiper.com",
"phone_number": "+51998989789",
},
"expiration_date": 1893474000,
"confirm": False,
}
order = client.order.create(data=order_data)
print(order["data"])confirmed_order = client.order.confirm(order["data"]["id"])
print(confirmed_order["data"])retrieved_order = client.order.read(order["data"]["id"])
print(retrieved_order["data"])metadatada = {
"metadata": {
"order_id": "0001"
}
}
updated_order = client.order.update(id_=order["data"]["id"], data=metadatada)
print(updated_order["data"])deleted_order = client.order.delete(order["data"]["id"])
print(deleted_order["data"])retrieved_order_list = client.order.list()
assert "items" in retrieved_order_list["data"]retrieved_event = client.event.read(event_id)
print(retrieved_event["data"])retrieved_event_list = client.event.list()
assert "items" in retrieved_event_list["data"]retrieved_iin = client.iin.read(iin_id)
print(retrieved_iin["data"])retrieved_iin_list = client.iin.list()
assert "items" in retrieved_iin_list["data"]retrieved_transfer = client.transfer.read(transfer_id)
print(retrieved_transfer["data"])retrieved_transfer_list = client.transfer.list()
assert "items" in retrieved_transfer_list["data"]Cada metodo retona un diccionario con la estructura
{
"status": status_code,
"data": data
}El status_code es el estatus HTTP numérico devuelto por la solicitud HTTP que se
realiza al API de Culqi, y data contiene el cuerpo de la respuesta obtenida.
-
¿Necesitas más información para integrar Culqi?
La documentación completa se encuentra en https://culqi.com/docs/
-
Quieres saber más de nuestra API
Encuentra lo que necesitas en https://www.culqi.com/api/
Todos los cambios en las versiones de esta biblioteca están listados en CHANGELOG.md.
Si estas interesado en contribuir con el desarrollo y mantenimiento de este paquete es recomendable que emplees poetry para la gestión de dependencias.
Clona el proyecto
$ git clone https://github.com/culqi/culqi-python.git
$ cd culqi-pythonInstala las dependencias
$ poetry installPuedes ejecutar los tests con poetry
poetry run pytest --cov --cov-report=
poetry run coverage reportAntes de hacer tu primer commit y enviar tu pull request ejecuta
$ poetry run pre-commit installLuego relaiza tu commits de forma habitual.
Willy Aguirre (@marti1125 - Team Culqi)
Nuestros Contribuidores
El código fuente de culqi-python está distribuido bajo MIT License, revisar el archivo
LICENSE.txt.