4月のStripe開発者ダイジェスト

## Stripeからの重要なお知らせ

決済やメール送信などに関わる規制やセキュリティ対策のため、現在の設定や実装内容について確認が必要な項目を紹介します。

### Stripeから送信するメールに、独自ドメインを利用されている方へのお知らせ
Stripeから独自ドメインでメールを送信する時、DMARCの設定が必要になります。 

https://docs.stripe.com/get-started/account/email-domain#sender-authentication

`@stripe.com`ではなく、独自ドメインで顧客にメールを送信する設定をされている方は、DNSの設定をご確認お願いします。

### 2025年3月からの3Dセキュア必須化に伴う、Charges APIからの移行について

[クレジットカード・セキュリティガイドライン 4.0版の改訂](https://www.meti.go.jp/press/2022/03/20230315001/20230315001.html)」に伴い、2025年3月末より、3Dセキュア2の導入が必須となります。

> 原則、全てのEC加盟店は、2025年3月末までにEMV3-Dセキュアの導入を求める
https://www.meti.go.jp/press/2022/03/20230315001/20230315001.html

Stripeを利用されている場合、Stripe CheckoutやPayment Intents / Setup Intentsを利用している方は追加の対応は原則として不要です。カスタマイズなどによって3Dセキュアが無効化されていないかを、[専用のテストカード番号](https://docs.stripe.com/testing#regulatory-cards)でご確認ください。

現在非推奨となっている　**Charges APIを利用した決済**では、**3Dセキュア2に対応できません**。Payment Intents APIを利用した組み込みへの移行をお願いします。

https://docs.stripe.com/payments/payment-intents/migration

詳細については、サポートサイトの記事をご確認ください。

https://support.stripe.com/questions/3ds-mandate-in-japan

### 2025年3月からのセキュリティチェックリストへの対応について

[クレジット取引セキュリティ対策協議会](https://www.j-credit.or.jp/security/safe/conference.html)では、新たにオンラインでクレジットカードの取り扱いを行うカード加盟店に必要なセキュリティ対策の取り組みを示し、その対策措置状況の申告書の回収を求めることになりました。

これに伴い、　Stripe を含む決済代行業者等 (PSP) は、新規契約のカード加盟店からセキュリティ・チェックリストに基づく対策措置状況申告書を回収する必要があります。各カード加盟店に求められる取り組みの詳細は、申告書の内容から確認ができます。対策措置が不十分だと見なされた場合、カード決済を受け入れることができません。

セキュリティチェックリストへの回答方法や対応についてのサポートサイトに記事を公開しましたので、必ずご確認ください。

https://support.stripe.com/questions/japan-security-checklist

## API / ダッシュボードアップデート

### ダッシュボードでの、タイムスタンプを用いた支払い履歴のフィルタリング

ダッシュボードにて支払いデータを日付だけでなく、タイムスタンプでもフィルタリングできるようになりました。
1日の取引・決済量が多いユーザーでも、必要な支払い履歴をより簡単に見つけることができるようになります。

![スクリーンショット 2024-04-02 10.49.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/19300ff8-8934-4df5-a6fc-987270898640.png)

- 本番環境: https://dashboard.stripe.com/payments
- テスト環境: https://dashboard.stripe.com/test/payments

### 作成済みのサブスクリプションに対する、テストクロックを使ったシミュレーション
Stripeのダッシュボードで、既存のサブスクリプションに対してテストクロックによる時間シミュレーションを簡単に実行できるようになりました。サブスクリプション画面から将来日付を選ぶだけで、その時点までの状況をすばやくシミュレートできます。

![スクリーンショット 2024-04-02 10.54.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/e208e7b7-f1c4-cb1a-bd0f-4bad547eeeb5.png)


### ConfirmationTokensの提供開始
Stripe.jsにて、ConfirmationTokens APIを利用できるようになりました。ConfirmationTokensは、以下のユースケースで活用できます。

**１: サーバー上でカスタムロジックを実行後に決済を確定する**

https://docs.stripe.com/payments/finalize-payments-on-the-server

**2: 2ステップチェックアウトにおいて、最終確認ページの前で決済情報を収集する**

https://docs.stripe.com/payments/build-a-two-step-confirmation

```js
  const {error, confirmationToken} = await stripe.createConfirmationToken({
    elements,
    params: {
      payment_method_data: {
        billing_details: {
          name: 'Jenny Rosen',
        }
      }
    }
  });
```

生成したトークンを使ってサーバー側のStripe SDKで詳細の確認などが行えます。

```js
const confirmationToken = await stripe.confirmationTokens.retrieve(
  'ctoken_xxx'
);
```

決済処理を２段階に分けている場合などでは、作成したトークンをPayment Intentsに渡すことができます。

```js
    const intent = await stripe.paymentIntents.create({
      confirm: true,
      amount: 1099,
      currency: 'usd',
      // In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default.
      automatic_payment_methods: {enabled: true},
      confirmation_token: req.body.confirmationTokenId, // the ConfirmationToken ID sent by your client
    });
```

組み込みの詳細については、ドキュメントをご確認ください。

https://docs.stripe.com/payments/build-a-two-step-confirmation

https://docs.stripe.com/payments/finalize-payments-on-the-server

## Stripe Connector for Adobe Commerce (Magento 2) バージョン4.0リリース

今回のメジャーアップデートでは、内部コードの改善と[Express Checkout Element](https://docs.stripe.com/elements/express-checkout-element?locale=ja-JP)のサポートが追加されました。

https://github.com/stripe/stripe-magento2-releases/pull/57

Express Checkout Element を使用することで、[Link](https://docs.stripe.com/payments/link/what-is-link)や[Apple Pay](https://docs.stripe.com/apple-pay)、[Google Pay](https://docs.stripe.com/google-pay)といったワンクリックの支払いボタンによる決済を受け付けることができます。

## サブスクリプションに対する複数の割引と高度な割引設定のサポート

最大20個の割引クーポンを適用できるようになり、特定のサブスクリプションアイテムに直接割引を設定できます。プロモーションコードの導入により、顧客制限や有効期限の設定などさらに詳細な割引カスタマイズが可能に。更新時の既存割引の自動再利用により、手動での割引管理が不要になりました。これにより、ユーザーはより柔軟でパーソナライズされた割引設定を行え、より多くの顧客を獲得できるようになります。

```diff
curl https://api.stripe.com/v1/subscriptions \
  -u "sk_test_XXX:" \
  -d customer="{{CUSTOMER_ID}}" \
  -d "items[0][price]"="{{PRICE_ID}}" \
+  -d "items[0][discounts][0][coupon]"=item-coupon \
+  -d "items[0][discounts][1][promotion_code]"=item-promo \
  -d "discounts[0][coupon]"=sub-coupon \
+  -d "discounts[1][promotion_code]"=sub-promo
```

![Screenshot 2024-04-03 at 10.47.24 AM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/d70003c4-679d-1d53-b3cc-a2aa6f2e7200.png)
https://docs.stripe.com/billing/subscriptions/coupons?dashboard-or-api=api&lang=curl#alternative


## ドキュメントの更新


### Stripe Docsのクイックスタートで「ネイティブアプリ向けの、サブスクリプション実装」バージョンを追加

Stripeのドキュメントにて、iOS / AndroidまたはReact Nativeを利用したサブスクリプションの構築方法を紹介するクイックスタートを追加しました。

![スクリーンショット 2024-04-02 10.56.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/580868cf-3e7d-1799-01d8-89d2da66cba1.png)
https://docs.stripe.com/billing/subscriptions/build-subscriptions?platform=ios

### Stripe Docsに、Stripe入門用の「始める」タブを追加
新規ユーザーのオンボーディングコンテンツを改善するための取り組みの一環として、入門系コンテンツをまとめた「はじめる」タブを追加しました。

https://docs.stripe.com/get-started

これからStripeを触るユーザーがStripeの仕組み（決済の基礎やAPIの概要、主要機能の紹介など）をより良く理解し、導入方法を決定するのに役立ちます。また、これにあわせて現在は非推奨となった実装方法を紹介するページを廃止しました。移行方法については、[Charges APIからの移行方法](https://docs.stripe.com/payments/payment-intents/migration)をご覧ください

## Community OSS updates


 🦋 Flutter Stripe v10.1.0 がリリースされました!タップ・トゥ・ペイの追加と、ブラウザー向けの Google および Apple Pay の追加が特徴です。 
 https://github.com/flutter-stripe/flutter_stripe/releases/tag/v10.1.0

 
 ⚡ Capacitor-tripleは、Bluetooth および USB ターミナル接続をサポートするアップデートを含むv5.5.0 をリリースしました。 

 https://github.com/capacitor-community/stripe/releases/tag/v5.5.0

## Community blog post

https://qiita.com/miriwo/items/3206ba27bb490f548258

https://qiita.com/miriwo/items/521c4dd0287e77ca685d

https://qiita.com/miriwo/items/4f45bf841a6695c2dd2c

https://qiita.com/syo_engineer/items/7a90b763760678e14567

https://zenn.dev/wwwave/articles/689b26da6132b2

https://zenn.dev/wwwave/articles/a2cf71efe48d71

https://qiita.com/IshigiwaKenichiro/items/0fb45a26c798d78a7293