webpay on rails

16
MerryBiz Inc. CHIKURA Shinsaku Oct 3, 2014. WebPay on Rails よりよい購買体験を実現するための決済ライブラリ利用法

Upload: shinsaku-chikura

Post on 12-Jun-2015

499 views

Category:

Internet


0 download

DESCRIPTION

よりよい購買体験を提供できる組み込み型決済ライブラリWebPayの紹介と、Railsでの実装方法について具体的なコードを基に解説する。

TRANSCRIPT

Page 1: WebPay on Rails

MerryBiz Inc. CHIKURA Shinsaku Oct 3, 2014.

WebPay on Railsよりよい購買体験を実現するための決済ライブラリ利用法

Page 2: WebPay on Rails

地藏 真作(ちくら しんさく) メリービズ株式会社 取締役CTO

大学在学中に友人と教育関連パッケージソフトウェアを開発する会社を起業。その後フリーランスのソフトウェアエンジニアとして、HotWired JAPAN の立ち上げ、科学技術振興機構 (JST) による電子ジャーナル公開システム J-STAGE や文献自動リンクシステムの立ち上げ・開発指揮など、各種プロジェクトに関わる。

ここ数年は、コンセプト型シェアハウスを公開・仲間を集うサービス Colish、すべての本棚を図書館にするリブライズ、「あざやかに、暮らそう。」をテーマにしたテキスタイルサイト HappyFabric など、スタートアップを中心に、運営や技術サポートを行っている。

2014年4月よりメリービズに参画。

私について

Page 3: WebPay on Rails

WebPayって何?WebPayのメリット・デメリット 重要な概念と操作Railsへの組み込み方利用事例

今日のトピック

Page 4: WebPay on Rails

ライブラリ型の決済モジュールWebサービスに組み込んで利用する

VISA/Masterのほか、JCB/AMEX/Dinersにも対応審査結果次第ではあるが、VISA/Masterのみのサービスよりは幅広く対応している。

料率3.25%(JCB/AMEX/Dinersは3.40%)、トランザクションフィーなし少額決済でも利用しやすい

月末締めの翌月末払い

WebPayって何?

https://webpay.jp/pricing

Page 5: WebPay on Rails

UI/UXが自由に組み立てられる利用者にとって安心、使いやすい

管理画面からも操作可能S課金・顧客・定期課金、表示・作成

カード番号を保持したような操作が可能サーバ上に決済用のトークンのみ保持して利用

継続課金も可能https://webpay.jp/docs/api#recursions

WebPayのメリット

Page 6: WebPay on Rails

UI/UXを自力で組み立てなければならないそれほど難しくないとは言え、JavaScriptなどの知識も必要

クライアント・サーバのどちらにもコードが必要外部決済サーバとつなぐよりは負担が多い。

WebPayのデメリット

Page 7: WebPay on Rails

Charge一回の課金

Customer カード番号に該当する情報。末尾4桁、有効期限、所有者名

Recursion定期課金(一定の間隔で決済を実行)

キーワード

Page 8: WebPay on Rails

カード情報は自サーバに送らないwebpayモジュールでは可能だが、サーバサイドでカードの処理は行わないようにする。

カード情報はブラウザ→WebPayサーバブラウザ+WebPayサーバのみで取り扱う

ワンタイムトークンを自サーバで処理ブラウザから送られたワンタイムトークンは1回限り有効

重要な操作

自サーバ

ブラウザ

WebPayサーバ

form利用者

1.カード番号

2.カード番号3.ワンタイムトークン

4. ワンタイムトークン

5.課金(ワンタイムトークン、金額)

Page 9: WebPay on Rails

サンプルコードhttps://github.com/chsh/webpay-rails-example

Railsへの組み込み方

Page 10: WebPay on Rails

Gemfilegem ‘webpay’

!

環境変数WEBPAY_PUBLIC_TOKEN

WEBPAY_API_KEY

全体の設定

Page 11: WebPay on Rails

app/assets/javascripts/webpay.coffee.erb https://github.com/chsh/webpay-rails-example/blob/master/app/assets/javascripts/webpay.coffee.erb

カード番号が入力されるformのsubmitをhookし、WebPayへの送信+トークン取得を行う。

JavaScript

Page 12: WebPay on Rails

Sapp/views/carts/_card_form.html.slim https://github.com/chsh/webpay-rails-example/blob/master/app/views/carts/_card_form.html.slim

カード番号等の入力フォーム

form

Page 13: WebPay on Rails

db/migrate/20140826160003_create_wallets.rb 決済できるトークンを保持するWalletモデルhttps://github.com/chsh/webpay-rails-example/blob/master/db/migrate/20140826160003_create_wallets.rb

!

app/models/web_pay_transaction.rb一度だけの決済をサポートhttps://github.com/chsh/webpay-rails-example/blob/master/app/models/web_pay_transaction.rb

データ管理

Page 14: WebPay on Rails

公式なテスト用カード番号・トークンhttps://webpay.jp/docs/mock_cards

テスト

Page 15: WebPay on Rails

リブライズ(現行版。Customer未対応)https://librize.com/ja リブライズ(Customer対応版。未リリース)(SlideShare版はURL非公開)

利用例

Page 16: WebPay on Rails

Questions?

Thank you!