From b97f95efe98a41720b01903164dadda65a00412a Mon Sep 17 00:00:00 2001 From: Mario Hernandez Date: Sun, 29 Sep 2024 20:50:34 -0300 Subject: [PATCH] Documentacion y ejemplo --- README.md | 2 +- docs/CHANGELOG.md | 43 +++----- docs/contributing.md | 14 +-- docs/index.md | 16 +-- docs/uso.md | 129 ++++++++++++------------ ejemplo/README.md | 35 +++++++ ejemplo/manage.py | 22 +++++ ejemplo/pagos/__init__.py | 0 ejemplo/pagos/admin.py | 3 + ejemplo/pagos/apps.py | 6 ++ ejemplo/pagos/migrations/__init__.py | 0 ejemplo/pagos/models.py | 12 +++ ejemplo/pagos/tests.py | 3 + ejemplo/pagos/views.py | 17 ++++ ejemplo/pyproject.toml | 16 +++ ejemplo/tienda/__init__.py | 0 ejemplo/tienda/asgi.py | 16 +++ ejemplo/tienda/settings.py | 142 +++++++++++++++++++++++++++ ejemplo/tienda/urls.py | 26 +++++ ejemplo/tienda/wsgi.py | 16 +++ mkdocs.yml | 14 +-- 21 files changed, 414 insertions(+), 118 deletions(-) create mode 100644 ejemplo/README.md create mode 100755 ejemplo/manage.py create mode 100644 ejemplo/pagos/__init__.py create mode 100644 ejemplo/pagos/admin.py create mode 100644 ejemplo/pagos/apps.py create mode 100644 ejemplo/pagos/migrations/__init__.py create mode 100644 ejemplo/pagos/models.py create mode 100644 ejemplo/pagos/tests.py create mode 100644 ejemplo/pagos/views.py create mode 100644 ejemplo/pyproject.toml create mode 100644 ejemplo/tienda/__init__.py create mode 100644 ejemplo/tienda/asgi.py create mode 100644 ejemplo/tienda/settings.py create mode 100644 ejemplo/tienda/urls.py create mode 100644 ejemplo/tienda/wsgi.py diff --git a/README.md b/README.md index 6e4baf7..4efc4c1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # django-payments-chile -**django-payments-chile** es una librería diseñada para facilitar la integración de pagos en aplicaciones Django a través de múltiples proveedores en Chile. Este proyecto ofrece una API simple y flexible para procesar pagos de manera segura, permitiendo a los desarrolladores concentrarse en construir sus aplicaciones sin complicarse con la lógica de integración de cada proveedor. +`django-payments-chile` es una extensión para `django-payments`, una biblioteca que proporciona una interfaz universal para procesar pagos en aplicaciones Django. Este proyecto añade soporte específico para varios proveedores de pagos chilenos como Flow, Khipu, Webpay, y otros. ![PyPI - Status](https://img.shields.io/pypi/status/django-payments-chile) [![Downloads](https://pepy.tech/badge/django-payments-chile)](https://pepy.tech/project/django-payments-chile) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 362d4d2..cca76e3 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,44 +1,23 @@ # Changelog -Cambios notables de Django Payments Flow +Cambios notables de Django Payments Chile Formato basado en [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -## [2024.9.23] - 2024-09-23 +- Klap +- Kushki +- Pagofacil +- Transbank WebPayPlus +- Transbank OnePay -### Cambiado +## [2024.9.29] -- Cambios en documentacion. +- Cambios en Documentacion +- Nuevos providers para: **Flow, Khipu, Payku** -## [0.1.4] - 2023-07-20 +## [2024.9.23] -### Agregado - -- Creacion de reembolso - -### Cambiado - -- Rollback de soporte openapi3 - -## [0.1.3] - 2023-07-20 - -### Agregado - -- Creacion de pago -- Correccion Tests - -## [0.1.2] - 2023-07-12 - -### Agregado - -- Algunos tests -- Trabajo con pyFlowCL - -## [0.1.1] - 2023-07-05 - -### Agregado - -- Estructura base +- Commit Inicial diff --git a/docs/contributing.md b/docs/contributing.md index 01dab74..5285dee 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -1,6 +1,6 @@ -# Guía de Colaboración para pyflowcl +# Guía de Colaboración para django-payments-chile -¡Gracias por tu interés en colaborar con pyflowcl! Este documento te guiará a través del proceso de contribución al proyecto. +¡Gracias por tu interés en colaborar con django-payments-chile! Este documento te guiará a través del proceso de contribución al proyecto. ## Formas de Colaborar @@ -27,15 +27,15 @@ Puedes clonar el repositorio de dos maneras: ### Usando Git ```shell -git clone https://github.com/mariofix/pyflowcl.git -cd pyflowcl +git clone https://github.com/mariofix/django-payments-chile.git +cd django-payments-chile ``` ### Usando GitHub CLI ```shell -gh repo clone mariofix/pyflowcl -cd pyflowcl +gh repo clone mariofix/django-payments-chile +cd django-payments-chile ``` ## Configuración del Entorno de Desarrollo @@ -96,4 +96,4 @@ Al contribuir a este proyecto, aceptas que tus contribuciones se licenciarán ba Si tienes preguntas o necesitas ayuda, no dudes en crear un issue en GitHub. -¡Gracias por tu contribución a pyflowcl! +¡Gracias por tu contribución a django-payments-chile! diff --git a/docs/index.md b/docs/index.md index a1c3484..55b341d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,6 @@ # django-payments-chile -**django-payments-chile** es una extensión de **django-payments** que facilita la integración de proveedores de pago en aplicaciones Django para el mercado chileno. Actualmente soporta Flow, Khipu, Webpay, y más. +`django-payments-chile` es una extensión para `django-payments`, una biblioteca que proporciona una interfaz universal para procesar pagos en aplicaciones Django. Este proyecto añade soporte específico para varios proveedores de pagos chilenos como Flow, Khipu, Webpay, y otros. ![PyPI - Status](https://img.shields.io/pypi/status/django-payments-flow) [![Downloads](https://pepy.tech/badge/django-payments-flow)](https://pepy.tech/project/django-payments-flow) @@ -14,18 +14,22 @@ ## Características -- Soporte para múltiples proveedores de pago en Chile. -- Compatible con la API de django-payments. -- Extensión fácil de configurar. +- Soporte para múltiples proveedores de pago en un solo proyecto. +- API consistente para crear, procesar y verificar transacciones. +- Fácil configuración y personalización. +- Documentación clara para desarrolladores. +- Soporte para eventos de éxito, fallo, y reembolsos de pagos. ## Inicio rápido ### Instalación ```bash -pip install django-payments-chile[chile] +pip install django-payments-chile[todos] ``` +Adicionalmente puedes instalar los extras para cada integrador: + - **flow**: Instala extras para Flow. - **khipu**: Instala extras para Khipu. - **todos**: Instala todos los extras. @@ -72,8 +76,6 @@ redirect_url = payment.get_process_url() return redirect(redirect_url) ``` -**Nota**: `django-payments` manejará la redirección al proveedor y la confirmación del estado del pago. Solo necesitas configurar correctamente los proveedores. - Para más detalles sobre el flujo de pago y las respuestas de los proveedores, consulta la sección [configuración](configuration.md). ## Proveedores soportados diff --git a/docs/uso.md b/docs/uso.md index 89bee55..263b1c1 100644 --- a/docs/uso.md +++ b/docs/uso.md @@ -1,53 +1,71 @@ -# ¿Qué es django-payments-chile? +# Introducción a `django-payments-chile` -`django-payments-chile` es una extensión de Django que te permite procesar pagos en Chile fácilmente. Funciona con `django-payments`, que es una biblioteca más general para manejar pagos en Django. +`django-payments-chile` es una extensión para `django-payments`, una biblioteca que proporciona una interfaz universal para procesar pagos en aplicaciones Django. Este proyecto añade soporte específico para varios proveedores de pagos chilenos como Flow, Khipu, Webpay, y otros. -## Paso 1: Preparar tu entorno +Al ser una extensión de `django-payments`, su objetivo es facilitar la integración de múltiples proveedores de pago sin necesidad de que desarrolles un sistema desde cero para cada uno. -Antes de empezar, asegúrate de tener: +!!! note "TL;DR" + Si prefieres ver una implementación de ejemplo y comenzar rápidamente, puedes clonar el [Repositorio de ejemplo](https://github.com/mariofix/django-payments-chile/tree/main/ejemplo): -1. Python instalado en tu computadora. -2. Django instalado y un proyecto Django creado. +## Requisitos -Si no tienes Django, puedes instalarlo con: +Antes de empezar, asegúrate de tener lo siguiente: -```bash -pip install django -``` +- **Python** instalado en tu sistema. +- **Django** para gestionar la aplicación web. +- **django-payments** como el núcleo para gestionar los pagos. +- **django-payments-chile** para integrar proveedores de pago en Chile. -Y crear un nuevo proyecto Django con: +## Instalación -```bash -django-admin startproject miproyecto -cd miproyecto -``` +### Instalación con Poetry + +1. Crea un nuevo proyecto y entorno virtual con Poetry: + + ```bash + poetry new mi-tienda + cd mi-tienda + poetry env use python3.10 # Reemplaza con la versión de Python que prefieras + ``` -## Paso 2: Instalar las bibliotecas necesarias +2. Instala Django, `django-payments` y `django-payments-chile`: -Ahora, vamos a instalar `django-payments` y `django-payments-chile`: + ```bash + poetry add django django-payments django-payments-chile + poetry install + ``` + +!!! note + Al instalar `django-payments-chile`, sus dependencias, como `django-payments` y `django`, se instalarán automáticamente. + +## Configuración del Proyecto + +### Crear el Proyecto + +Inicia un nuevo proyecto de Django y una aplicación para gestionar los pagos: ```bash -pip install django-payments django-payments-chile +poetry run django-admin startproject tienda . +poetry run django-admin startapp pagos ``` -## Paso 3: Configurar tu proyecto Django - -### 3.1 Modificar settings.py +### Modificar `settings.py` -Abre el archivo `settings.py` en tu proyecto Django y agrega estas líneas: +Abre el archivo `settings.py` de tu proyecto y agrega las siguientes configuraciones de `django-payments`: ```python INSTALLED_APPS = [ - # ... tus otras apps ... - "payments", + # Otras aplicaciones de tu proyecto... + "payments", # Core de django-payments + "pagos", # Tu app personalizada para manejar pagos ] -# Configuración para payments -PAYMENT_HOST = 'tudominio.cl' # Cambia esto por tu dominio real -PAYMENT_USES_SSL = True # Usa False si no tienes HTTPS -PAYMENT_MODEL = 'pagos.modelos.Pago' +# Configuración de django-payments +PAYMENT_HOST = 'mi-tienda.cl' # Reemplaza con tu dominio +PAYMENT_USES_SSL = True # Usa True si tienes HTTPS, False en caso contrario +PAYMENT_MODEL = 'pagos.modelos.Pago' # Modelo personalizado para pagos -# Configuración para django-payments-chile (ejemplo con Flow) +# Configuración para proveedores chilenos (ejemplo con Flow) PAYMENT_VARIANTS = { "flow": ("django_payments_chile.FlowProvider", { "api_key": "tu_api_key_de_flow", @@ -56,24 +74,25 @@ PAYMENT_VARIANTS = { } ``` -Nota: Reemplaza 'tudominio.cl', 'tu_api_key_de_flow' y 'tu_api_secret_de_flow' con tus datos reales. +!!! note + Asegúrate de reemplazar `'mi-tienda.cl'`, `'tu_api_key_de_flow'` y `'tu_api_secret_de_flow'` con tus datos reales. -### 3.2 Modificar urls.py +### Modificar `urls.py` -Abre el archivo `urls.py` principal de tu proyecto y agrega esta línea: +Incluye las rutas necesarias en el archivo `urls.py` de tu proyecto o aplicación: ```python from django.urls import include, path urlpatterns = [ - # ... tus otras URLs ... + # Otras rutas... path('payments/', include('payments.urls')), ] ``` -## Paso 4: Crear un modelo de pago +## Creación del Modelo de Pago -Crea un nuevo archivo llamado `modelos.py` en una app de tu proyecto (por ejemplo, en una app llamada 'pagos') y agrega este código: +Crea el modelo de pago en el archivo `pagos/modelos.py`, que gestionará los pagos y las redirecciones según el éxito o fracaso de los mismos: ```python from django.conf import settings @@ -81,30 +100,17 @@ from payments.models import BasePayment class Pago(BasePayment): def get_failure_url(self) -> str: + # Redirige a esta URL si el pago falla return f"https://{settings.PAYMENT_HOST}/payments/{self.pk}/failure" def get_success_url(self) -> str: + # Redirige a esta URL si el pago es exitoso return f"https://{settings.PAYMENT_HOST}/payments/{self.pk}/success" ``` -No olvides crear la app 'pagos' si no existe: - -```bash -python manage.py startapp pagos -``` - -Y agrégala a INSTALLED_APPS en settings.py: - -```python -INSTALLED_APPS = [ - # ... otras apps ... - "pagos", -] -``` - -## Paso 5: Usar django-payments-chile en tu vista +## Implementación en las Vistas -Ahora puedes usar django-payments-chile en tus vistas. Aquí tienes un ejemplo: +Usa `django-payments` en tus vistas para procesar pagos con los distintos proveedores. Aquí tienes un ejemplo de cómo crear y procesar un pago: ```python from django.shortcuts import redirect @@ -113,7 +119,7 @@ from payments import get_payment_model def crear_pago(request): Payment = get_payment_model() payment = Payment.objects.create( - variant='flow', # Esto debe coincidir con lo que pusiste en PAYMENT_VARIANTS + variant='flow', # Debe coincidir con el nombre en PAYMENT_VARIANTS description="Pago por Orden #123", total=10000, # Monto en centavos (100 pesos) currency='CLP', @@ -121,18 +127,13 @@ def crear_pago(request): billing_last_name='Pérez', billing_email='juan.perez@example.com', ) + # Redirige al usuario a la URL del proveedor de pagos return redirect(payment.get_process_url()) ``` -## Paso 6: Crear las páginas de éxito y fracaso - -No olvides crear las páginas a las que se redirigirá después del pago (éxito o fracaso). Puedes hacerlo creando nuevas vistas y templates. - -## Consejos finales - -1. Siempre prueba en un entorno de desarrollo antes de ir a producción. -2. Mantén seguros tus datos de API (keys, secrets). No los subas a repositorios públicos. -3. Lee la documentación oficial de django-payments y django-payments-chile para más detalles. -4. ¡No dudes en pedir ayuda en foros de Django si te atascas! +## Consejos Finales -Recuerda que cada paso puede requerir más configuración dependiendo de tu proyecto específico. +- **Pruebas**: Asegúrate de probar la implementación en un entorno de desarrollo antes de desplegarla en producción. +- **Seguridad**: No subas tus claves de API o secretos a repositorios públicos. Utiliza archivos de entorno o servicios seguros para gestionarlos. +- **Documentación Adicional**: Consulta la documentación oficial de [django-payments](https://django-payments.readthedocs.io/) para conocer todas las opciones y configuraciones avanzadas. +- **Soporte**: Si tienes dudas o problemas [haz tu pregunta](https://github.com/mariofix/django-payments-chile/discussions). diff --git a/ejemplo/README.md b/ejemplo/README.md new file mode 100644 index 0000000..4ad4c9d --- /dev/null +++ b/ejemplo/README.md @@ -0,0 +1,35 @@ +# Ejemplo para `django-payments-chile` + +Este repositorio contiene un ejemplo de cómo utilizar `django-payments-chile`, una extensión de `django-payments` que permite la integración de varios proveedores de pago en Chile. + +## Requisitos + +- Python 3.10 o superior +- Poetry (para gestionar dependencias) + +## Instalación + +Sigue los pasos a continuación para poner en marcha el proyecto de ejemplo: + +1. Instala las dependencias utilizando `poetry`: + + ```bash + poetry install -E todo + ``` + +2. Aplica las migraciones para preparar la base de datos: + + ```bash + poetry run python manage.py makemigrations + poetry run python manage.py migrate + ``` + +3. Inicia el servidor de desarrollo: + + ```bash + poetry run python manage.py runserver + ``` + +## Configuración adicional + +Este proyecto ya incluye configuraciones predeterminadas para un entorno local. Asegúrate de modificar cualquier valor en el archivo `settings.py` si es necesario, como el dominio en `PAYMENT_HOST`, y las credenciales de los proveedores de pago en `PAYMENT_VARIANTS`. diff --git a/ejemplo/manage.py b/ejemplo/manage.py new file mode 100755 index 0000000..5f3ba9f --- /dev/null +++ b/ejemplo/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tienda.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/ejemplo/pagos/__init__.py b/ejemplo/pagos/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ejemplo/pagos/admin.py b/ejemplo/pagos/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/ejemplo/pagos/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/ejemplo/pagos/apps.py b/ejemplo/pagos/apps.py new file mode 100644 index 0000000..6f87856 --- /dev/null +++ b/ejemplo/pagos/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class PagosConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'pagos' diff --git a/ejemplo/pagos/migrations/__init__.py b/ejemplo/pagos/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ejemplo/pagos/models.py b/ejemplo/pagos/models.py new file mode 100644 index 0000000..0a2d941 --- /dev/null +++ b/ejemplo/pagos/models.py @@ -0,0 +1,12 @@ +from django.conf import settings +from payments.models import BasePayment + + +class Pago(BasePayment): + def get_failure_url(self) -> str: + # Redirige a esta URL si el pago falla + return f"https://{settings.PAYMENT_HOST}/payments/{self.pk}/failure" + + def get_success_url(self) -> str: + # Redirige a esta URL si el pago es exitoso + return f"https://{settings.PAYMENT_HOST}/payments/{self.pk}/success" diff --git a/ejemplo/pagos/tests.py b/ejemplo/pagos/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/ejemplo/pagos/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/ejemplo/pagos/views.py b/ejemplo/pagos/views.py new file mode 100644 index 0000000..5809446 --- /dev/null +++ b/ejemplo/pagos/views.py @@ -0,0 +1,17 @@ +from django.shortcuts import redirect +from payments import get_payment_model + + +def crear_pago(request): + Payment = get_payment_model() + payment = Payment.objects.create( + variant="flow", # Debe coincidir con el nombre en PAYMENT_VARIANTS + description="Pago por Orden #123", + total=10000, # Monto en centavos (100 pesos) + currency="CLP", + billing_first_name="Juan", + billing_last_name="Pérez", + billing_email="juan.perez@example.com", + ) + # Redirige al usuario a la URL del proveedor de pagos + return redirect(payment.get_process_url()) diff --git a/ejemplo/pyproject.toml b/ejemplo/pyproject.toml new file mode 100644 index 0000000..2c54bfd --- /dev/null +++ b/ejemplo/pyproject.toml @@ -0,0 +1,16 @@ +[tool.poetry] +name = "django-payments-chile-ejemplo" +version = "0.1.0" +description = "" +authors = ["Mario Hernandez "] +readme = "README.md" +package-mode = false + +[tool.poetry.dependencies] +python = "^3.10" +django-payments-chile = "^2024.9.29" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/ejemplo/tienda/__init__.py b/ejemplo/tienda/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ejemplo/tienda/asgi.py b/ejemplo/tienda/asgi.py new file mode 100644 index 0000000..724ad7a --- /dev/null +++ b/ejemplo/tienda/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for tienda project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tienda.settings') + +application = get_asgi_application() diff --git a/ejemplo/tienda/settings.py b/ejemplo/tienda/settings.py new file mode 100644 index 0000000..9d98f59 --- /dev/null +++ b/ejemplo/tienda/settings.py @@ -0,0 +1,142 @@ +""" +Django settings for tienda project. + +Generated by 'django-admin startproject' using Django 5.1.1. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.1/ref/settings/ +""" + +from pathlib import Path + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY: str + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "tienda", + "pagos", +] + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", +] + +ROOT_URLCONF = "tienda.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "tienda.wsgi.application" + + +# Database +# https://docs.djangoproject.com/en/5.1/ref/settings/#databases + +DATABASES = { + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": BASE_DIR / "db.sqlite3", + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", + }, + { + "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/5.1/topics/i18n/ + +LANGUAGE_CODE = "es-cl" + +TIME_ZONE = "America/Santiago" + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.1/howto/static-files/ + +STATIC_URL = "static/" + +# Default primary key field type +# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" + + +# Configuración de django-payments +PAYMENT_HOST = "mi-tienda.cl" # Reemplaza con tu dominio +PAYMENT_USES_SSL = True # Usa True si tienes HTTPS, False en caso contrario +PAYMENT_MODEL = "pagos.modelos.Pago" # Modelo personalizado para pagos + +# Configuración para proveedores chilenos (ejemplo con Flow) +PAYMENT_VARIANTS = { + "flow": ( + "django_payments_chile.FlowProvider", + { + "api_key": "", + "api_secret": "", + }, + ) +} diff --git a/ejemplo/tienda/urls.py b/ejemplo/tienda/urls.py new file mode 100644 index 0000000..87b6bfb --- /dev/null +++ b/ejemplo/tienda/urls.py @@ -0,0 +1,26 @@ +""" +URL configuration for tienda project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.1/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" + +from django.contrib import admin +from django.urls import path, include +from pagos.views import crear_pago + +urlpatterns = [ + path("admin/", admin.site.urls), + path("payments/", include("payments.urls")), + path("/tienda/crear-pago", crear_pago, name="crear_pago"), +] diff --git a/ejemplo/tienda/wsgi.py b/ejemplo/tienda/wsgi.py new file mode 100644 index 0000000..17531aa --- /dev/null +++ b/ejemplo/tienda/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for tienda project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tienda.settings') + +application = get_wsgi_application() diff --git a/mkdocs.yml b/mkdocs.yml index b876701..2dd9b6c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,8 @@ -site_name: Django Payments Chile +site_name: django-payments-chile repo_url: https://github.com/mariofix/django-payments-chile repo_name: mariofix/django-payments-chile site_url: https://mariofix.github.io/django-payments-chile -site_description: Documentacion para Django Payments +site_description: Pasarelas de pago chilenas para django-payments site_author: mariofix copyright: "MIT License" edit_uri: "" @@ -17,7 +17,7 @@ theme: text: Roboto language: es icon: - logo: material/alpha-k-box-outline + logo: material/contactless-payment repo: fontawesome/brands/github features: - navigation.tracking @@ -30,10 +30,10 @@ theme: - search.share plugins: - - git-committers: - repository: mariofix/django-payments-chile - branch: main - enabled: true + # - git-committers: + # repository: mariofix/django-payments-chile + # branch: main + # enabled: true - mkdocstrings - search