J'ai implémenté le nouveau Stripe Checkout
sur mon NodeJS server
, mais je ne peux pas spécifier le taux de taxe pour la facturation.
Selon ma compréhension Les taux de taxe doivent être spécifiés dans API d'intention de paiement . Le fait est que le nouveau Checkout
crée automatiquement un Payment Intent
via son CreateSession (voir payment_intent_data
), mais je ne suis pas en mesure d'insérer un taux de taxe lors de sa création.
Comment cela peut-il être fait? Ce que je veux réaliser, c'est que l'utilisateur connaisse le% de taxe à la fois dans le Checkout UI
et dans la finale email invoice
.
Voici mon code:
return stripe.checkout.sessions.create({
payment_method_types: [paymentMethod],
line_items: [{
name: name,
description: description,
images: [imageUrl],
amount: amount,
currency: currency,
quantity: 1
}],
success_url: successUrl,
cancel_url: cancelUrl,
customer: stripeId,
payment_intent_data: {
receipt_email: email,
metadata: {
userId: userId,
amount: amount,
currency: currency,
ref: ref,
stripeId: stripeId,
details: details
}
}
}).then(session => {
return res.send(session)
Au moment de cette réponse, Stripe Checkout ne prend pas en charge les taux de taxe.
Une alternative est de collecter les détails de paiement en utilisant le mode "configuration" Checkout [1], puis de créer un PaymentIntent [2] à partir de votre serveur avec le PaymentMethod collecté dans Checkout et le taux de taxe que vous souhaitez utiliser.
Stripe checkout support now Taux d'imposition.
À partir de la version "Stripe.net" 35.12.0, vous pouvez définir un taux de taxe par défaut lorsque vous créez une nouvelle session.
var options = new SessionCreateOptions {
PaymentMethodTypes = new List<string> {
"card",
},
SubscriptionData = new SessionSubscriptionDataOptions {
DefaultTaxRates = new List<string> {
_STRIPE_OPTIONS.Tax // Your tax rate id
},
Items = new List<SessionSubscriptionDataItemOptions> {
new SessionSubscriptionDataItemOptions {
Plan = request.PlanId, // Your plan id
},
},
},
Customer = customer.StripeCustomerId,
SuccessUrl = _STRIPE_OPTIONS.SuccessUrl,
CancelUrl = _STRIPE_OPTIONS.CancelUrl
};
var service = new SessionService();
var session = service.Create(options);
N'oubliez pas de mettre à jour votre version de webhook si vous en utilisez une.