こんにちは、岩下です。今回はオンライン決済サービスの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の登録が完了した状態で、ダッシュボードの APIReveal 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が直感的でわかりやすく、ダッシュボードでの操作方法も明確であると感じました。現在、まだまだ日本語の記事もあまり見かけませんが、これから注目されていくのではないでしょうか。

© 2018. SuperSoftware Co., Ltd. All Rights Reserved.