LoginSignup
7
4

More than 5 years have passed since last update.

Stripeのダッシュボード上で決済情報を簡単に検索できるようにするためのマル秘でもないテクニック

Last updated at Posted at 2017-10-26

image.png

Stripeをご利用の開発者の皆様、こんな経験はございませんか?

  • Dev環境とStage環境で同じテストアカウント使っているからどっちの決済情報か分からなくなる
  • StripeデータとサービスのDBデータを紐付けて不整合が起こらない様チェックしたい

あるあるーと思った方はこのまま読み進めてください。
ないないーと思った方はどうぞスキップしてください。

あ、結論を言いますと、StripeのCustomerやCharge等の各種データにメタデータを付与することで上記を解決出来ます。

メタデータを付与してみよう

Stripeの公式ドキュメントにある通り、各種データにはメタデータつまり紐付けたい独自の属性を付与することが出来ます。

例えばDBにStripeのCustomerを格納しているテーブルがあったとして、そのテーブルのプライマリキーや決済を行ったユーザーのIDをメタデータとしても良いです。
また一つのテストアカウントでDev、Stage等複数の環境で使用しているとしたら環境の情報も紐付けることが出来ます。

実際にPHPのサンプルコードでStripe決済時(Charge作成)にメタデータを付与してみましょう。

// メタデータ
$metaData = [
    'env'        => 'stg',
    'user_id'    => 1,
];

$charge = [
    'customer'    => $customer,
    'amount'      => 1000,
    'currency'    => 'JPY',
    'description' => 'テスト',
    'metadata'    => $metaData
];

// Charge作成
$response = \Stripe\Charge::create($charge);

お分かりでしょうか?
Chargeとして登録する配列にmetadataキーの値として更に連想配列を設定しています。
この連想配列に任意のキーバリューを設定出来るのでサンプルコードでは決済したユーザーIDと環境情報を付与しています。

メタデータを基に検索してみる

Stripeのダッシュボードの検索ボックスでの検索は任意の文字列でのキーワード検索の他に{Filterキー}:{値}での検索が可能です。
https://stripe.com/docs/dashboard/search

例えばVISAカードでの決済情報を検索したい場合、brand:visaと入力します。
image.png

実はこれと同様にメタデータによる検索も{メタデータに設定したキー}:{値}で可能となります。
例えば先程のサンプルコードで登録したChargeを環境別で検索する場合、env:stgと入力して検索すれば一覧に表示されます。
image.png

簡単なことではありますが、このメタデータを使うと使わないでは、Stripeデータと自身のサービスのDBデータの整合性検証やダッシュボードの検索のし易さに大きな違いが出ますので、必ず使うようにしましょう

ちなみに私はStripeを利用した決済機能のリリース直前にこのことに気づいて速攻で実装しました(汗)

これだけでダッシュボードからとっても検索しやすくなりましたとさ。
(何をメタデータとして登録するかはサービスによりますのでPLと相談の上、用法・容量を守り正しくお使い下さい)

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4