Aller au contenu principal
Sur cette page

Cette page inclut les étapes nécessaires pour intégrer PayPal en utilisant l'API DEUNA.

Une fois que nous avons le order_token, nous devons faire ce qui suit :

1. Créer un utilisateur

Créez un utilisateur avec DEUNA afin d'obtenir le jeton d'autorisation pour effectuer l'achat plus tard. Cette API retournera un utilisateur token qui seront nécessaires pour suivre les prochaines étapes.

Pour créer un utilisateur, suivez la Référence API. Si l'email utilisé existe déjà, l'API retournera le message user already exists, pour que vous puissiez procéder à Demande au Bureau du Procureur et puis, Connexion avec le OTP pour obtenir un nouvel utilisateur token et procéder à l'achat.

2. Obtenez des méthodes de paiement

Nous devons vérifier les méthodes de paiement pour obtenir la configuration du portefeuille PayPal. Vous pouvez suivre ceci guide.

  • Charge utile

    curl --location '{{base_url}}/merchants/orders/{{order_token}}/payments-methods' \
    --header 'x-api-key: {{merchant_private_key}}' \
    --header 'Authorization: Bearer {{user_token}}'
  • Renvoie la commande traitée avec son

    JSON
    {
      "data": [
        {
          "enabled": true,
          "method_type": "wallet",
          "processor_name": "paypal_wallet", // PayPal Wallet identifier
          "exclude_cvv": false,
          "stored_payment_methods": [
            {
              "payment_method": "adb1ef51-e073-49f5-ba3b-a7e42344fd15",
              "account_identifier": "johndoe@deuna.com"
            }
          ],
          "id": "58745b8e-7127-44ea-84ef-656b3ffc611b", // Payment method ID
          "authorization": {
            "required": true, // true | false
            "flow": "consent"
          }
        }
      ]
    }

Flux d'achat#

Selon la réponse obtenue de Obtenir les méthodes de paiement, nous pouvons suivre les flux suivants pour effectuer un achat:

Sans faute

C'est le flux à suivre lorsque la tokenisation d'un compte PayPal n'est pas nécessaire pour terminer l'achat.

Réponse de Obtenir des méthodes de paiement serait le suivant :

JSON
{
  "data": [
    {
      "enabled": true,
      "method_type": "wallet",
      "processor_name": "paypal_wallet", // PayPal Wallet identifier
      "exclude_cvv": false,
      "stored_payment_methods": [],
      "id": "58745b8e-7127-44ea-84ef-656b3ffc611b", // Payment method ID
      "authorization": {
        "required": false,
        "flow": "consent"
      }
    }
  ]
}

