Programmez votre logique métier directement sur Stripe à l'aide de scriptsVersion bêta privée
Utilisez TypeScript pour créer une logique personnalisée et étendre les fonctionnalités de Stripe.
Grâce à un sous-ensemble de Typescript, vous pouvez écrire et soumettre une logique personnalisée dans Stripe. Grâce aux scripts, vous pouvez :
- définir votre propre logique pour des objets Stripe spécifiques
- adapter votre compte Stripe aux besoins propres à votre entreprise
- développer Stripe hors des limites de ses fonctionnalités standard
Par exemple, vous pouvez utiliser des scripts pour créer une logique de réduction personnalisée sur les nouveaux bons de réduction, puis appliquer ces bons aux abonnements et aux factures.
Cycle de vie des scripts
Reportez-vous au cycle de vie des scripts suivant pour comprendre comment les utiliser :
- Commencez par créer une logique personnalisée pour un cas d’usage pris en charge.
- Dans le cadre de la création de scripts, vous pouvez définir des valeurs de configuration. Ce sont des paramètres qu’un utilisateur de script transmet lors de la création d’un objet personnalisé.
- Stripe enregistre votre script sur le service de script une fois que vous l’avez soumis pour vérification.
- Vous pouvez ensuite appeler le script lors de la création d’objets, p. ex. un objet
Coupon
ouSubscription
.
Arguments de la fonction
Vous pouvez classer l’argument des fonctions dans deux catégories :
Valeurs définies par l’auteur
On peut considérer que les valeurs définies par l’auteur ont deux publics :
Auteur du script : L’auteur du script définit la fonction (c’est-à-dire la logique réelle) et les valeurs d’entrée de la fonction. Par exemple, vous pourriez écrire un script appliquant un pourcentage avec plafond dans lequel l’auteur définit deux valeurs d’entrée (
percent
etmaximum
).Utilisateur du script : Une fois que l’auteur du script a défini les valeurs, l’utilisateur du script peut définir les valeurs des deux entrées via le Dashboard ou l’API (par exemple, 10 % de réduction sur un maximum de 100 USD).
L’auteur du script détermine les parties du script que l’utilisateur du script peut personnaliser. L’utilisateur du script applique ensuite ses propres valeurs aux parties personnalisables du script.
export type scriptConfiguration = { max_discount_amount: { amount: number; currency: string; }, discount_percent: number; };
Le SDK fournit des types intégrés que vous pouvez utiliser dans le cadre de votre définition de configuration. Ces types préconfigurés s’affichent sous la forme d’une interface utilisateur de champ de saisie adaptée dans le Dashboard. Si vous avez de nouveaux types préconfigurés à suggérer, contactez scripts-preview@stripe.com ou notre service Support.
import type {PositiveMonetaryAmount, Percent} from '@stripe/scripts'; export type scriptConfiguration = { max_discount_amount: PositiveMonetaryAmount; discount_percent: Percent; };
Les valeurs de configuration disposent de validations de schéma par défaut lorsque l’utilisateur du script tente de définir les valeurs. En outre, vous pouvez définir une validation personnalisée en vous référant aux validations de schémas. Si nous ne prenons pas en charge votre cas d’usage de validation, nous vous recommandons d’intégrer le contrôle de validation dans la définition de votre fonction et de contacter scripts-preview@stripe.com.
Valeurs définies par Stripe
Stripe fournit des valeurs d’argument, et vous ne pouvez pas les personnaliser. Nous fournissons les valeurs au moment de l’exécution de la fonction, et elles incluent généralement des objets Stripe, par ex. les objets Customer
ou Line Item
. Les objets spécifiques varient d’une interface de fonction à l’autre. S’il vous manque des données, contactez scripts-preview@stripe.com.
/** * DiscountableLineItem data structure * * @typedef {Object} DiscountableLineItem * @property {MonetaryAmount} subtotal * @property {string | null} price_id * @property {number | null} quantity * @property {MonetaryAmount | null} unit_amount * @property {TimeRange} period * @property {Price | null} price */ export interface DiscountableLineItem { subtotal: MonetaryAmount; price_id?: string | null; quantity?: number | null; unit_amount?: MonetaryAmount | null; period: TimeRange; price?: Price | null; }
Logique de fonction
L’auteur du script définit la personnalisation utilisée par la logique de la fonction de script. Tous les arguments sont « transmis par valeur », ce qui signifie qu’aucune modification apportée aux valeurs d’argument dans la fonction n’affecte la valeur d’origine en dehors de la fonction.
Gestion appropriée des erreurs d’exécution
Dans la plupart des cas, vous chercherez à détecter l’erreur et à disposer un comportement de secours. Dans de rares cas, vous souhaiterez peut-être lever une exception. La levée d’une exception interrompt l’exécution complète du code associé au script. Veillez donc à lever une exception uniquement en l’absence d’autres options.
Écrire des tests sur votre environnement de test
Même si nous n’exigeons pas que vous utilisiez une suite de tests automatiques avec votre fonction de script, nous vous le recommandons. Vous pouvez écrire des tests sur votre environnement de test, mais l’ancien environnement du mode test ne prend pas en charge les scripts. Si vous avez besoin de conseils, contactez scripts-preview@stripe.com.
Valeur renvoyée par la fonction
La valeur renvoyée par la fonction doit respecter l’interface, qui varie en fonction de la personnalisation. Consultez le SDK pour la définition spécifique de l’interface et assurez-vous que votre fonction respecte l’interface.