3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】PAY.JPの導入

Last updated at Posted at 2020-06-15

はじめに

チーム開発にて Ruby on Rails を用いてWebアプリを作成中です。

まだまだ未熟なため、記述やコードがわかりにくいかもしれません。
記載しきれなかったものや変更点は、随時更新・ブラッシュアップしていきます。

私と同じ初学者の方は検索に検索を重ねると「いま自分が何を調べたいのか」が分からなくなってしまいがちですので、専門用語やカタカナ用語は都度 解説します。

PAY.JPとは

cf. https://paymentnavi.com/paymentnews/51558.html

顧客のクレジットカード情報をアプリ側のデーターベースには保存せず、PAY.JPに保存します。顧客とクレジットカードを紐づけて処理することにより、安全にクレジットカードの決済が行えるAPIとなります。

フリーマーケットアプリの開発で商品購入機能については、このPAY.JPを利用しクレジットカードで決済を行う実装としました。

API
Application Programming Interface(アプリケーション・プログラミング・インターフェイス)」の略語であり、「ある1つの機能に特化したプログラムで共有可能なもの」や「ソフトウェアの機能を共有する仕組み」のこと。

バージョン情報

  • Ruby 2.5.1
  • Rails 5.2.4.3

1.PAY.JPのアカウント作成

PAY.JPのサイトでアカウントを作成します。(事前準備)

2.PAY.JPのgemを導入

下記をGemfileに記載しbundle installを実行。

Gemfile
gem 'payjp'

3.payjp.jsを読み込めるようにする

app/views/layouts/application.html.haml
%html
  %head
    %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
    %title payjptest
    
    -# payjp.jsを読み込めるようscriptを記載
    %script{src: "https://js.pay.jp/", type: "text/javascript"}
    
    = csrf_meta_tags
    = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
    = javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
  %body
    = yield

4.環境変数の設定

環境変数
OSが設定値などを永続的に保存し、利用者や実行されるプログラムから設定・参照できるようにしたもの。利用者の操作で明示的に作成・変更できるものもある。
よく分からない時はターミナルでprintenvコマンド(環境変数が設定できているか確認)を実行すれば、なんとなく理解できる。

秘密鍵や公開鍵をコードに直張りはセキュリティの都合上よろしくないので、
このようにコード書いて .bash_profile へ記述。
  Payjp.api_key = ENV['PAYJP_PRIVATE_KEY']

.bash_profile
ログイン時に1回 実行される。
例えば、ターミナル.appを起動した際に読み込まれる。
このファイルには具体的に何を設定すれば良いのかは環境変数を設定すると良い。

.bashrc
シェル起動時に1回 実行される。
コマンドライン上でbashと叩くと再度.bashrcが読み込まれる。(.bash_profileは読まれない)
シェルを起動する度に毎回設定したい場合はこのファイルに設定を入れる。

まずは .bash_profile の存在を確認。

ターミナル
$ ls -a

自分の場合は無かった。
touchコマンドで空のファイルを作成。

ターミナル
$ touch ~/.bash_profile
$ touch ~/.bashrc

ファイルができたことを確認。(表示されない場合はそのまま次のコマンドを実行)

ターミナル
$ ls -a

//例
.bash_profile	.gitignore	Gemfile		Rakefile	config
.bashrc		public		.ruby-version	Gemfile.lock	app		
ターミナル
$ vim ~/.bash_profile

.bash_profile へ記述。

.bash_profile
//まず「i」押下して挿入モードにする
export PAYJP_ACCESS_KEY='sk_test_*************'
export PAYJP_PUBLIC_KEY='pk_test_*************'
//escキー => :wq の順で .bash_profile から抜ける

最後に環境変数を記述したら必ず下記のコマンドで設定を有効にする。

ターミナル
$ source ~/.bash_profile

おわりに

PAY.JP導入は以上となります。
クレジットカード登録機能の実装は色々と記事がありますので各自参照してください。

参考記事

[RailsでPayjpを使った購入機能を実装する]
(https://qiita.com/suzy1031/items/7964829086eb929471a6)
[Payjpでクレジットカード登録と削除機能を実装する(Rails)]
(https://qiita.com/takachan_coding/items/f7e70794b9ca03b559dd)
[【Rails】payjpを使用した決済機能を実装する①〜クレジットカードの登録編〜]
(https://qiita.com/dice9494/items/4aa04da1056d1f15919e)
[.bash_profileと.bashrcのまとめ]
(https://qiita.com/takutoki/items/021b804b9957fe65e093)

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?