こんにちは、岩下です。今回はオンライン決済サービスのStripeをGo言語から試してみたのでブログに残しておきます。
簡単に、Stripeとは
StripeはPaypalのようなオンライン決済代行サービスで、2016年の秋頃に日本に上陸しています。料金体系が明確かつ安く、APIがシンプルなことで人気を集めているようです。
Stripeの使用準備
Sign Up
まずはStripeにSign Upします。今回の様にテスト使用するだけであれば、登録するのはメールアドレスとパスワードのみでOKです。
Test Dataを表示するよう設定
ダッシュボードの View Test Data
のスイッチをONにしておきます。
stripe-goの使用準備
Stripe公式のGoライブラリstripe-goを使用します。
stripe-goのインストール
go get github.com/stripe/stripe-go
Payments機能を試す
今回はカスタマーの登録、カード情報の登録、1000日本円のチャージを行ってみます。
APIキーの確認
Platformの登録が完了した状態で、ダッシュボードの API
→ Reveal test key secret
からAPIキーが確認できます。
ソースコード
package main
import (
"github.com/stripe/stripe-go"
"github.com/stripe/stripe-go/customer"
"github.com/stripe/stripe-go/charge"
"github.com/stripe/stripe-go/card"
)
func main() {
stripe.Key = "{APIキー}"
// Customer生成
customerParams := &stripe.CustomerParams{
Email: "hogehoge@example.com",
}
cus, _ := customer.New(customerParams)
// Card情報生成
card.New(&stripe.CardParams{
Customer: cus.ID,
Name: "ほげほげ",
Number: "4242424242424242",
Month: "11",
Year: "18",
CVC: "123",
})
// CustomerにChargeする
chargeParams := &stripe.ChargeParams{
Amount: 1000,
Currency: "jpy",
Customer: cus.ID,
}
charge.New(chargeParams)
// TODO: Customer IDなどのカスタマー情報をDBに保存する
}
確認
ダッシュボードの Customers
にCustomerが追加されており、カード情報および支払い情報が登録されていることが確認できます。カード情報などのユーザ情報はすべてStripe側で管理され、実装側ではCustomer IDのみを保持・管理すればいいので簡単・便利ですね。
おわりに
簡単ですが今回は以上です。少し触ってみただけですが、APIが直感的でわかりやすく、ダッシュボードでの操作方法も明確であると感じました。現在、まだまだ日本語の記事もあまり見かけませんが、これから注目されていくのではないでしょうか。