kobasaです(´ω`*)
雨すごいですね…前に雨漏り起きてるんで心配です。
頼むからパソコン関係は避けて雨漏りしてくれよ。
92日目のまとめ
今日は「商品購入機能」の実装に伴う技術の2項目目を勉強していました。
オープンAPIを利用したクレジットカード決済機能
今回はPAY.JPというクレジットカード決済代行サービスのAPIを使用する。
処理の流れ
主にJavaScriptを使用して記述
- クライアントサイドからカード情報をPAY.JPに送る(payjp.js読み込み)
- トークン(クレジットカード情報を暗号化したもの)をPAY.JPからもらう
- トークンの情報をフォームに含めてサーバーサイドに送る
主にコントローラーを使用して記述
- サーバーサイドでトークンの情報を受け取れるようにする
- PAY,JPの決算処理をする(Gemが必要)
設定しないと情報漏洩につながる
- 秘密鍵と公開鍵を環境変数に設定する
まとめ
コードで全部まとめきれないので、重要だと思った部分をざっくりと
- 秘密鍵と公開鍵をそのままGitHubにPUSHしてはいけない!
- application.html.erbのhead要素内ににpayjp.jsを読み込ませる記述をする。
- 受け取ったトークンの値をブラウザ上に表示されないようにする。
- カード情報はサーバーサイドに送る前に取り除く。送るのはトークンのみ。
- トークンと金額の情報をストロングパラメータに追加する。
- トークンの情報を扱えるようにモデルに追記する。attr_accessor :token
- 決済処理にはgem ‘payjp’を使用した記述を。
- トークンに空では登録できないバリデーションをかける。
カリキュラム見ながらだと、なんとかいけそうな感じ。
JavaScript周りはかなり怪しいけど。Fromオブジェクトと組み合わせるのが難しいんかな?
コメント