# 開発環境を設定する

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 システムへのコマンドラインアクセスを可能にするための必須ツールである、[Stripe CLI](https://docs.stripe.com/cli.md) をインストールします。[Stripe Node.js サーバー側 SDK](https://github.com/stripe/stripe-node) をインストールして、Node.js で記述されたアプリケーションから Stripe API にアクセスすることもできます。

## 学習内容

このクイックスタートでは以下について説明します。

- コードを記述することなく Stripe API を呼び出す方法
- npm または yarn パッケージマネージャーを使用してサードパーティーの依存関係を管理する方法
- 最新の Stripe Node SDK v22.4.0 をインストールする方法
- 最初の SDK リクエストを送信する方法

## Stripe CLI を設定する

### インストールと接続

[npm](https://www.npmjs.com/) で Stripe CLI をインストールします。

```bash
npm install --global @stripe/cli
```

> Windows、macOS、Linux、Docker 向けのその他のインストールオプションについては、GitHub の [Stripe CLI readme](https://github.com/stripe/stripe-cli#installation) を参照してください。

インストール後、ログインして CLI を Stripe アカウントに接続します。

```bash
stripe login
```

CLI はペアリングコードを表示して Stripe ダッシュボードを開きます。そこでアカウント、サンドボックス、本番環境へのアクセスを承認します。CLI は認証情報をオペレーティングシステムの安全な認証情報ストアに保存し (利用可能な場合)、セッションを自動的に更新します。代わりに API キーで認証するには、`stripe login --interactive` の実行、`stripe config` の使用、`--api-key` の引き渡し、環境変数 `STRIPE_API_KEY` の設定のいずれかを行います。

### 設定を確定

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.4.0 です。Node.js バージョン 18 以降をサポートします。

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.4.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.md)

