2016-04-11 14 views
9

Sto utilizzando Angular2, Ionic2 e Stripe.js per l'elaborazione dei pagamenti. Questo thread qui ionic2 with stripe payment gateway utilizza il plug-in https://github.com/Telerik-Verified-Plugins/Stripe/blob/master/doc/index.md ma non è sicuro perché è necessario incorporare la chiave segreta all'interno dell'app. Anche la pagina dice alla gente di non usare questo plugin.Import Stripe utilizzando Angular2 e stripe.js

ho cercato di utilizzare la versione node.js qui:

https://www.npmjs.com/package/stripe

Tuttavia, non riesco a capire come fare la var stripe = require('stripe')(' your stripe API key '); quando a macchina, è necessario utilizzare import.

Infine, ho inserito <script type="text/javascript" src="https://js.stripe.com/v2/"></script> in index.html e la variabile stripe mostra globalmente all'interno di ogni componente. Tuttavia, non ritengo che questo sia il modo corretto di farlo poiché l'oggetto stripe potrebbe non essere pronto quando lo uso all'interno di ogni componente o pagina.

Qual è il modo corretto di utilizzare Angular2 e Stripe.js? Ionic2 in particolare sarebbe carino ma facoltativo.

Grazie

UPDATE 1

ho provato npm install stripe e poi utilizzato import '../../node_modules/stripe/lib/stripe.js'; ma ancora ottenuto l'errore:

TypeScript error: /Users/username/Documents/StripePayment/app/pages/home/home.ts(16,23): Error TS2304: Cannot find name 'Stripe'. 
Error: Cannot find module '../../node_modules/stripe/lib/stripe.js' from '/Users/username/Documents/StripePayment/app/pages/home' 

Ecco il mio screenshot Codice VS con struttura di directory:

enter image description here

+0

'importa 'percorso/a/stripe.js';' dovrebbe risolvere l'importazione. Ma non includere il '.js'. – Chrillewoodz

+0

Ho aggiornato la domanda perché il suggerimento non ha funzionato. –

+0

@MarcusAsplund Si prega di postare come risposta qui sotto e accetterò. Grazie. –

risposta

6

Aggiungere lo scriptTag nel index.html e poi mettere una dichiarazione dopo le importazioni in home.ts

declare var Stripe: any; Credo che questo sia il modo corretto di importare librerie esterne in NG2

Src: Nic Raboy Ci sono altre informazioni là; il modo migliore per installare un lib esterna è quella di scaricare i typedef da DefinitelyTyped ed installare con $ typings install Poi si dovrebbe essere in grado di importare, come al solito

Questo è, naturalmente, se ci sono typedef nella repo DefinitelyTyped. Tuttavia, non sembra esistere typedef per la libreria Stripe.

+1

Penso di averne trovato uno: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/stripe/stripe.d.ts – Maxim

+0

C'è anche questo: https : //github.com/DefinitelyTyped/DefinitelyTyped/blob/master/stripe-node/strip-node.d.ts – TomTom

3

banda sembra avere definizioni del tipo ora così al fianco di

npm install --save stripe 

è anche possibile eseguire il seguente per ottenere le definizioni dattiloscritto:

npm install --save @types/stripe 

si dovrebbe quindi essere in grado di così qualcosa di simile:

import { Stripe } from 'stripe' 

Quanto sopra è codice di psudo come Ive non testato ma sarà qualcosa simile.

Maggiori informazioni qui: https://www.npmjs.com/package/@types/stripe

+0

Dato che il pacchetto 'stripe' non esporta la classe' Stripe' chiamata devi fare 'import * as Stripe da 'stripe' ;, invece. – brod

1

La biblioteca stripe.js è destinato per il server, richiede il modulo child_process, e crea un server a sé stante. Non esiste un buon modo per importare questa libreria direttamente in un ambiente browser.

Problemi correlati