# 開発環境を設定する Stripe CLI とサーバー側 SDK についての理解を深めましょう。 [ノーコードに関するドキュメント](https://docs.stripe.com/no-code.md)をご覧になるか、パートナーディレクトリーの[構築済みのソリューション](https://stripe.com/partners/directory)を使用するか、[Stripe 認定エキスパート](https://stripe.com/partners/directory?t=Consulting)を雇用してください。 Stripe のサーバー側 SDK およびコマンドラインインターフェイス (CLI) を使用することで、Stripe の REST API とやり取りできます。Stripe CLI で API を呼び出し、開発環境を効率化しましょう。 SDK を使用して、定型コードを記述しないようにします。環境からのリクエストの送信を開始するには、クイックスタートガイドにならって使用できる言語を選択します。 > #### Chrome 拡張機能 > > Stripe ([Elements](https://docs.stripe.com/payments/elements.md) や [Checkout](https://docs.stripe.com/payments/checkout.md) など) を使用して、ご自身のウェブサイトで決済の実装を構築することをお勧めします。次に、Chrome 拡張機能を設定して、ユーザーが購入を完了する準備ができたら、この決済ページにユーザーを誘導します。 > > この方法は、拡張機能内で直接決済を処理しようとするよりも安全で保守が簡単です。 # Node.js このクイックスタートでは、[Stripe CLI](https://docs.stripe.com/stripe-cli.md) (Stripe 統合へのコマンドラインアクセスを可能にする重要なツール) をインストールします。また、[Stripe Node.js サーバーサイド SDK](https://github.com/stripe/stripe-node) を使用して、Node.js で記述されたアプリケーションから Stripe API にアクセスします。 ## 学習内容 このクイックスタートでは以下について説明します。 - コードを記述することなく Stripe API を呼び出す方法 - npm または yarn パッケージマネージャーを使用してサードパーティーの依存関係を管理する方法 - 最新の Stripe Node SDK v22.2.0 をインストールする方法 - 最初の SDK リクエストを送信する方法 ## 初期セットアップ まず、[Stripe アカウントを作成する](https://dashboard.stripe.com/register)か[サインイン](https://dashboard.stripe.com/login)します。 ## Stripe CLI を設定する ### インストール コマンドラインから、インストールスクリプトを使用するか、オペレーティングシステムのバージョン管理されたアーカイブファイルをダウンロードして展開し、CLI をインストールします。 #### homebrew [homebrew](https://brew.sh/) で Stripe CLI をインストールするには、以下を実行します。 ```bash brew install stripe/stripe-cli/stripe ``` このコマンドを Linux バージョンの Homebrew で実行すると失敗しますが、代替手段を使用するか、Linux タブの指示に従ってこれを完了させることは可能です。 ```bash brew install stripe-cli ``` #### apt > CLI の Debian ビルドは JFrog(https://packages.stripe.dev,) で利用可能ですが、これは Stripe が所有するドメインではありません。この URL にアクセスすると、JFrog アーティファクトリーのリストにリダイレクトされます。 Debian および Ubuntu ベースのディストリビューションに Stripe CLI をインストールする方法は以下のとおりです。 1. Stripe CLI の GPG キーを apt ソースのキーリングに追加します。 ```bash curl -s https://packages.stripe.dev/api/security/keypair/stripe-cli-gpg/public | gpg --dearmor | sudo tee /usr/share/keyrings/stripe.gpg > /dev/null ``` 1. CLI の apt リポジトリーを apt ソースリストに追加します。 ```bash echo "deb [signed-by=/usr/share/keyrings/stripe.gpg] https://packages.stripe.dev/stripe-cli-debian-local stable main" | sudo tee -a /etc/apt/sources.list.d/stripe.list ``` 1. パッケージリストを更新します。 ```bash sudo apt update ``` 1. CLI をインストールします。 ```bash sudo apt install stripe ``` #### yum > CLI の RPM ビルドは JFrog(https://packages.stripe.dev,) で利用可能ですが、これは Stripe が所有するドメインではありません。この URL にアクセスすると、JFrog アーティファクトリーのリストにリダイレクトされます。 RPM ベースのディストリビューションに Stripe CLI をインストールする方法は以下のとおりです。 1. CLI の yum リポジトリーを yum ソースリストに追加します。 ```bash echo -e "[Stripe]\nname=stripe\nbaseurl=https://packages.stripe.dev/stripe-cli-rpm-local/\nenabled=1\ngpgcheck=0" >> /etc/yum.repos.d/stripe.repo ``` 1. CLI をインストールします。 ```bash sudo yum install stripe ``` #### Scoop [Scoop](https://scoop.sh/) で Stripe CLI をインストールするには、以下を実行します。 ```bash scoop bucket add stripe https://github.com/stripe/scoop-stripe-cli.git ``` ```bash scoop install stripe ``` #### winget [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/) を使用して Stripe CLI をインストールするには、次を実行します。 ```bash winget install Stripe.StripeCLI ``` #### macOS homebrew なしで Stripe CLI を macOS にインストールする方法は以下のとおりです。 1. [GitHub](https://github.com/stripe/stripe-cli/releases/latest) から、ご使用の cpu アーキテクチャータイプの最新の `mac-os` tar.gz ファイルをダウンロードします。 2. `tar -xvf stripe_[X.X.X]_mac-os_[ARCH_TYPE].tar.gz` を使用して、ファイルを解凍します。 必要に応じて、グローバルに実行できる場所 (`/usr/local/bin` など) にバイナリをインストールします。 #### Linux Package Manager なしで Stripe CLI を Linux にインストールする方法は以下のとおりです。 1. [GitHub](https://github.com/stripe/stripe-cli/releases/latest) から、最新の `linux` tar.gz ファイルをダウンロードします。 2. `tar -xvf stripe_X.X.X_linux_x86_64.tar.gz` を使用して、ファイルを解凍します。 3. `./stripe` を自身の実行パスに移動します。 #### Windows Scoop なしで Stripe CLI を Windows にインストールする方法は、以下のとおりです。 1. [GitHub](https://github.com/stripe/stripe-cli/releases/latest) から、最新の `windows` zip ファイルをダウンロードします。 2. `stripe_X.X.X_windows_x86_64.zip` ファイルを解凍します。 3. 解凍した `stripe.exe` ファイルへのパスを `Path` 環境変数に追加します。環境変数の更新方法については、[Microsoft PowerShell のドキュメント](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-7.3#saving-changes-to-environment-variables)を参照してください。 > Windows のアンチウイルススキャナーは、Stripe CLI に「安全ではない」とフラグ付けすることがあります。これは偽陽性である可能性が高いです。詳細については、GitHub リポジトリの [issue #692](https://github.com/stripe/stripe-cli/issues/692) をご覧ください。 1. 解凍した `.exe` ファイルを実行します。 #### Docker Stripe CLI は、[Docker イメージ](https://hub.docker.com/r/stripe/stripe-cli)としても使用できます。最新バージョンをインストールするには、以下を実行します。 ```bash docker run --rm -it stripe/stripe-cli:latest ``` ### 認証 ログインして Stripe ユーザー[アカウント](https://docs.stripe.com/get-started/account/set-up.md)を認証すると、制限付きキーのセットを生成できます。詳細については、[Stripe CLI のキーと権限](https://docs.stripe.com/stripe-cli/keys.md)を参照してください。 ```bash stripe login ``` キーボードの **Enter** キーを押して、ブラウザーでの認証プロセスを完了します。 ```bash Your pairing code is: enjoy-enough-outwit-win This pairing code verifies your authentication with Stripe. Press Enter to open the browser or visit https://dashboard.stripe.com/stripecli/confirm_auth?t=THQdJfL3x12udFkNorJL8OF1iFlN8Az1 (^C to quit) ``` ### 設定を確定 CLI のインストールが完了し、[Create a product (商品作成) API](https://docs.stripe.com/api/products/create.md) への単一の API リクエストを作成できるようになりました。 #### bash ```bash stripe products create \ --name="My First Product" \ --description="Created with the Stripe CLI" ``` レスポンスオブジェクトの `id` 内で商品 ID を探し、次のステップのために保存しておきます。 すべて正常に機能する場合、コマンドラインに以下のレスポンスが表示されます。 #### bash ```json { "id": "prod_LTenIrmp8Q67sa", // ID は次のようになります。 "object": "product", "active": true, "attributes": [], "created": 1668198126, "default_price": null, "description": "Created with the Stripe CLI", "identifiers": {}, "images": [], "livemode": false, "metadata": {}, "name": "My First Product", "package_dimensions": null, "price": null, "product_class": null, "shippable": null, "sku": "my-first-product-10", "statement_descriptor": null, "tax_code": null, "type": "service", "unit_label": null, "updated": 1668198126, "url": null } ``` 次に、[Create a price (価格作成) API](https://docs.stripe.com/api/prices/create.md) を呼び出して、30 USD の価格を関連付けます。`product` のプレースホルダーを商品 ID (例: `prod_LTenIrmp8Q67sa`) に入れ替えます。 #### bash ```bash stripe prices create \ --unit-amount=3000 \ --currency=usd \ --product="{{PRODUCT_ID}}" ``` すべて正常に機能する場合、コマンドラインに以下のレスポンスが表示されます。 #### bash ```json { "id": "price_1KzlAMJJDeE9fu01WMJJr79o", // ID は次のようになります。 "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1652636348, "currency": "usd", "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_Lh9iTGZhb2mcBy", "recurring": null, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "one_time", "unit_amount": 3000, "unit_amount_decimal": "3000" } ``` ## Node.js のサーバー側 SDK をインストールする 最新バージョンの Stripe Node.js サーバー側 SDK は、v22.2.0 です。Node.js バージョン 12 以降をサポートします。 Node バージョンを確認する ```bash node --version ``` ### Node を初期化する #### Node を初期化する ```bash npm init ``` ### ライブラリをインストールする ライブラリのインストールには、Node のパッケージマネージャーである [npm](https://www.npmjs.com/package/node) を使用します。 ```bash npm install stripe --save ``` npm を使用してライブラリをインストールすると、ライブラリはプロジェクトの package.json ファイルに自動的に依存関係として追加されます。以下に例を示します。 ```json { "name": "stripe-node-example", "version": "1.0.0", "description": "A Stripe demo", "main": "index.js", "scripts": { "node ": "node create_price.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "stripe": "^22.2.0" } } ``` ### インストールの代替手段 **Yarn**: Node のもう 1 つのパッケージマネージャーである [yarn](https://yarnpkg.com/) を使用してライブラリをインストールできます。 ```bash yarn add stripe ``` ## 最初の SDK リクエストを実行する これで、Node.js SDK がインストールされ、サブスクリプションの [Product (商品)](https://docs.stripe.com/api/products/create.md) を作成し、いくつかの API リクエストに [Price (価格)](https://docs.stripe.com/api/prices/create.md) を関連付けられるようになりました。Node.js SDK は、チェーン可能なコールバックとして使用できる [promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) を返します。説明のため、この例では Product のレスポンスで返された商品 ID を渡して Price を作成します。 > #### API キーのベストプラクティス > > このサンプルでは、*サンドボックス* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes)環境で、Stripe ユーザー[アカウント](https://docs.stripe.com/get-started/account/set-up.md)のデフォルトキーを使用します。これらの値を表示できるのはお客様のみです。キーを安全に管理するため、[ベストプラクティス](https://docs.stripe.com/keys-best-practices.md)に従ってください。 #### 商品と価格を作成する ```node // Don't embed any keys in production code. This is an example. // See https://docs.stripe.com/keys-best-practices. const stripe = require('stripe')('sk_test_BQokikJOvBiI2HlWgH4olfQ2'); stripe.products.create({ name: 'Starter Subscription', description: '$12/Month subscription', }).then(product => { stripe.prices.create({ unit_amount: 1200, currency: 'usd', recurring: { interval: 'month', }, product: product.id, }).then(price => { console.log('Success! Here is your starter subscription product id: ' + product.id); console.log('Success! Here is your starter subscription price id: ' + price.id); }); }); ``` ファイルを `create_price.js` という名前で保存します。コマンドラインから、保存したファイルが含まれるディレクトリーに `cd` で移動し、以下のコマンドを実行します。 #### create_price.js ```bash node create_price.js ``` すべて正常に機能する場合、コマンドラインに以下のレスポンスが表示されます。実装を構築する際に使用できるように、これらの ID を保存します。 #### bash ```bash Success! Here is your starter subscription product id: prod_0KxBDl589O8KAxCG1alJgiA6 Success! Here is your starter subscription price id: price_0KxBDm589O8KAxCGMgG7scjb ``` ## See also クイックスタートは以上です。以下のリンクでは、作成した商品の支払いを処理する方法をいくつか紹介しています。 - [決済用のリンクを作成する](https://docs.stripe.com/payment-links.md) - [Stripe がオンラインで提供するページ](https://docs.stripe.com/checkout/quickstart.md) - [高度な連携](https://docs.stripe.com/payments/quickstart-checkout-sessions.md)