テックキャンプ92日目〜PAY.JP

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オブジェクトと組み合わせるのが難しいんかな?

コメント

タイトルとURLをコピーしました