Passa al contenuto principale
In questa pagina

Panoramica#

AstroPay è un portafoglio digitale che consente agli utenti di pagare, inviare e ricevere denaro in tutto il mondo attraverso conti multivaluta. DEUNA integra AstroPay come metodo di pagamento portafoglio.

Il flusso di checkout AstroPay funziona come segue:

  1. L'utente seleziona AstroPay come metodo di pagamento e immette il numero di cellulare.
  2. L'utente viene reindirizzato alla pagina di autorizzazione AstroPay, che visualizza un codice QR (e un "Copy link" opzione) per l'ordine.
  3. L'utente apre l'app AstroPay — sia scansionando il codice QR o tramite il link copiato — e conferma il pagamento.
  4. Il pagamento viene confermato in tempo reale una volta che l'utente lo approva nell'app.

Requisiti:

  • AstroPay via DEUNA è attualmente disponibile per Argentina.
  • L'utente deve avere un account AstroPay attivo.
  • Ambiente:
    • Sandbox: https://api.sandbox.deuna.io
    • Produzione: https://api.deuna.io

Integrare AstroPay da API#

Passo 1: Creare l'ordine — POST /merchants/orders

Crea l'ordine che il pagamento sarà avviato contro.

Esempio di richiesta

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"
}

Fase 2: Avviare il pagamento — POST /v2/merchants/orders/purchase

Utilizzando l'ordine/sposta dal punto 1, questa chiamata inizia l'autorizzazione AstroPay.

Esempio di richiesta

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
    }
  }
}

Restituisce l’ordine elaborato con

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. Reindirizza l'utente

  1. Prendere l'URL da payment.data.next_action.authorization_wallet.redirect_url.
  2. Reindirizza l'utente a quell'URL. AstroPay visualizza una pagina con un codice QR e un'opzione "Copy link" per l'ordine - l'utente esegue la scansione del codice (o apre il link copiato) con l'applicazione AstroPay e conferma il pagamento lì.
  3. Una volta che l'utente approva il pagamento nell'app, AstroPay reindirizza l'utente indietro attraverso gli URL di callback di DEUNA.
  4. Subito dopo il passo 2, lo stato siede a pending — l'utente deve ancora confermare il pagamento nell'app AstroPay. Una volta che lo approvano, lo stato diventa succeeded o denied.
  5. Ascolta il webhook configurato in order.webhookUrls.notifyOrder (Step 1) per confermare lo stato di pagamento finale.

Webhooks:

  • Per registrare webhooks, si prega di contattare DEUNA.

Test:

Links app:

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

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

Utilizzare il numero 12345678910 (qualsiasi codice paese)
Codice SMS: 000000000