6 votes

Ai-je besoin de mon propre serveur pour utiliser l'API Stripe ?

Je veux mettre en place des paiements dans mon application via Stripe. Je lis leur documentation et il est mentionné que je vais utiliser mon propre serveur pour facturer quelqu'un après avoir récupéré un jeton de Stripe. ( documentation sur les bandes )

stripe documentation

Pourquoi ai-je besoin d'un serveur pour facturer mon utilisateur ? Pourquoi ne puis-je pas simplement appeler les méthodes de l'API Stripe pour facturer - qu'est-ce que je fais de spécial sur mon serveur ? Existe-t-il un moyen de facturer sans créer mon propre serveur ? Est-ce que Firebase pourrait être suffisant ?

Gracias

5voto

drhr Points 621

Oui. La raison pour laquelle vous avez besoin d'un serveur est principalement de protéger votre clé secrète, que Stripe vous fournit. Vous ne voulez pas intégrer une clé secrète dans votre application mobile, qui n'offre pratiquement aucune protection. Quelqu'un pourrait tout simplement désassembler votre application, même si elle est masquée, et essayer de trouver la clé secrète qui traîne partout, impuissante.

Liens :

Ce Q&R sur le site de Stripe répond à cette question de manière claire, mais n'entre pas dans les détails.

Cet article de blog explique le processus de bout en bout, ce qui peut être intéressant à lire pour le contexte.

Alternatives :

  1. Webtask stripe script (voir le page principale de la tâche web également).

  2. Acceptation pourrait aussi fonctionner.

... bien que je vous recommande de créer le vôtre afin de garder le plus de contrôle possible. Les définitions et les particularités de HTTP et REST sortent du cadre de cette question, mais soyez assuré que la quantité de code nécessaire pour faire fonctionner ce système est triviale (malgré l'apprentissage/effort initial de votre part).

4voto

nafg Points 680

Laissez-moi développer un peu ce qu'ils disent avec mon interprétation :

Avec notre bibliothèque mobile, nous assumons la charge de la conformité PCI en éliminant la nécessité d'envoyer les données des cartes directement à votre serveur. Au lieu de cela, nos bibliothèques envoient les données des cartes directement à nos serveurs, où nous pouvons les convertir en jetons.

Cela signifie que l'on reçoit souvent un numéro de carte de crédit et que l'on est censé le stocker pour une utilisation ultérieure (par exemple, le client l'entre dans votre page de compte pour qu'il puisse être facturé chaque mois), mais cela vous oblige légalement à vous conformer aux normes PCI, ce qui peut être un casse-tête. Stripe vous libère de ce fardeau : il stocke la carte de crédit et, si vous souhaitez la débiter ultérieurement, il vous suffit de lui donner le jeton qu'il a généré et qui représente cette carte de crédit.

Votre application recevra le jeton en retour et pourra ensuite l'envoyer à un point de terminaison sur votre serveur, où il pourra être utilisé pour traiter un paiement, établir une facturation récurrente ou simplement être enregistré pour une utilisation ultérieure.

Ceci est expliqué dans une autre section, https://stripe.com/docs/mobile/Android#using-tokens

L'utilisation du jeton de paiement, quelle que soit la manière dont il a été obtenu, nécessite un appel API depuis votre serveur à l'aide de votre clé API secrète. (Pour des raisons de sécurité, vous ne devez jamais intégrer votre clé API secrète dans votre application).

(Ceci a été mentionné par drhr.)

Étant donné que vous avez besoin de la clé secrète pour effectuer l'appel API, celui-ci devra être effectué à partir de votre propre serveur, et vous aurez donc besoin d'un serveur.

Remarque : je n'ai pas utilisé Stripe, à ma connaissance, et j'essaie simplement de partager ma lecture de la documentation.

P.S. Je pense que votre deuxième question est distincte, mais certaines options populaires et faciles pour héberger une application web Java sont Heroku et AppEngine. Pour quelque chose comme ça, cependant, vous pourriez opter pour une approche sans serveur, par exemple en utilisant AWS Lambda. https://aws.amazon.com/lambda (google a un équivalent en stade Alpha https://cloud.google.com/functions/ )

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