# 支払い方法の設定

特定の決済シナリオに基づいて、顧客に表示するさまざまな支払い方法のセットを作成します。

支払い方法の設定では、[動的な支払い方法](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md)のユーザーは、さまざまな決済シナリオに応じて別々の支払い方法を顧客に表示することができます。

以下のような設定を作成できます。

- 特定の商品に対応する一意の支払い方法のセットを表示する
- 1 回限りの支払いの決済フロー用の支払い方法と、サブスクリプションの決済フロー用の別の支払い方法を有効にする
- (Connect) 連結アカウントが追加の支払い方法を別のサブスクリプション手数料で利用できるようにする

支払い方法の設定を作成した後、ダッシュボードで直接、特定のシナリオに対して各支払い方法のオンとオフを切り替えることができます。コーディングは不要です。次に、決済時に、使用する設定を選択します。Stripe は、コンバージョンを最適化するために、その設定内で有効になっている支払い方法のランクを設定します。

## Before you begin

- Stripe [Payment Element](https://docs.stripe.com/payments/payment-element.md) または [Checkout](https://docs.stripe.com/payments/checkout.md) のいずれかを使用する必要があります。
- [動的な支払い方法](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md)を使用して、Stripe ダッシュボードから追加の支払い方法を有効にする必要があります。コードの変更は不要です。
  - ダイレクトユーザー向けの動的な支払い方法を設定するには、[支払い方法の導入](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md)に関するガイドをご覧ください。
  - (Connect)Connect プラットフォーム向けの動的な決済手段を設定するには、[連結アカウントの決済手段の管理](https://docs.stripe.com/connect/manage-payment-methods.md)をご覧ください。

## 支払い方法の設定を作成する

デフォルトでは、**Default Config** と呼ばれる支払い方法が 1 つ作成されています。Stripe ダッシュボードや API を使用して、追加の支払い方法設定を作成できます。

#### ダッシュボード

1. ダッシュボードで[支払い方法の設定](https://dashboard.stripe.com/test/settings/payment_methods)に移動します。
2. **決済設定** セクションで、オーバーフローメニュー (⋯) > **設定を作成** をクリックします。
3. 新しい設定に名前を付けます。
4. **設定を保存** をクリックします。
![支払い方法の設定ページ](https://b.stripecdn.com/docs-statics-srv/assets/payment-method-configurations.a766550ad4dd95854a7a9b9f178e1d45.png)

ページに新しい設定が表示されます。すべての支払い方法は、デフォルトで最初は無効になっています。

設定を切り替えるには、ページ上部にある**設定を選択** ドロップダウンを使用します。

有効にする決済手段の設定がダッシュボードで `active` に設定されていることを確認する手順は、次のとおりです。

1. 決済手段の設定に移動します。
2. **決済設定** セクションで決済手段をクリックし、オーバーフローメニュー (⋯) > **設定の管理** をクリックします。
3. **設定ステータス** で、 **アクティブ** オプションを有効にします。
4. **変更を保存** をクリックして、更新を適用します。

#### API

以下のパラメーターを使用して、[決済手段の設定](https://docs.stripe.com/api/payment_method_configurations/create.md)を作成します。

- `name`: ダッシュボードに表示され、人間が理解できる文字列。
- (オプション) この設定で 1 つ以上の支払い方法を有効にできます。それぞれの値を `on` に設定してください。

```curl
curl https://api.stripe.com/v1/payment_method_configurations \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d name=MyConfig \
  -d "affirm[display_preference][preference]=on" \
  -d "klarna[display_preference][preference]=on"
```

設定の作成後は、ダッシュボードでこの設定に支払い方法を追加できます。

## 支払い方法を有効にする

ダッシュボードで設定を開き、この設定の使用時に顧客が利用できる決済手段を有効にします。有効に設定し、支払い店舗と通貨に対応する決済手段のみが顧客に表示されます。

> 一部の支払い方法は、表示を展開するまで編集コントロールが表示されません。

## 決済時に利用可能な支払い方法を表示する

ダッシュボードで、決済フローで使用する設定の `configuration ID` をコピーします。

[インテント作成猶予の導入パス](https://docs.stripe.com/payments/accept-a-payment-deferred.md)を使用している場合は、Payment Element コンポーネントの作成時に `payment_method_configuration` ID を渡します。Payment Element はその設定に関連付けられている決済手段を自動的に抽出し、顧客による購入の完了に最適なものからランク付けします。

#### ウェブ

```javascript
const options = {
   mode: 'payment',
   amount: 1099,
   currency: 'usd',
   paymentMethodConfiguration: 'pmc_234'
}
```

#### iOS

```swift
let intentConfig = PaymentSheet.IntentConfiguration(
    mode: .payment(amount: 1099, currency: "USD"),
    paymentMethodConfigurationId: "pmc_234"
  ) { [weak self] _, intentCreationCallback in
    self?.handleConfirm(intentCreationCallback)
  }
```

#### Android

```kotlin
val intentConfig = PaymentSheet.IntentConfiguration(
  mode = PaymentSheet.IntentConfiguration.Mode.Payment(
    amount = 1099,
    currency = "usd",
  ),
  paymentMethodConfigurationId = "pmc_234",
  // Other configuration options...
)
```

Payment Element を使用していない場合は、[Checkout セッションの作成](https://docs.stripe.com/api/checkout/sessions/create.md)時に `payment_method_configuration` ID を渡します。

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d mode=payment \
  -d "line_items[0][price]={{PRICE_ID}}" \
  -d "line_items[0][quantity]=1" \
  --data-urlencode "success_url=https://example.com/success" \
  -d currency=usd \
  -d payment_method_configuration=pmc_234
```

### 決済手段

デフォルトでは、カードとその他の一般的な決済手段が有効になっています。[Stripe ダッシュボード](https://dashboard.stripe.com/settings/payment_methods)で個々の決済手段をオンまたはオフにできます。Checkout では、Stripe は通貨と制限事項を評価して、対応している決済手段を顧客に動的に提示します。

決済手段が顧客にどのように表示されるかを確認するには、ダッシュボードの[決済手段の確認](https://dashboard.stripe.com/settings/payment_methods/review)ページで取引 ID を入力するか、注文金額と通貨を設定します。

Checkout は、実装を変更することなく Apple Pay と Google Pay をサポートしています。[ウォレットのテスト方法](https://docs.stripe.com/testing/wallets.md?ui=embedded-page)をご覧ください。

## 設定を使用して PaymentIntent を作成する

支払い方法の設定を使用して、サーバーで PaymentIntent を作成します。

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1000 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d payment_method_configuration=pmc_123
```

最新バージョンの API では、`automatic_payment_methods` パラメーターがデフォルトで有効になっているため、設定が任意になりました。

## 特定の PaymentIntent の決済手段の除外

決済手段は、決済手段ごとの設定単位で管理できますが、PaymentIntents、[SetupIntents](https://docs.stripe.com/payments/setup-intents.md)、[Checkout](https://docs.stripe.com/payments/checkout.md)、または [PaymentElement](https://docs.stripe.com/payments/payment-element.md) を使用する際に `excluded_payment_method_types` パラメータを使うことで、特定の決済手段を取引単位で除外することも可能です。

**以下の場合に複数の決済手段設定を作成してください** :

- より広範な取引カテゴリーの決済手段を管理する必要がある場合。例えば、一回限りの購入とサブスクリプションで異なる決済手段セットを設定したい場合があります。類似の取引タイプ全体で一貫した決済手段オファリングを確立したい場合にこのアプローチを使用してください。

**以下のような場合に excluded\_payment\_method\_types を使用する** :

- 複数の決済手段設定での実装が現実的でない決済手段の組み合わせについて、より多くの制御が必要な場合。
- 示する決済手段を制御したい場合。例えば、取引に含まれるアイテムに基づいて特定の決済手段を除外したい場合があります。

決済手段の利用可能性を制御するために、`excluded_payment_methods_types` パラメーターを決済手段設定と組み合わせて使用できます。

> `excluded_payment_method_types` を使用して、取引ごとに Apple Pay、Google Pay、Link を除外することはできません。個々の取引でこれらの決済手段の表示 / 非表示を制御するには、組み込みタイプごとに指定されたウォレットハッシュパラメーターを使用します。たとえば、[PaymentElements wallets parameter](https://docs.stripe.com/js/elements_object/create_payment_element#payment_element_create-options-wallets) を参照してください。

[決済手段の除外](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md#exclude-payment-methods) する方法の詳細をご確認ください。
