Mettre à jour dynamiquement les montants des paiements
Apprenez à modifier les montants totaux lorsque les clients changent leur sélection lors du paiement.
Mettez à jour le montant d’une Checkout-Session ou d’un PaymentIntent lorsque les clients modifient leurs achats ou le montant de leur paiement. Recalculez les totaux sur votre serveur, puis mettez à jour le montant du PaymentIntent.
Cas d’usage fréquents
- Ajouter ou supprimer des produits additionnels (tels qu’un emballage cadeau ou une garantie).
- Sélectionnez un autre mode de livraison ou un autre délai de livraison.
- Ajoutez des services ou des débits supplémentaires.
- Appliquer ou supprimer un code de réduction ou un crédit magasin avant taxes.
Bonnes pratiques en matière de sécurité :
- Recalculez les montants sur votre serveur. Ne vous fiez pas aux prix ou aux totaux fournis par le client.
- Autorisez la mise à jour en fonction de vos règles d’entreprise (par exemple, imposez des quantités maximales).
- Ne mettez à jour que les sessions qui sont actives et non terminées ou expirées.
Contraintes et comportement
- Vous pouvez mettre à jour le montant lorsque le Payment Intent ou la session Checkout est en attente de paiement (par exemple,
requires_oupayment_ method requires_).confirmation - Après confirmation, vous ne pouvez généralement pas augmenter le montant.
Mettre à jour le SDK clientCôté client
Côté client
Lorsque vous utilisez Elements avec l’API Checkout Sessions, encapsulez les appels client à votre serveur dans runServerUpdate afin que l’état du paiement et les totaux soient actualisés.
Créer des endpoints de serveurCôté serveur
Côté serveur
Calculez les montants et validez les entrées sur votre serveur. Ensuite, vous pouvez mettre à jour line_ avec price_data pour ajouter des débits ad hoc.
Remarque
La mise à jour de line_ ou price_ recalcule le total de la session et les taxes.