UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#184 Stripe API 稼働中サブスクリプション一覧と関連するクレジットカードの有効期限を取得

記入日:2023-07-11 編集日:2023-07-11

Stripe API 稼働中サブスクリプション一覧と関連するクレジットカードの有効期限を取得する方法について解説してみようと思います。

この記事を読むと(約5分)
Stripe API 稼働中サブスクリプション一覧と関連するクレジットカードの有効期限を取得する方法についてイメージできます。

サブスク一覧とカードの有効期限を取得

以下のコードは、Stripe APIを使用して稼働中のサブスクリプションとそれに関連するクレジットカードの有効期限を表示するためのPHPスクリプトです。以下にコードの概要と各セクションの解説を示します。

1. Stripeのライブラリと秘密鍵を読み込み

require_once '../vendor/autoload.php';
require_once '../secrets.php';

\Stripe\Stripe::setApiKey($stripeSecretKey);

- require_once 文は、StripeのPHPライブラリと secrets.php ファイルを読み込んでいます。autoload.php ファイルは、Composerを使用してStripeライブラリをインストールした場合に自動的に生成されます。
- \Stripe\Stripe::setApiKey($stripeSecretKey); は、Stripe APIキーを設定しています。$stripeSecretKey 変数には、Stripeのシークレットキーが格納されている必要があります。

2. 稼働中のサブスクリプションのIDを取得
try {
  $subscriptions = \Stripe\Subscription::all([
    'status' => 'active',
    'limit' => 100
  ]);
  
  $subscriptionIds = [];
  
  foreach ($subscriptions->data as $subscription) {
    $subscriptionIds[] = $subscription->id;
  }
  
  echo '稼働中のサブスクID: ' . implode(', ', $subscriptionIds);
} catch (\Stripe\Exception\ApiErrorException $e) {
  echo 'エラー: ' . $e->getMessage();
}

- Subscription::all() メソッドを使用して、status パラメータが 'active' のサブスクリプションを取得しています。limit パラメータは、取得するサブスクリプションの数を制限しています。
- 取得したサブスクリプションのIDを $subscriptionIds 配列に格納しています。
- 最後に、implode() 関数を使用して $subscriptionIds 配列を文字列に変換し、稼働中のサブスクリプションのIDを表示しています。

3. サブスクリプションのクレジットカードの有効期限を表示
foreach ($subscriptionIds as $subscriptionId) {
  try {
    $subscription = \Stripe\Subscription::retrieve($subscriptionId);
    $paymentMethodId = $subscription->default_payment_method;
    
    $paymentMethod = \Stripe\PaymentMethod::retrieve($paymentMethodId);
    $card = $paymentMethod->card;
    
    $expirationMonth = $card->exp_month;
    $expirationYear = $card->exp_year;
    
    echo 'サブスクID: ' . $subscriptionId . '<br>';
    echo 'クレジットカードの有効期限: ' . $expirationMonth . '/' . $expirationYear;
    echo '<br><br>';
  } catch (\Stripe\Exception\ApiErrorException $e) {
    echo 'エラー: ' . $e->getMessage();
  }
}

- foreach ループを使用して、登録された各サブスクリプションに対して以下の処理を行います。
- Subscription::retrieve() メソッドを使用して、サブスクリプションの詳細を取得します。
- サブスクリプションのデフォルト支払い方法のIDを取得します。
- PaymentMethod::retrieve() メソッドを使用して、支払い方法の詳細を取得します。
- クレジットカードの有効期限を取得し、変数に格納します。
- サブスクリプションIDとクレジットカードの有効期限を表示します。

最後に、catch ブロックがあり、Stripe APIからの例外をキャッチしてエラーメッセージを表示しています。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。