はじめに
例によって、某プログラミングスクールの最終課題である、フリマアプリのクローンサイト作成において、購入機能実装時にPay.jpを利用したので、健忘録としてここに記す。
バージョン情報
ruby '2.5.1'
Rails '5.2.4.2'
実装の流れ
- 実装の準備・APIの導入 ← 今回の実装内容
- モデルの作成・クレジットカード登録
- クレジットカード詳細表示・削除
- クレジットカード購入(決済)機能
前提条件として
- 記載はhaml記法で
- 私の参考にしたrailsにhamlを導入するやり方はこちら、、
いよいよ実装! PAY.JP登録・APIキーの取得
-
こちらのサイトよりPAY.JPのアカウントを取得ください
PAY.JP
PAY.JPのgemをインストール!
以下のコードを「gemfile」に記載
gem 'payjp'
忘れずに「bundle install」もしよう(再起動もしましょう)。
$ bundle install
$ rails s
環境変数を使ってAPIキーをアプリに登録
いくつか方法(専用のgemを使うなど)があると思うのですが、今回はcredentials.yml.enc
に記載する方法で実装します。
注) rails 5.2以降ではEncrypted Credentials
という機能が導入され、シークレットキー等の外部に公開されたくない値などはconfig/credentials.yml.enc
に記載することになりました
###テスト用シークレットキーをcredentials.yml.enc
に記載
EDITOR="vi" bin/rails credentials:edit
(シークレットキーとは先ほどPAY.JPで確認したAPIキーのうちのsk_で始まる秘密鍵のことです。今回はテスト環境なの「sk_test_○○」から始まる物です。)
payjp:
PAYJP_SECRET_KEY: sk_test_ご自身の秘密鍵の値
##application.html.haml
にスクリプトを記載
以下のスクリプト
%script{src: "https://js.pay.jp/", type: "text/javascript"}
をapplication.html.haml
に追記
(例)
%html
%head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
%title sampleApp
%script{src: "https://js.pay.jp", type: "text/javascript"}
= csrf_meta_tags
~-----------------------------
###以上で準備OK!!
##最後に
以上で準備完了です!
次回からいよいよ機能の実装に入っていこうと思います。
私自身初めての投稿なので、至らない部分などありましたら、ぜひご指摘お願いします!!
##参考リンク
- 公式リファレンス
- 公式ガイド
- 【Ruby on Rails で簡単!】PAY.JPを利用したクレジットカード決済の導入
- 【Rails】payjpを使用した決済機能を実装する①〜クレジットカードの登録編〜
(credentials.yml.encへの秘密鍵記載を参考にさせて頂きました) - [HowTo]Pay.jpを用いたクレジットカードの登録機能実装について/カスタムフォーム版
(PAY.JPの詳細情報を参考にさせて頂きました。) - Payjpでクレジットカード登録と削除機能を実装する(Rails)
- (credentials.yml.encの使い方について参考にさせて頂きました)
Rails5.2から追加された credentials.yml.enc のキホン - (hamlの導入に関して参考にさせて頂きました)Railsでhamlを導入する!