こんにちは。あそなすといいます。WebPay Advent Calendar 2013の4日目です。
さて、僕が書こうとしていた内容は「サーバにクレジットカードの番号(PAN)を通さない決済方法」という名目でこのアドベントカレンダーに臨んでちまちまコードを書いていたのですが、まさかの初日のhmskさんに、WebPayでリリースされたばかりのCheckoutHelperの話をされるとは思ってもいなかったので、急遽路線変更をして「WebPayを使った簡単なWebショップをつくっている」という話をしようと思います。
CheckoutHelperとは
初日のhmskさんの記事にもありますように、CheckoutHelperとは決済の手続きを助けてくれるものです。
そもそもWebPayにはTokenというAPIがあります。 このAPIを使うことによってクレジットカードのトークンを発行してくれます。
CheckoutHelperはJavaScriptで実装されていて、トークン化をする時 自分が管理しているサーバにクレジットカードの番号を通すことがない のが1番の利点ですね。
そして、なぜ自分のサーバにクレジットカードの番号を通さないのが利点なのか?また、決済仕組みやクレジットカードに関するセキュリティなどについてはWEB†DB PRESSが詳細に書かれてあるのでそちらもオススメします。
余談ですが、僕はCheckoutHelperのことを勘違いしていて、CheckoutHelperを使うことで決済まで終わるものだと思っていました。
実際にはCheckoutHelperはクレジットカードのトークン化しかせず(2013/12/5日現在)、決済自体は別途WebPayのAPIを呼び出す必要があります。
具体的なCheckoutHelperを使った決済の実装方法などはhmskさんの記事に記載されており、またGithub上にリポジトリが公開されています。ちなみに僕はslimが好きです。
asonas/shop-webpay
冒頭に書いたとおりですが、そもそもなぜ「サーバにクレジットカードの番号を通さない」コードを書いていたかというと、Stripe が stripe/shop というアプリケーションを公開したことに起因します。
stripe/shopはStripeのAPI使いつつ、Parseの上で動作するようにつくられています。つまり、StripeとAPIの互換性を持っているWebPayでも同じようなことができるはずだと思ったのが始まりでした。
WebPayを使ったショップのアプリケーションは前からつくろうと思っていたのですが、なかなか時間を見つけることができなくて後々になっていたし、丁度アドベントカレンダーも始まったことなので開発をやってみようという思います。
所謂自分で設置するカートシステムの良いところは、自由にデザイン・テンプレートをいじれたり、独自ドメインをあてがうことができたり、手数料も安くすませられるのもいいですね。カートのシステムを考えるのもまた面白くモデリングのしがいがあって楽しいです。
目前に着地点は見えているので、そこへ無事にのせられたらきちんと公開してみようと思います。
まとめ
これはWebPay Advent Calendar 2013の4日目の記事でした。
CheckoutHelperが公開されたことを機に簡単なネットショップを公開できるツールを開発しています。
WebPay Advent Calendar 2013はまだ空いているようなので、進捗があったらまた書いてみようと思います。
それではまた。