質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3113閲覧

Ruby on Rails5でのPayjpによるクレジット決済機能実装について。

dlrow

総合スコア22

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/10/26 04:13

###前提・実現したいこと
Ruby on Rails5でPayjpを利用したクレジット決済システムを作っています。
###発生している問題・エラーメッセージ

KeyError in UserInfosController#purchase key not found: :ciphers charge = Payjp::Charge.create( <= ここでエラーとなってしまいます。

###該当のソースコード

class UserInfosController < ApplicationController include UserInfosHelper before_action :set_post, only: [:show, :edit, :update, :destroy] def buy if user_signed_in? @userinfo = UserInfo.new else redirect_to new_user_registration_path end end def userinfos @userinfo = UserInfo.new(userinfos_params) @userinfo.user_id = current_user.id if @userinfo.save redirect_to confirm_path else render 'buy' end end def confirm @userinfo=current_user.user_infos.last end def purchase Payjp.api_key = 'テスト秘密キー' charge = Payjp::Charge.create( currency:'jpy', amount: total_price, card: purchse_params['payjp-token'] ) current_cart.cart_items.each do|cart_item| ProductUser.create(user_id: current_user.id, product_id: cart_item.id) end @userinfo = current_user.user_infos.last UserMailer.purchase_email(@userinfo).deliver UserMailer.admin_email(@userinfo).deliver session.delete(:cart_id) redirect_to root_path, notice: "支払いが完了しました" end private def set_post @user = User.find(current_user.id) end def purchse_params params.permit('payjp-token') end end

###該当のソースコード

購入画面のview <div class="container"> <h1>購入画面</h1> <%= @userinfo.name %> <%= form_tag(action: :purchase,method: :post) do %> <script type="text/javascript" src="https://checkout.pay.jp/" class="payjp-button" data-key="テスト公開鍵" data-on-created="onCreated" data-text="支払う" data-submit-text="支払う" ></script> <% end %> </div>

###試したこと
課題に対してアプローチしたことを記載してください

https://qiita.com/trn031/items/d7684ed91178adac7932
https://qiita.com/nekononeko_53/items/972e878e31b135b7a048
https://pay.jp/docs/api/#introduction
https://teratail.com/questions/91334
これらのサイトを参考に作成しました。

###補足情報(言語/FW/ツール等のバージョンなど)
Ruby on Rails5
ruby 2.40

一晩中調べたりして、自分なり頑張ってみたのですが、全く原因がわからず今回質問を投稿させていただきました。
プログラミング自体未経験でRailsを始めてまだ1ヶ月ほど、このサイトの利用も初めてです。
何か足らない情報などがあればご指摘お願いいたします。
どうかよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最近rubyは使っていないのであっているかわかりませんが、いくつか記事が見つかりました

Rails 5 Cipher Not Found #34
fetch': key not found: :ciphers (KeyError) #135
Running an application that relies on restclient throwing an exception #600

これらによると、rest clientというライブラリのバグっぽいのですが、gemfileに入っていますか?
もし入っていれば、バージョンを確認してみてください

あと、まだ解決していないのであれば現在の状況やgemfile等も共有していただけると他の方の回答も得られるかもでう

投稿2017/11/01 14:10

hiyashikyuri

総合スコア388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dlrow

2017/11/01 14:23

回答ありがとうございます。 すでに自己解決しており、自己解決方法の投稿を忘れておりました。 rest clientはgemfileに入っておりませんが、昨日試しにbundle updateしたところ動くようになりました。 どうやらpayjpのバージョンの問題だったようです。 次回投稿する際は、gemfileなどの情報も合わせて投稿するようにいたします。 お手数おかけしてすいませんでした。
hiyashikyuri

2017/11/01 14:36

そうでしたか! 無事に解決しているようで何よりです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問