現在ECサイトを作成しています。
注文の支払い方法をクレジット決済で行おうとpayjpを利用して作成していました。
しかしdevelopment環境で下記のエラーが表示され注文完了画面まで行き着きません。
rails uninitialized const
で調べてみましたが
のような原因とは思えませんでした(m_ m)
わかる方がいらっしゃいましたらご教授いただきますようよろしくお願いいたします(m _m)
- まずはpayjpによるクレジット機能が問題なく動作すること
- できれば注文も同時に保存したい
###動作環境
OS:mac
Ruby:2.3.5
Ruby on Rails: 4.2.5
###参考サイト
[Ruby/Rails]PAY.JPを利用したクレジットカード決済の実装
[Ruby] Pay.jpでクレジットカード決済を簡単実装
###試したこと
- 最初はcreateアクションに全て書こうと思ったが参考サイトのようにform_tagを利用すると入れ子ができなかった
- createアクションではなくpayアクションにpayjpの決済処理を書いた後に無理やりカートの内容を注文へ移そうとしたが、そもそもトークンを作成している部分でエラーが出る(?)
###補足情報
gem payjp
はインストール済みです
###該当のソースコード
config/routes.rb
ruby:routes.rb
1#routes.rb 2 resources :orders, only: [:new, :create] do 3 collection do 4 post 'pay' 5 end 6 end
app/controllers/orders_controller.rb
ruby
1class OrdersController < ApplicationController 2. 3. 4 def pay 5 Payjp.api_key = 'sk_test_5856604ca5d22e70cf473d39' 6 7 # Pay::Token.new ← 関係なし 8 token = Pay::Token.create( 9 :card => { 10 number: params[:number], 11 cvc: params[:cvc], 12 exp_month: params[:exp_month], 13 exp_year: params[:exp_year] 14 } 15 ) 16 17 # 売上を確定する 18 Payjp::Charge.create( 19 :amount => @total_price, 20 :card => params[token.id], 21 :currency => 'jpy' 22 ) 23# エラー処理 24 rescue Payjp::CardError 25 render 'new' 26 end 27end
app/views/orders/new.html.erb
ruby
1<%= form_tag('/pay', method: :post, datakey: 'payjpのテスト用公開鍵') do %> 2 3 <input type="text" name="number" maxlength="16" placeholder="カード番号"><br> 4 <input type="text" name="cvc" maxlength="3" placeholder="CVC"><br> 5 <input type="text" name="exp_month" maxlength="2" placeholder="月"><br> 6 <input type="text" name="exp_year" maxlength="4" placeholder="西暦(4桁)"><br> 7 8 <div class="field"> 9 <input type="submit"> 10 </div> 11<% end %>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/27 23:22