LoginSignup
2
2

More than 5 years have passed since last update.

Stripeのnode SDKを使って、テスト・本番それぞれのAPIにアクセスする

Posted at

Stripeのnode SDKまわりをいろいろ触ってみたので覚書としてまとめました。

SDKの準備

npmで配布されているので、以下のコマンドでインストールできます。

$ npm install --save stripe

Stripeオブジェクトの作成

StripeのAPIと接続するためのオブジェクトを以下のように生成します。
sk_YOUR_STRIPE_SECRET_KEYは、StripeダッシュボードのAPIから見れる「Secret Key」を使用します。

index.js
var stripe = require("stripe")(
  "sk_YOUR_STRIPE_SECRET_KEY"
);

テストと本番を切り替える

Stripeはデフォルトでテストと本番の2環境が用意されています。
それぞれAPIキーも異なりますので、環境変数を使ってテスト環境と本番環境の切り分けすることができます。

export STRIPE_ENV='test'
index.js
let stripe_secret = "sk_test_STRIPE_SECRET_KEY"
if (process.env.STRIPE_ENV === undefined){
  console.log('STRIPE_ENV is not defined')
  return
} else if (process.env.STRIPE_ENV == 'prod') {
  stripe_secret = "sk_live_STRIPE_SECRET_KEY"
}
var stripe = require("stripe")(
  stripe_secret
);

// せっかくなので、アカウント情報を取得して違いを見てみる
stripe.customers.list(
  function(err, account) {
    // asynchronously called
    if(err) {
      console.log(err)
    }
    console.log(account)
  }
);

実行結果を比較する

先程のindex.jsを実行すると、以下のように環境変数によってとれるデータが異なるのがわかります。

実行結果(STRIPE_ENV = test)

{ object: 'list',
  data: 
   [ { id: 'cus_XXXXXXXXXXXXXXX',
       object: 'customer',
       account_balance: 0,
       created: 1488767648,
       currency: null,
       default_source: null,
       delinquent: false,
       description: null,
       discount: null,
       email: 'hoge@example.com',
       livemode: false,
       metadata: {},
       shipping: null,
       sources: [Object],
       subscriptions: [Object] },
  ],
  has_more: false,
  url: '/v1/customers' }

実行結果(STRIPE_ENV = prod)

{ object: 'list',
  data: [],
  has_more: false,
  url: '/v1/customers' }
2
2
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
2
2