# Tests (/fr/online/getting-started/testing)



Testez votre intégration du Checkout dans la sandbox Tapaya avant d’accepter des paiements réels. Les paiements en sandbox utilisent des cartes de test, il n’y a donc aucun mouvement d’argent réel. En production, le Checkout accepte des paiements réels pour les commerçants approuvés.

<div className="fd-steps [&_h3]:fd-step">
  ### Pointez votre serveur vers l’API de la sandbox [#point-your-server-at-the-sandbox-api]

  Définissez `TAPAYA_CHECKOUT_API_URL` sur `https://api.sandbox.tapaya.com` et stockez une clé checkout de commerçant dans `TAPAYA_CHECKOUT_API_KEY`. Conservez les deux sur votre serveur.

  ```bash title=".env"
  TAPAYA_CHECKOUT_API_URL=https://api.sandbox.tapaya.com
  TAPAYA_CHECKOUT_API_KEY=tapaya_test_...
  ```

  Effectuez l’[onboarding](/merchants/onboarding) avec la fonctionnalité de paiements en ligne et vérifiez que le commerçant est **Ready** dans les [paramètres du Checkout](/online/integration/checkout_settings). Enregistrez les URL de retour si vous utilisez le Hosted Checkout.

  ### Créez une session de test [#create-a-test-session]

  Créez une session pour une commande de test, exactement comme dans le [démarrage rapide](./quick_start_guide). Stockez l’`id`
  renvoyé avec la commande avant la redirection, afin de pouvoir vérifier le résultat même si le navigateur est fermé.

  ### Payez avec une carte de test [#pay-with-a-test-card]

  Ouvrez l’`url` de la session et payez avec l’une des cartes ci-dessous, une date d’expiration future quelconque et le CVC `123`.

  ### Vérifiez depuis votre serveur [#verify-from-your-server]

  Récupérez la session depuis votre serveur et comparez sa référence de commande, son montant, sa devise et son
  `paymentStatus` avec la commande enregistrée. Le retour du navigateur sur votre URL de succès ne prouve pas le paiement.
</div>

## Cartes de test [#test-cards]

Utilisez ces cartes de test.

| Scénario             | Numéro de carte       | Résultat attendu                                                                                             |
| :------------------- | :-------------------- | :----------------------------------------------------------------------------------------------------------- |
| Le paiement aboutit  | `4242 4242 4242 4242` | `paymentStatus: successful`. Votre serveur traite la commande une seule fois.                                |
| La carte est refusée | `4916 0184 7581 4056` | `paymentStatus: failed`, `status` reste `open`. Le client peut essayer une autre carte dans la même session. |
| 3-D Secure requis    | `4012 0018 0000 0016` | Effectuez le challenge de test. Ne traitez la commande qu’après que la récupération a confirmé le succès.    |

Une carte d’erreur de traitement peut passer la tokenisation et n’échouer qu’au moment du débit : vérifiez donc toujours le statut récupéré
plutôt que la réaction du formulaire de carte.

## Ce que couvre la sandbox [#what-the-sandbox-environment-covers]

* **Hosted Checkout :** les cartes, avec les cartes de test ci-dessus. Les boutons de portefeuille dépendent des paramètres du commerçant ainsi que de
  l’appareil et du navigateur du client : ne comptez donc pas sur leur affichage à chaque test.
* **Paiements intégrés :** les cartes et les portefeuilles pris en charge avec Tapaya.js 0.2.0. Testez la disponibilité des portefeuilles, l’annulation, les changements de total et la vérification côté serveur. Apple Pay exige un domaine de boutique enregistré. Voir [Embedded Checkout](/online/integration/embedded_checkout#add-apple-pay-and-google-pay).
* **Durée de vie de la session :** les sessions acceptent de nouveaux paiements pendant 30 minutes après leur création. Utilisez un nouveau `merchantOrderId` pour
  chaque test indépendant : une commande ne peut être payée qu’une seule fois, et une nouvelle session pour une commande impayée remplace
  la précédente.

Une fois le flux de base validé, parcourez la [liste de contrôle QA](./checklist), qui couvre les nouvelles tentatives, les réponses perdues
et les clients qui ne reviennent jamais.
