# 顧客の支払い方法を保存および取得する

Payment Element に保存された決済手段について説明します。

Payment Element の「保存済み決済手段」機能で、顧客の決済手段を今後も利用できるように保存できます。これにより、以下が可能になります:

- `card`、`us_bank_account`、`acss_debit`、`sepa_debit`、`bacs_debit`、`au_becs_debit`、`nz_bank_account` などの決済手段を保存することについて、顧客の[同意](https://docs.stripe.com/payments/save-during-payment.md?payment-ui=embedded-components#collect-consent)を求めます。
- 顧客が 1 回限りの支払いと継続取引の両方に対して GDPR 準拠の同意を提供したときに決済手段を保存します。
- 将来の購入時に保存した決済手段を顧客に表示します。顧客は、決済情報の削除と更新も行うことができます。
- 指定の取引でセキュリティコードの再収集を要求するように Payment Element を設定します。

Payment Element に保存済みの決済手段を組み込む際、Payment Element を初めて利用する場合は、まず[組み込みの設計](https://docs.stripe.com/payments/payment-element/design-an-integration.md)を行います。Payment Element をすでに導入している場合は、[決済中の保存](https://docs.stripe.com/payments/save-during-payment.md)に関するガイドに従って保存済みの決済手段を有効にしてください。

## で保存済みの決済手段を使用する

[Link](https://docs.stripe.com/payments/link.md) は、すべての Stripe ユーザーに対して機能する保存済みの決済手段のネットワークです。設定を追加することなく、Linkを保存済みの決済手段で使用できます。

- 新規顧客は決済手段を特定のビジネス、、またはその両方に保存できます。
- 保存された  による決済手段と保存されたビジネスの決済手段の両方がある顧客には、ページの読み込み後に、保存されたビジネスの決済手段が表示されます。
![Link と保存された支払い方法のチェックボックスを使用する Payment Element](https://b.stripecdn.com/docs-statics-srv/assets/spm-with-link.6bdc33f8d987d2183ded4ebf69e7a43d.png)

Link で支払い方法を保存します。
![保存された支払い方法が選択された Payment Element](https://b.stripecdn.com/docs-statics-srv/assets/spm-with-link-saved.d0bcd4ea872fd4123209aab8b28fc1ee.png)

以前に保存した支払い方法を再利用します。

## 支払いの詳細を再収集する

セキュリティ強化のため、[require_cvc_recollection](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-require_cvc_recollection) を指定して、顧客がカードで支払う場合にセキュリティコードを再収集するように Payment Element にリクエストすることができます。

```javascript
payment_method_options: {
  card: {require_cvc_recollection: true}
}
```

## サブスクリプションまたは継続取引の支払い方法を保存する

決済の確定時に **今後の購入のために決済情報を保存する** チェックボックスが表示および選択されている場合、決済手段の [allow_redisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) 値は `always` に設定されます。この場合、顧客はサブスクリプションおよび今後のセッションで使用される決済手段に同意したものとみなされます。顧客がこのチェックボックスのチェックを外したままにすると、`allow_redisplay` 値は `limited` に設定されます。この場合、今後の購入に決済手段を使用することはできず、現在設定しているサブスクリプションに限定されます。

保存された複数の決済手段が再表示される場合、決済手段の表示順は、最後に追加された決済手段からになります。顧客にある決済手段がデフォルト設定されている場合は、常にデフォルトの決済手段が最初に表示されます。

## サブスクリプションから支払い方法が削除されないようにする

支払い方法が再利用できるように保存されており、継続的なサブスクリプションの支払い方法でもある場合は、その支払い方法を Payment Element の**保存済み**セクションから削除すると、サブスクリプションからも削除されます。支払い方法が有効なサブスクリプションから削除されないように、保存された支払い方法の Payment Element からの [削除を無効](https://docs.stripe.com/api/customer_sessions/object.md#customer_session_object-components-payment_element-features-payment_method_remove) にすることをお勧めします。代わりに、アカウントの設定ページや既存のサブスクリプションを示す同様のページで支払い方法を管理してください。

## 既存の保存された支払い方法を表示する

Card Element の実装、Stripe API の直接使用、またはその他の方法によって Stripe アカウントの顧客に決済手段がすでに設定されている場合、それらの決済手段は `allow_redisplay` プロパティが `unspecified` であるため、Payment Element に表示されません。`allow_redisplay` プロパティが `always` の場合、決済手段は Payment Element に表示されます。

以下のいずれかの方法を使用して、以前に保存した支払い方法を表示できます。

- 支払い方法の保存時に顧客から適切な同意を収集している場合は、`allow_redisplay` を `always` に更新します。
  - [支払い方法更新 API](https://docs.stripe.com/api/payment_methods/update.md) を使用して、個々の支払い方法を更新します。
- `allow_redisplay="unspecified"` の場合に支払い方法を含めるようにするには、[カスタマーセッション API](https://docs.stripe.com/api/customer_sessions/object.md#customer_session_object-components-payment_element-features-payment_method_allow_redisplay_filters) を設定します。

どちらの場合も、Payment Element で保存された決済手段を再表示するにはカスタマーセッションを必要とします。

## Payment Element 以外で支払い方法を再利用するための同意を収集する

Payment Element では、**今後の購入のために決済情報を保存する**チェックボックスの状態を使用して、顧客が支払い方法を保存することに同意したかどうかを判別します。別の方法 (ウェブサイトの利用規約や Payment Element の外部で表示される同意の文言など) でこの同意を収集している場合は、意図を確定する際に Elements インスタンスが示す同意を上書きすることができます。

組み込みで [stripe.confirmPayment](https://docs.stripe.com/js/payment_intents/confirm_payment)、[stripe.confirmSetup](https://docs.stripe.com/js/setup_intents/confirm_setup)、または [stripe.createConfirmationToken](https://docs.stripe.com/js/confirmation_tokens/create_confirmation_token) を使用している場合は、明示的な [allow_redisplay](https://docs.stripe.com/js/payment_intents/confirm_payment#confirm_payment_intent-options-confirmParams-payment_method_data-allow_redisplay) 値をオプションハッシュに渡して、 Elements インスタンスの値を上書きします。