Dans ce flux, nous devons faire ce qui suit :

  1. Effectuer l'achat
    • Utilisez la guide Purchase V2. Voici une liste des champs obligatoires pour PayPal Wallet:

      ChampDescriptifValeur
      order.callback_urls.on_successRediriger l'URL après avoir autorisé l'achat avec votre compte PayPal Wallet.https://example.com/
      payment_source.method_typeType de méthode de paiement DEUNA.wallet
      payment_source.processorIdentifiant de méthode de paiement PayPal Wallet.paypal_wallet

      Charge utile

      JSON
      {
        "order_type": "DEUNA_CHECKOUT",
        "order_token": "{{order-token}}",
        "order": {
          "callback_urls": {
            "on_success": "https://example.com" // required for PayPal Wallet
          }
        },
        "payer_info": {
          "email": "johndoe@deuna.com"
        },
        "payment_source": {
          "method_type": "wallet", // required for PayPal Wallet
          "processor": "paypal_wallet" // required for PayPal Wallet
        },
        "anti_fraud_info": {
          "device": {
            "id": "xxxxxxx" // PayPal device ID, used in STC
          }
        }
      }

    Renvoie la commande traitée avec son

    JSON
    {
      "order": {
        "order_id": "620bbbf4-1f08-4cda-8609-dade541cb80e",
        "store_code": "all",
        "currency": "MXN",
        "tax_amount": 0,
        "display_tax_amount": "",
        "shipping_amount": 0,
        "display_shipping_amount": "MXN 0.00",
        "items_total_amount": 2175,
        "display_items_total_amount": "MXN 21.75",
        "sub_total": 2075,
        "display_sub_total": "MXN 20.75",
        "total_amount": 2190,
        "display_total_amount": "MXN 21.90",
        "items": [
          {
            "id": "849fd015-2e1b-4ccc-a00c-aacbefeb71c8",
            "name": "Papas",
            "description": "Papas fritas con paprica",
            "options": "",
            "total_amount": {
              "amount": 2100,
              "original_amount": 2100,
              "display_amount": "MXN 21.00",
              "display_original_amount": "MXN 21.00",
              "currency": "MXN",
              "currency_symbol": "$",
              "total_discount": 100,
              "display_total_discount": "MXN 1.00"
            },
            "unit_price": {
              "amount": 1050,
              "display_amount": "MXN 10.50",
              "currency": "MXN",
              "currency_symbol": "$"
            },
            "tax_amount": {
              "amount": 50,
              "display_amount": "MXN 0.50",
              "currency": "MXN",
              "currency_symbol": "$"
            },
            "quantity": 2,
            "uom": "",
            "upc": "",
            "sku": "",
            "isbn": "",
            "brand": "",
            "manufacturer": "",
            "category": "",
            "color": "",
            "size": "",
            "weight": {
              "weight": 0,
              "unit": ""
            },
            "image_url": "https://media-cdn.tripadvisor.com/media/photo-s/1a/e2/c6/68/porcion-de-papas-a-la.jpg",
            "details_url": "",
            "type": "",
            "taxable": true,
            "discounts": [],
            "included_in_subscription": false,
            "item_details": []
          },
          {
            "id": "c871341d-317b-4fdb-9d72-b55e55958633",
            "name": "Refresco",
            "description": "Coca-cola Sprite",
            "options": "",
            "total_amount": {
              "amount": 90,
              "original_amount": 75,
              "display_amount": "MXN 0.90",
              "display_original_amount": "MXN 0.75",
              "currency": "MXN",
              "currency_symbol": "$",
              "total_discount": 0,
              "display_total_discount": "MXN 0.00"
            },
            "unit_price": {
              "amount": 75,
              "display_amount": "MXN 0.75",
              "currency": "MXN",
              "currency_symbol": "$"
            },
            "tax_amount": {
              "amount": 15,
              "display_amount": "MXN 0.15",
              "currency": "MXN",
              "currency_symbol": "$"
            },
            "quantity": 1,
            "uom": "",
            "upc": "",
            "sku": "",
            "isbn": "",
            "brand": "",
            "manufacturer": "",
            "category": "",
            "color": "",
            "size": "",
            "weight": {
              "weight": 0,
              "unit": ""
            },
            "image_url": "https://media-cdn.tripadvisor.com/media/photo-s/1a/e2/c6/68/porcion-de-papas-a-la.jpg",
            "details_url": "",
            "type": "",
            "taxable": true,
            "discounts": [],
            "included_in_subscription": false,
            "item_details": []
          }
        ],
        "discounts": [],
        "shipping_address": {
          "id": 762,
          "user_id": "",
          "first_name": "Pablo",
          "last_name": "Murillo",
          "phone": "+551146733466",
          "identity_document": "",
          "lat": -22.943934,
          "lng": -43.182984,
          "address1": "Jose luis lagrange 3, 12",
          "address2": "Polanco I Sección",
          "city": "MIGUEL HIDALGO",
          "zipcode": "11510",
          "state_name": "CIUDAD DE MÉXICO",
          "country_code": "MX",
          "additional_description": "confirmar",
          "address_type": "home",
          "is_default": false,
          "created_at": "2025-02-26T21:38:07Z",
          "updated_at": "2025-02-26T21:38:07Z",
          "identity_document_type": "",
          "email": "johndoe@deuna.com",
          "state_code": "",
          "country": "MX"
        },
        "shipping_options": null,
        "user_instructions": "",
        "metadata": {
          "cd_string_one": 1,
          "highrisk_txn_flag": 1,
          "vertical": "Retail"
        },
        "status": "pending",
        "payment": {
          "data": {
            "amount": {
              "amount": 2190,
              "currency": "MXN"
            },
            "metadata": {
              "authorization_code": "",
              "external_transaction_id": "6L9248503S6803027"
            },
            "from_card": {
              "card_brand": "",
              "first_six": "",
              "last_four": "",
              "bank_name": "",
              "country_iso": "",
              "credential_source": "",
              "expiry_month": "",
              "expiry_year": ""
            },
            "updated_at": "2025-02-26 21:38:12.748800962 +0000 UTC",
            "method_type": "wallet",
            "merchant": {
              "store_code": "all",
              "id": "2a18bdc9-d617-45cc-b718-838451dcf33a",
              "affiliation_code": "",
              "mcc": ""
            },
            "created_at": "2025-02-26 21:38:12.747998969 +0000 UTC",
            "id": "620bbbf4-1f08-4cda-8609-dade541cb80e",
            "processor": "paypal_wallet",
            "customer": {
              "email": "user_dev_219@testuser.com",
              "id": "9d920735-c3b1-4908-aba2-762d86fda7e0",
              "first_name": "",
              "last_name": ""
            },
            "status": "pending",
            "reason": "",
            "external_transaction_id": "6L9248503S6803027",
            "merchant_payment_processor_name": "",
            "authorization_code": "",
            "installment_interest_calculations": null,
            "next_action": {
              "action": "authorization_wallet",
              "url": "",
              "authorization_wallet": {
                "token": "6L9248503S6803027",
                "redirect_url": "https://www.sandbox.paypal.com/checkoutnow?token=6L9248503S6803027"
              }
            },
            "merchant_payment_processor_id": ""
          }
        },
        "gift_card": [],
        "redirect_url": "",
        "webhook_urls": null,
        "total_discount": 0,
        "display_total_discount": "MXN 0.00",
        "shipping": null,
        "cash_change": 0,
        "shipping_method": null,
        "shipping_methods": [],
        "timezone": "",
        "scheduled_at": "",
        "billing_address": {
          "id": 191,
          "user_id": "",
          "first_name": "Pablo",
          "last_name": "Murillo",
          "phone": "+551146733466",
          "identity_document": "",
          "lat": -22.943934,
          "lng": -43.182984,
          "address1": "Jose luis lagrange 3, 12",
          "address2": "Polanco I Sección",
          "city": "MIGUEL HIDALGO",
          "zipcode": "11510",
          "state_name": "CIUDAD DE MÉXICO",
          "country_code": "MX",
          "additional_description": "confirmar",
          "address_type": "home",
          "is_default": false,
          "created_at": "2025-02-26T21:38:07Z",
          "updated_at": "2025-02-26T21:38:07Z",
          "email": "johndoe@deuna.com",
          "identity_document_type": "",
          "country": ""
        },
        "payment_link": "",
        "display_shipping_tax_amount": "MXN 0.00",
        "display_total_tax_amount": "MXN 1.15",
        "shipping_tax_amount": 0,
        "total_tax_amount": 115,
        "user_id": "",
        "include_payment_options": [],
        "redirect_urls": {
          "success": "",
          "pending": "",
          "error": "",
          "fallback": "",
          "close": ""
        },
        "created_at": "",
        "updated_at": "",
        "payer_info": null,
        "discount_amount": 100,
        "shipping_discount_amount": 0,
        "device_fingerprint": "",
        "expired_at": "",
        "version": "0",
        "fraud": {
          "analysis": {
            "score": 0.113950945,
            "processor": "SIFT",
            "risk_level": "",
            "status": "automatic_decision",
            "type": "",
            "fraud_decision": "",
            "details": "",
            "processor_response": ""
          }
        },
        "display_total_interest_amount": "",
        "payment_method": "",
        "token": "",
        "statement_descriptor": "",
        "browser_details": {
          "screen_height": 1000,
          "screen_width": 2000,
          "user_agent": "",
          "ip_address": "",
          "color_depth": 0,
          "java_enabled": false,
          "java_script_enabled": false,
          "language": "",
          "time_zone_offset": 0,
          "accept_header": ""
        },
        "callback_urls": null
      },
      "custom_fields": []
    }
  2. Rediriger vers PayPal

    L'API d'achat retournera une réponse avec un pending et un next_action contenant l'URL de paiement PayPal, vers laquelle nous devrions rediriger l'utilisateur.

    JSON
    {
      "order": {
        "order_id": "620bbbf4-1f08-4cda-8609-dade541cb80e",
        "store_code": "all",
        "currency": "MXN",
        "tax_amount": 0,
        "display_tax_amount": "",
        "shipping_amount": 0,
        "display_shipping_amount": "MXN 0.00",
        "items_total_amount": 2175,
        "display_items_total_amount": "MXN 21.75",
        "sub_total": 2075,
        "display_sub_total": "MXN 20.75",
        "total_amount": 2190,
        "display_total_amount": "MXN 21.90",
        ...
        "status": "pending",
        "payment": {
          "data": {
            "method_type": "wallet",
            "processor": "paypal_wallet",
            "status": "pending",
            "external_transaction_id": "6L9248503S6803027",
            "next_action": {
              "action": "authorization_wallet",
              "url": "",
              "authorization_wallet": {
                "token": "6L9248503S6803027",
                "redirect_url": "https://www.sandbox.paypal.com/checkoutnow?token=6L9248503S6803027"
              }
            },
            ...
          }
        },
        "created_at": "",
        "updated_at": "",
        ...
      },
      "custom_fields": []
    }
  3. Vérifiez l'état de la commande (Polling).

    Une fois que nous avons dirigé l'utilisateur vers PayPal, nous devons vérifier le statut de paiement pendant qu'ils l'autorisent avec leur compte, sondage jusqu'à ce que le statut change.

    Nous devons Obtenir la commande et vérifier payment.data.status.

    Les statuts attendus sont les suivants :

    • pending: L'utilisateur n'a pas encore autorisé le paiement sur PayPal.
    • processed: L'utilisateur a autorisé le paiement sur PayPal, et la capture a été réussie.
    • denied: Une erreur s'est produite lors du traitement du paiement.

    Renvoie la commande traitée avec son

    JSON
    {
      "token": "ce7f91cc-7306-4a36-b9a8-b266545c56ba",
      "order_type": "DEUNA_CHECKOUT",
      "order": {
        "order_id": "620bbbf4-1f08-4cda-8609-dade541cb80e",
        "store_code": "all",
        "currency": "MXN",
        "tax_amount": 0,
        "display_tax_amount": "MXN 0.00",
        "shipping_amount": 0,
        "display_shipping_amount": "MXN 0.00",
        "items_total_amount": 2175,
        "display_items_total_amount": "MXN 21.75",
        "sub_total": 2075,
        "display_sub_total": "MXN 20.75",
        "total_amount": 2190,
        "display_total_amount": "MXN 21.90",
        "discounts": [],
        "status": "succeeded",
        "payment": {
          "data": {
            "method_type": "wallet",
            "processor": "paypal_wallet",
            "status": "processed",
            "external_transaction_id": "5S773340XV029382D"
          }
        },
        "created_at": "2025-02-26 21:38:07.860816361 +0000 UTC",
        "updated_at": "",
        "callback_urls": null
      },
      "custom_fields": [],
      "checkout_modules": [],
      "refunds": []
    }

