ed92991872
Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3 Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
47 lines
1.4 KiB
Markdown
47 lines
1.4 KiB
Markdown
# `paypal_execute`
|
|
|
|
**Archivo:** `tienda/views.py`
|
|
**URL:** `/tienda/paypal/ejecutar/`
|
|
**Tipo:** Vista privada (requiere autenticación)
|
|
**Decorador:** `@login_required`
|
|
|
|
## Descripción
|
|
|
|
Procesa la confirmación de un pago de PayPal después de que el usuario lo aprueba en el portal de PayPal. PayPal redirige al usuario a esta URL con los parámetros `PayerID` y el `token` de la transacción.
|
|
|
|
El proceso es:
|
|
|
|
1. Obtiene `payment_id` de la sesión y `PayerID` de los parámetros GET.
|
|
2. Configura y ejecuta el pago en PayPal.
|
|
3. Si el pago es exitoso, llama a [`create_order_from_cart`](./create_order_from_cart.md) para crear el pedido.
|
|
4. Limpia las claves de sesión relacionadas con el pago.
|
|
5. Renderiza la página de éxito con el pedido.
|
|
|
|
## Firma
|
|
|
|
```python
|
|
def paypal_execute(request: HttpRequest):
|
|
```
|
|
|
|
## Parámetros
|
|
|
|
| Nombre | Tipo | Descripción |
|
|
|-----------|---------------|-----------------------|
|
|
| `request` | `HttpRequest` | Petición HTTP de Django. |
|
|
|
|
## Parámetros GET (de PayPal)
|
|
|
|
| Parámetro | Descripción |
|
|
|------------|----------------------------------------------|
|
|
| `PayerID` | ID del pagador proporcionado por PayPal. |
|
|
|
|
## Template (en caso de éxito)
|
|
|
|
`tienda/checkout_success.html`
|
|
|
|
## Redirecciones
|
|
|
|
| Caso | Destino |
|
|
|-------------------|------------|
|
|
| Datos incompletos / error en el pedido | `checkout` |
|