JP_Stripes (Stripe ユーザーグループ)福岡 Vol.4
baserCMSのStripeプラグインをつくった話
株式会社キャッチアップ/baserCMSユーザー会 内場 龍彦
自己紹介
内 場 龍 彦 (ハイパークマさん)
株式会社キャッチアップ マネージャー/ディレクター/プログラマー
baserCMSユーザー会
■仕事内容:
・開発チームのマネジメント(本業)
・システムプランニング
・みんながしにそうな時にだけ動くプログラマー
・baserCMSを盛り上げる活動
■使う言語:
php / javascript / htmlとかsassなどなど...
Twitter: @ichi280
「baserCMSのStripeプラグインをつくった話」
なのですが
さっそく
baserCMSって聞いたことあるけど・・・
何ができるの?
?
?
?
?
?
?
?
?
baserCMSってなにができるの?
CakePHP製のCMSなので、ラーニングコストが低い
CMS用のプラグイン/ライブラリが豊富
ログイン/ファイルアップロード等のコンポーネントや
管理画面用Viewファイルが豊富に揃っているため、
アプリケーションのスピード開発が可能
baserCMSってなにができるの?
かんたんインストールもできる
baserCMSのStripeプラグインをつくった話
1:APIを使って決済画面を表示させた
2:簡単に完成したと思ったらハマった
3:処理の流れを書いてみる
4:こんな感じで実装してみました
今日のアジェンダ
今回使ったAPI
今回使ったAPI
Checkout
JavaScript を 1 行追加するだけで、
洗練された決済フォームを Web サイトに
表示できます。
実際使ってみた
実際使ってみた
ユーザー登録 APIキー取得
実際使ってみた
ボタン表示された!
決済画面でた!!
決済フォームできた!!!
超簡単!!!
実際使ってみた
決済が完了した!
(ᵔᴥᵔ) 安心 (ᵔᴥᵔ)
実際使ってみた
「うん、楽勝だったね。」
「決済画面見てみよっかな〜〜フフフーん」
実際使ってみた
実際使ってみた
おや・・・
原因を考察
Checkout
JavaScript を 1 行追加するだけで、
洗練された決済フォームを Web サイトに
表示できます。
原因を考察
決済できるとは謳ってない
原因を考察
原因を考察
原因を考察
Once you’ve securely collected and tokenized your customer’s credit card using Checkout
or Elements, you can charge the card immediately or save it for later. Unlike tokenization,
which occurs in the browser, charge attempts are made from your server, normally using
one of our client libraries. If you haven’t already, install the library for your favorite language
now.
CheckoutまたはElementsを使用して顧客のクレジットカードを安全に収集してトークン
化したら、カードをすぐに請求するか、後で保存することができます。 ブラウザで行わ
れるトークン化とは異なり、通常はクライアントライブラリの1つを使用してサーバーか
ら料金請求が試行されます。 まだインストールしていない場合は、好きな言語のライブ
ラリをインストールしてください。
原因を考察
Once you’ve securely collected and tokenized your customer’s credit card using Checkout
or Elements, you can charge the card immediately or save it for later. Unlike tokenization,
which occurs in the browser, charge attempts are made from your server, normally using
one of our client libraries. If you haven’t already, install the library for your favorite language
now.
CheckoutまたはElementsを使用して顧客のクレジットカードを安全に収集してトークン
化したら、カードをすぐに請求するか、後で保存することができます。 ブラウザで行わ
れるトークン化とは異なり、通常はクライアントライブラリの1つを使用してサーバーか
ら料金請求が試行されます。 まだインストールしていない場合は、好きな言語のライブ
ラリをインストールしてください。
フォームから送信した内容はstripeで預かり、トークンを返却する。
そのトークンを使用してアプリケーション側から決済を確定させる。
決済データを一時的にstripeに預けることにより、
セキュアな取引が可能
処理の流れ
1:フォームから決済情報送付
4:トークンを完了URLにPOST
5:トークンをバインドして
ChargeAPIコール
処理の流れ
こんな感じで実装してみました
stripe_configs
実装の流れ
stripe_orders
stripe_payments
APIキー/Secretキー/決済時の入力項目等、
全体的な設定を格納
stripe決済情報=注文情報を格納
各ページ単位での価格情報や、
決済オンオフフラグを格納
DB設計
stripe設定画面
実装の流れ
画面設計:管理画面
ページ編集画面
cakePHPのイベント処理で
フォーム項目を追加
ページ
実装の流れ
画面設計:フロント画面
決済完了画面
cakePHPのイベント処理で
ボタンのスクリプトを埋込
完了時にstripeから受け取った
決済データをDBに保存
注文情報一覧画面
実装の流れ
画面設計:管理画面
stripe
クリックでstripeの決済詳細に
ジャンプ
まとめ
1:stripeを使うとカート画面・会員登録画面
等のデザインデータが不要
2:トークンにより、安全に決済ができる
3:baserCMSのプラグインは簡単に作れる
まとめ
ご静聴ありがとうございました

baserCMSのstripe連携プラグインを作った話