6 votes

importer stripe en utilisant node js + typescript

J'ai besoin d'importer Stripe dans mon application.

J'ai d'abord installé le paquet npm de stripe

npm install stripe --save

La documentation de Stripe indique que la clé secrète doit être définie avant de connecter l'api.

Dans Node, cela ressemble à ceci

var stripe = require('stripe')(' your stripe API key ');

Je dois le convertir en script

J'ai essayé la méthode suivante, mais cela n'a pas fonctionné pour moi.

import * as stripe from 'stripe';
stripe('sk_test_...')

si quelqu'un peut m'aider à résoudre ce problème, cela m'aidera beaucoup à poursuivre mon projet sans délai.

Merci.

9voto

8eecf0d2 Points 726

Comme britzkopf a dit, stripe ne fournit pas encore ses propres définitions (et ne le fera probablement jamais), mais vous pouvez utiliser les définitions de type à partir de @types/stripe .

npm install stripe @types/stripe

Et ensuite, importer et construire le Stripe comme suit.

import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');

Si, pour une raison ou une autre, vous souhaitez des importations à granularité plus fine, vous pouvez utiliser cette approche (un peu bricolée) à la place.

import { resources } from 'stripe';
const stripeData = require('stripe')('xxx_xxx_xxx');
const customers = new resources.Customers(stripeData, null);

4voto

britzkopf Points 81

C'est un demande de fonctionnalité . Va lui donner un autre pouce en l'air.

0voto

J'ai eu le même problème et la solution fournie n'a pas fonctionné pour moi :

import * as Stripe from 'stripe';
const stripe = new Stripe('xxx_xxx_xxx');

En utilisant cette approche, j'ai obtenu cette erreur

[ts] Impossible d'utiliser 'new' avec une expression dont le type est dépourvu d'un appel ou d'un appel. signature de construction. stripe.ts(1, 1) : Le type provient de cet import. Un import de type espace de nom ne peut pas être appelé ou construit, ce qui provoquera un échec lors de l'exécution. Pensez à utiliser un import par défaut ou un import require à la place. (alias) classe Stripe (alias) espace de noms Stripe Importation de Stripe

Je l'ai fait fonctionner en utilisant "allowSyntheticDefaultImports": true sur tsconfig.json Avec cette option de compilation, ce qui suit est valable en TypeScript :

import Stripe from "stripe";

const secret = process.env.STRIPE_SECRET!;
export const stripe = new Stripe(secret);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X