プログラマー歴、半年未満でもわかるpay.jp導入(rails)


・書いてあること

文系の大学生がrailsを勉強して調子乗ってwebpayを導入して(プログラマー1ヶ月目でもわかるwebpayの導入1(rails))から4ヶ月。

今度はBASE社のPAY.JPの導入にチャレンジしてみたって話。

基本的にはコードをそのままコピペすれば実際に動くように書いてます。。

webpay同様、簡単にできるなぁって感じでした。。

・PAY.JPとは

雑に書くとクレジットカード決済のアレ

pay.jpはvisa・masterの手数料がwebpayよりも低いですね。

webpayのスタータープランは

VISA・masterが3.25%

JCB・ダイナース・アメックスが3.40%
https://webpay.jp/pricing

payjpは

VISA・masterが3.0%

JCB・ダイナイース・アメックが3.6%

では実際に導入してみましょう!!

今回も怖いのでいきなり作ってあるappに導入する前に別appを作りました。

1.とりあえずpayjpってのを作ってみる

ターミナル
$ rails new payjp 
$ cd payjp

2.pay.jpのgemをインストール

Gemfile
  gem 'payjp'
ターミナル
$ bundle install

3.ルーティング

config/ro
root 'products#index'
get 'products' => 'products#index'
post 'products/pay' => 'products#pay'

4.コントローラー

ターミナル
bundle exec rails g controller products
app/controllers/products_controller.rb
def index
end

def pay
    Payjp.api_key = '秘密キー'
    charge = Payjp::Charge.create(
    :amount => 3500,
    :card => params['payjp-token'],
    :currency => 'jpy',
)
end

秘密キーとか公開キーはログインしてダッシュボードの右上の方の歯車のアイコンを押すと「ユーザー設定」ってのがあってその中の「API KEY」ってところに書いてあるよ。

webpayのときも書いた気がするけど「amount」ってのが金額だよ。

5.view

app/views/products/index.html.erb
<%= form_tag(action: :pay, method: :post) do %>
   <script type="text/javascript" src="https://checkout.pay.jp" class="payjp-button" data-key="公開キー"></script>
<% end %>
app/views/products/pay.html.erb
支払い完了

localhost:3000で確認してみると

こんな感じの画面になっているはずで

決済も試せて

テストカードで決済すると

ダッシュボードに3500円の売り上げがあったことになるはずなんですよ。

とても簡単ですね。

一回導入を試してみて成功してから

すぐには書いてるんですけどもしかしたら書き忘れてるところとかあるかもしれないので

もし試してみて

「おい、動かねーじゃねーか。ふざけんな。時間返せ。」

みたいな感じになったら、コメントに書いていただければ問題の箇所を探して訂正します。
(*神様ではないので時間は返せそうにないのでその辺は許してください。)