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キーも異なりますので、環境変数を使ってテスト環境と本番環境の切り分けすることができます。
.envrc
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' }