Avec la valse

C'est le flux à suivre lorsque la tokenisation d'un compte PayPal est nécessaire pour terminer l'achat.

Réponse de Obtenir des méthodes de paiement serait le suivant :

JSON
{
  "data": [
    {
      "enabled": true,
      "method_type": "wallet",
      "processor_name": "paypal_wallet", // PayPal Wallet identifier
      "exclude_cvv": false,
      "stored_payment_methods": [
        {
          "payment_method": "adb1ef51-e073-49f5-ba3b-a7e42344fd15",
          "account_identifier": "johndoe@deuna.com"
        }
      ],
      "id": "58745b8e-7127-44ea-84ef-656b3ffc611b", // Payment method ID
      "authorization": {
        "required": true,
        "flow": "consent"
      }
    }
  ]
}

À ce stade, l'utilisateur devrait avoir la possibilité d'ajouter un nouveau compte ou de procéder à l'achat en utilisant un compte tokenisé précédemment.

  1. Ajouter un nouveau compte PayPal

    Pour inventer un nouveau compte, il faut suivre les étapes suivantes :

    1. Créer le consentement du client.
      À cette étape, nous allons créer une demande d'autorisation PayPal pour l'utilisateur.
      • Demande
        curl --location --request POST '{{base_url}}/merchants/orders/{{order_token}}/consent?payment_method_id={{payment_method_id}}' \
        --header 'X-API-KEY: {{merchant_private_key}}' \
        --header 'Content-Type: application/json' \
        --header 'X-Request-Id: xxxxx' \
        --header 'Authorization: Bearer {{user_token}}'
      • Renvoie la commande traitée avec son
        JSON
        {
          "id": "1625a32a-df4c-4d9b-aec1-4510b3625865",
          "type": "transaction.authentication.pending",
          "created": "1740608931",
          "data": {
            "order": {
              "order_token": "7e975d44-a061-4d70-af0f-673f6ee56445",
              "transaction_id": "51b38afd-150f-419a-b718-b583209160fe",
              "external_transaction_id": ""
            },
            "consent": {
              "id": "6fe9a045-9a46-4b25-8b60-d5a9586494c5",
              "status": "pending",
              "expires_at": "2025-02-26T22:38:51Z",
              "authorization_id": "5KA20765HT8087515",
              "redirect_url": "https://www.sandbox.paypal.com/agreements/approve?approval_session_id=5KA20765HT8087515"
            },
            "error": null
          }
        }
    2. Rediriger vers PayPal
      L'API retournera le consentement comme pending et une URL PayPal où l'utilisateur doit entrer ses détails de compte et autoriser son utilisation.
      JSON
      {
        "id": "1625a32a-df4c-4d9b-aec1-4510b3625865",
        "type": "transaction.authentication.pending",
        "created": "1740608931",
        "data": {
          "order": {
            "order_token": "7e975d44-a061-4d70-af0f-673f6ee56445",
            "transaction_id": "51b38afd-150f-419a-b718-b583209160fe",
            "external_transaction_id": ""
          },
          "consent": {
            "id": "6fe9a045-9a46-4b25-8b60-d5a9586494c5",
            "status": "pending",
            "expires_at": "2025-02-26T22:38:51Z",
            "authorization_id": "5KA20765HT8087515",
            "redirect_url": "https://www.sandbox.paypal.com/agreements/approve?approval_session_id=5KA20765HT8087515"
          },
          "error": null
        }
      }
    3. Obtenir le statut de consentement du client (Polling)
      Une fois que nous avons dirigé l'utilisateur vers PayPal, nous devons vérifier le statut de consentement pendant qu'ils autorisent l'utilisation de leur compte, sondage jusqu'à ce que le statut change.
      • Demande
        curl --location '{{base_url}}/merchants/orders/{{order_token}}/consent' \
        --header 'X-API-KEY: {{merchant_private_key}}' \
        --header 'Content-Type: application/json' \
        --header 'X-Request-Id: xxxxx' \
        --header 'Authorization: {{user_token}}'
      • Renvoie la commande traitée avec son
        JSON
        {
          "id": "4d226ecf-cd9a-4cc0-a3cf-fa8b2d0efab7",
          "type": "transaction.authentication.updated",
          "created": "1740609613",
          "callback_url": "",
          "data": {
            "request_id": "62551ffd-6d67-46cb-a436-f1ec3aa56087",
            "order": {
              "order_token": "00000000-0000-0000-0000-000000000000",
              "transaction_id": "",
              "external_transaction_id": ""
            },
            "consent": {
              "id": "61fd7eb8-8a42-43fc-89d1-ab5c5ccaa0b9",
              "status": "success",
              "expires_at": "0001-01-01T00:00:00Z",
              "authorization_id": "95778196PH100683G",
              "redirect_url": ""
            },
            "error": null
          }
        }
        Les statuts attendus sont les suivants :
      • pending: L'utilisateur n'a pas encore autorisé l'utilisation de son compte PayPal.
      • success: L'utilisateur a autorisé l'utilisation de son compte PayPal, et le compte a été tokenisé avec succès.
      • denied: Une erreur s'est produite lors de la tokenisation du compte, ou l'utilisateur n'a pas autorisé l'utilisation de son compte.
      • expired: L'utilisateur n'a pas autorisé l'utilisation de son compte à temps.\

        Une fois le consentement de l'utilisateur autorisé, le compte apparaîtra dans le stored_payment_methods de la réponse de Obtenir des méthodes de paiement.

      JSON
      {
        "data": [
          {
            "enabled": true,
            "method_type": "wallet",
            "processor_name": "paypal_wallet", // PayPal Wallet identifier
            "exclude_cvv": false,
            "stored_payment_methods": [
              {
                "payment_method": "6fe9a045-9a46-4b25-8b60-d5a9586494c5", // data.consent.id
                "account_identifier": "johndoe@deuna.com"
              }
            ],
            "id": "58745b8e-7127-44ea-84ef-656b3ffc611b", // Payment method ID
            "authorization": {
              "required": true,
              "flow": "consent"
            }
          }
        ]
      }

      À ce stade, nous devrions avoir un compte PayPal tokenized, ces jetons seront nécessaires pour les prochaines étapes. Ce compte jeton sera le payment_method champ de la liste des stored_payment_methods dans la réponse Obtenir des méthodes de paiement, ou il peut également être le data.consent.id champ de la réponse API de Créer ou Obtenir le consentement.

  2. Installations (facultatives)

    Nous pouvons vérifier les acomptes disponibles pour le compte PayPal de l'utilisateur avec la demande suivante:

    curl --location '{{base_url}}/merchants/transactions/orders/{{order_token}}/installments?payment_method={{payment_method}}&method_type=wallet&payment_method_id={{payment_method_id}}' \
    --header 'x-api-key: {{merchant_public_key}}'

    Renvoie la commande traitée avec son

    JSON
    {
      "installments": [
        {
          "installments": 3,
          "installments_amount": 3333,
          "display_installments_amount": "MXN 33.33",
          "installment_rate": 0,
          "display_installment_label": "3 de $33.33 sin interés",
          "plan_option_id": "2e0cc595-40e6-4ecf-b43b-35d5c33f88b6",
          "installment_total_amount": 10000,
          "installment_tax": [],
          "display_installment_total_amount": "MXN 100.00"
        },
        {
          "installments": 6,
          "installments_amount": 1666,
          "display_installments_amount": "MXN 16.66",
          "installment_rate": 0,
          "display_installment_label": "6 de $16.66 sin interés",
          "plan_option_id": "25c7ef41-ebe8-4197-bdb3-f8651c261ea8",
          "installment_total_amount": 10000,
          "installment_tax": [],
          "display_installment_total_amount": "MXN 100.00"
        }
      ]
    }
  3. Effectuer l'achat

    Utilisez la guide Purchase V2. Voici une liste des champs obligatoires pour PayPal Wallet:

    ChampDescriptifValeur
    payment_source.method_typeType de méthode de paiement DEUNAwallet
    payment_source.processorIdentifiant de méthode de paiement PayPal Wallet.paypal_wallet
    payment_source.payment_methodJeton de compte PayPal.6fe9a045-9a46-4b25-8b60-d5a9586494c5
    payment_source.payment_method_idPayPal Wallet mode de paiement ID retourné dans le id du secteur Obtenir des méthodes de paiement response.58745b8e-7127-44ea-84ef-656b3ffc611b
    • Charge utile
      JSON
      {
        "order_type": "DEUNA_CHECKOUT",
        "order_token": "{{order-token}}",
        "payer_info": {
          "email": "johndoe@deuna.com"
        },
        "payment_source": {
          "method_type": "wallet", // required for PayPal Wallet
          "processor": "paypal_wallet", // required for PayPal Wallet
          "payment_method": "{{payment_method}}", // required
          "payment_method_id": "{{payment_method_id}}" // required
        },
        "anti_fraud_info": {
          "device": {
            "id": "xxxxxxx" // PayPal device ID, used in STC
          }
        }
      }

    Renvoie la commande traitée avec son

    JSON
    {
      "order_type": "DEUNA_CHECKOUT",
      "order_token": "c582917a-07d2-4f07-b107-fd535e5565cb",
      "order": {
        "order_id": "777e66e5-3326-4b04-ad0a-93be7f2028bb",
        "store_code": "all",
        "currency": "MXN",
        "tax_amount": 0,
        "display_tax_amount": "",
        "shipping_amount": 0,
        "display_shipping_amount": "MXN 0.00",
        "items_total_amount": 2175,
        "display_items_total_amount": "MXN 21.75",
        "sub_total": 2075,
        "display_sub_total": "MXN 20.75",
        "total_amount": 2190,
        "display_total_amount": "MXN 21.90",
        ...
        "status": "succeeded",
        "payment": {
          "data": {
            "method_type": "wallet",
            "processor": "paypal_wallet",
            "customer": {
              "email": "user_dev_219@testuser.com",
              "id": "9d920735-c3b1-4908-aba2-762d86fda7e0",
              "first_name": "",
              "last_name": ""
            },
            "status": "processed",
            "external_transaction_id": "0YF74805EM9345944",
            ...
          }
        },
        ...
        "callback_urls": null
      }
    }

    État d'avancement prévu :

    • succeeded: Paiement effectué avec succès.
    • denied: Une erreur s'est produite lors du traitement du paiement.

Intégrer FraudeNet#

Fracknet est une bibliothèque développée par PayPal qui analyse les données envoyées par le navigateur pendant l'ensemble du processus d'achat pour prévenir toute fraude possible dans les transactions effectuées.

Le réseau frauduleux doit être opérationnel tout au long du processus de transaction. Pour son intégration, PayPal fournit la documentation suivante: Intégrer FraudeNet

Montants des remises#

Les réductions dans PayPal sont prises en charge au niveau de la commande. Sur la charge utile, vous devez traiter toute réduction discount_amount.