Saltar al contenido principal
En esta página

Descripción general#

AstroPay es una billetera digital que permite a los usuarios pagar, enviar y recibir dinero en todo el mundo a través de cuentas con múltiples monedas. DEUNA integra AstroPay como método de pago de billetera.

El flujo de pago de AstroPay funciona de la siguiente manera:

  1. El usuario selecciona AstroPay como método de pago e introduce su número de móvil.
  2. El usuario es redirigido a la página de autorización de AstroPay, que muestra un código QR (y una opción "Copiar enlace") para la orden.
  3. El usuario abre la aplicación AstroPay, ya sea escaneando el código QR o a través del enlace copiado, y confirma el pago allí.
  4. El pago se confirma en tiempo real una vez que el usuario lo aprueba en la aplicación.

Requisitos:

  • AstroPay a través de DEUNA está actualmente disponible para Argentina.
  • El usuario debe tener una cuenta de AstroPay activa.
  • Entornos:
    • Caja de arena: https://api.sandbox.deuna.io
    • Producción: https://api.deuna.io

Integre AstroPay a través de la API#

Paso 1: Crear la orden — POST /merchants/orders

Crea la orden contra la cual se iniciará el pago.

Ejemplo de solicitud

JSON
{
  "order": {
    "billingAddress": {
      "address1": "Jose Luis Lagrange 123, Piso 12",
      "address2": "Polanco I Sección",
      "addressType": "home",
      "city": "Buenos Aires",
      "countryCode": "ARG",
      "email": "jean.doe@example.com",
      "firstName": "Jean",
      "identityDocument": "205973330",
      "identityDocumentType": "CC",
      "lastName": "Doe",
      "lat": -23.555425,
      "lng": -46.677048,
      "phone": "+5491100000000",
      "stateName": "Buenos Aires",
      "zipcode": "7521"
    },
    "browserDetails": {
      "screenHeight": 1000,
      "screenWidth": 2000
    },
    "currency": "ARS",
    "items": [
      {
        "description": "Item description",
        "id": "daed042a-4002-4144-850f-0797dcdfe833",
        "imageUrl": "https://example.com/product.jpg",
        "name": "Item #1",
        "quantity": 2,
        "taxAmount": {
          "amount": 50,
          "currency": "ARS",
          "currencySymbol": "$"
        },
        "taxable": true,
        "totalAmount": {
          "amount": 2050,
          "currency": "ARS",
          "currencySymbol": "$",
          "originalAmount": 2100,
          "totalDiscount": 100
        },
        "unitPrice": {
          "amount": 1050,
          "currency": "ARS",
          "currencySymbol": "$"
        }
      }
    ],
    "orderId": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "paymentMethod": "wallet",
    "redirectUrls": {
      "success": "https://example.com/success"
    },
    "shippingAddress": {
      "additionalDescription": "confirm",
      "address1": "Rua Exemplo 123",
      "address2": "Bairro Exemplo",
      "addressType": "home",
      "city": "Buenos Aires",
      "countryCode": "BRA",
      "email": "jean.doe@example.com",
      "firstName": "Jean",
      "identityDocument": "205973330",
      "identityDocumentType": "CC",
      "lastName": "Doe",
      "lat": -22.943934,
      "lng": -43.182984,
      "phone": "+5491100000000",
      "stateName": "Buenos Aires",
      "zipcode": "1406"
    },
    "shippingMethods": [
      {
        "code": "12345JR",
        "cost": 250,
        "name": "Standard shipping"
      }
    ],
    "storeCode": "all",
    "subTotal": 5000000,
    "totalAmount": 5000000,
    "userInstructions": "Optional notes for the merchant",
    "webhookUrls": {
      "notifyOrder": "https://example.com/webhooks/order-status"
    }
  },
  "orderType": "DEUNA_CHECKOUT"
}

Paso 2: Iniciar el pago — POST /v2/merchants/orders/purchase

Utilizando la orden/token del Paso 1, esta llamada inicia la autorización de AstroPay.

Ejemplo de solicitud

JSON
{
  "order_token": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
  "order_type": "DEUNA_CHECKOUT",
  "payer_info": {
    "email": "jean.doe@example.com",
    "person_type": "UNKNOWN_PERSON"
  },
  "payment_source": {
    "method_type": "wallet",
    "processor": "astropay"
  },
  "anti_fraud_info": {
    "device": {
      "id": "0cddd683-12ba-4fca-9a5f-9d98c24d7312"
    },
    "session_id": "aa23e46d-edf0-4b2c-aa5d-10dc80070bf8",
    "browser": {
      "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
      "color_depth": 24,
      "language": "es",
      "screen_height": 1440,
      "screen_width": 2560
    }
  }
}

Respuesta

JSON
{
  "order": {
    "order_id": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "transaction_id": "d81fe7bf-748b-4a7a-bc8f-7be98c8ae748",
    "status": "pending",
    "currency": "ARS",
    "total_amount": 5000000,
    "payment": {
      "data": {
        "method_type": "wallet",
        "processor": "astropay",
        "status": "pending",
        "external_transaction_id": "92nAZK3PJQ4lrY3ln43CmV6Tbr8YqKXw5ykCpYwE",
        "next_action": {
          "action": "authorization_wallet",
          "authorization_wallet": {
            "redirect_url": "https://checkout-sandbox.astropay.com/payment/92nAZK3PJQ4lrY3ln43CmV6Tbr8YqKXw5ykCpYwE?data=..."
          }
        }
      }
    }
  }
}

3. Redirigir al usuario

  1. Utilice la URL de payment.data.next_action.authorization_wallet.redirect_url.
  2. Redirige al usuario a esa URL. AstroPay muestra una página con un código QR y una opción "Copiar enlace" para la orden; el usuario escanea el código (o abre el enlace copiado) con la aplicación AstroPay y confirma el pago allí.
  3. Una vez que el usuario aprueba el pago en la aplicación, AstroPay redirige al usuario de vuelta a través de las URL de devolución de DEUNA.
  4. Inmediatamente después del Paso 2, el estado se encuentra en pending — el usuario aún debe confirmar el pago en la aplicación AstroPay. Una vez que lo aprueba, el estado se convierte en succeeded o denied.
  5. Escuche el webhook configurado en order.webhookUrls.notifyOrder (Paso 1) para confirmar el estado final del pago.

Ganchos web:

  • Para registrar webhooks, póngase en contacto con DEUNA.

Pruebas:

Enlaces de aplicaciones:

https://appdistribution.firebase.dev/i/1f9f7f6e5a7df8ba

https://testflight.apple.com/join/1WwzwYfz

Utilice el número 12345678910 (cualquier código de país)
Código SMS: 000000