# 開発環境を設定する

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 拡張機能を設定して、ユーザーが購入を完了する準備ができたら、この決済ページにユーザーを誘導します。
> 
> この方法は、拡張機能内で直接決済を処理しようとするよりも安全で保守が簡単です。

# Python


このクイックスタートでは、[Stripe CLI](https://docs.stripe.com/stripe-cli.md) (Stripe 統合へのコマンドラインアクセスを可能にする重要なツール) をインストールします。また、[Stripe Python サーバーサイド SDK](https://github.com/stripe/stripe-python) を使用して、Python で記述されたアプリケーションから Stripe API にアクセスします。

## 学習内容

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

- コードを記述することなく Stripe API を呼び出す方法
- 仮想環境と pip パッケージマネージャーを使用してサードパーティーの依存関係を管理する方法
- 最新の Stripe Python SDK v15.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 のインストールが完了し、[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"
}
```

## サードパーティーの依存関係を管理する

サードパーティーの依存関係の管理には、[venv](https://docs.python.org/3/tutorial/venv.html) モジュールを使用することをお勧めします。venv を使用すると、新規ライブラリを追加し、Python 3 プロジェクトに含めることができます。

### Windows (cmd.exe) の場合:

#### Windows (cmd.exe) の場合

```bash
python3 -m venv env
.\env\Scripts\activate.bat
```

### GNU/Linux または MacOS (bash) の場合:

#### GNU/Linux または MacOS (bash) の場合

```bash
python3 -m venv env
source env/bin/activate
```

## Python のサーバー側 SDK をインストールする

最新バージョンの Stripe Python サーバー側 SDK は、v15.4.0 です。Python バージョン 3.6 以降に対応します。

Python バージョンを確認する

```bash
python3 --version
```

### ライブラリをインストールする

Python のパッケージマネージャーである [PyPi](http://pypi.python.org/pypi/stripe/) からライブラリをインストールします。

```bash
pip3 install --upgrade stripe
```

次に、requirements.txt ファイルに以下のバージョンを指定します。

```txt
stripe>=15.4.0
```

### インストールの代替手段

**手動インストール**: SDK の[ソースコードをダウンロード](https://github.com/stripe/stripe-python)し、以下を実行してライブラリをインストールします。

```bash
python3 setup.py install
```

## 最初の SDK リクエストを実行する

これで、Python SDK がインストールされ、サブスクリプションの [Product (商品)](https://docs.stripe.com/api/products/create.md) を作成し、いくつかの API リクエストに [Price (価格)](https://docs.stripe.com/api/prices/create.md) を関連付けられるようになりました。この例では、Product のレスポンスで返された商品 ID を使用して価格を作成しています。

> #### 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)に従ってください。

#### 商品と価格を作成する

```python
import stripe

# Don't embed any keys in production code. This is an example.
# See https://docs.stripe.com/keys-best-practices.
client = stripe.StripeClient("sk_test_BQokikJOvBiI2HlWgH4olfQ2")

starter_subscription = client.v1.products.create(params={
  "name": "Starter Subscription",
  "description": "$12/Month subscription",
})

starter_subscription_price = client.v1.prices.create(params={
  "unit_amount": 1200,
  "currency": "usd",
  "recurring": {"interval": "month"},
  "product": starter_subscription['id'],
})

# Save these identifiers
print(f"Success! Here is your starter subscription product id: {starter_subscription.id}")
print(f"Success! Here is your starter subscription price id: {starter_subscription_price.id}")
```

ファイルを `create_price.py` という名前で保存します。コマンドラインから、保存したファイルが含まれるディレクトリーに `cd` で移動し、以下のコマンドを実行します。

#### create_price.py

```bash
python3 create_price.py
```

すべて正常に機能する場合、コマンドラインに以下のレスポンスが表示されます。実装を構築する際に使用できるように、これらの 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)

