支払い処理にAngular2、Ionic2、Stripe.jsを使用しています。ここのこのスレッド ストライプ支払いゲートウェイを備えたionic2 プラグインを使用しています https://github.com/Telerik-Verified-Plugins/Stripe/blob/master/doc/index.md =ただし、アプリ内にシークレットキーを埋め込む必要があるため、安全ではありません。このページでさえ、このプラグインを使用しないように人々に伝えています。
ここでnode.jsバージョンを使用しようとしました:
https://www.npmjs.com/package/stripe
ただし、TypeScriptでimport
を使用する必要がある場合、var stripe = require('stripe')(' your stripe API key ');
の実行方法がわかりません。
最後に、index.htmlに<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
を入れましたが、stripe
変数は各コンポーネント内にグローバルに表示されます。ただし、各コンポーネントまたはページ内で使用するまでにstripe
オブジェクトの準備ができていない可能性があるため、これが適切な方法であるとは思いません。
Angular2とStripe.jsを使用する適切な方法は何ですか? Ionic2は特に素晴らしいですが、オプションです。
ありがとう
UPDATE 1
npm install stripe
を試した後import '../../node_modules/stripe/lib/stripe.js';
を使用しましたが、それでもエラーが発生しました。
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'
これがディレクトリ構造のVSCodeスクリーンショットです:
Index.htmlにscripttagを追加し、home.tsにインポートした後に宣言を配置します
declare var Stripe: any;
これがng2に外部ライブラリをインポートする正しい方法だと思います
Src: Nic Raboy そこにはもう少し情報があります。外部ライブラリをインストールするより良い方法は、typedefを DefinitelyTyped からダウンロードし、$ typings install
でインストールすることです。そうすれば、通常どおりにインポートできるはずです。
もちろん、これはDefinitelyTypedリポジトリにtypedefがある場合です。ただし、Stripeライブラリのtypedefは存在しないようです。
Stripeにはタイプ定義があるようです。
npm install --save stripe
以下を実行して、TypeScript定義を取得することもできます。
npm install --save @types/stripe
そうすれば、次のようなことができるはずです。
import { Stripe } from 'stripe'
上記は私がテストしていないので疑似コードですが、似たようなものになります。
Stripe.jsライブラリはサーバーを対象としており、child_processモジュールを必要とし、独自のサーバーを作成します。このライブラリをブラウザ環境に直接インポートする良い方法はありません。