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

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

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

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

2029閲覧

Stripeでの支払い機能追加 / Ruby on Rails

ymatt

総合スコア20

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2017/07/01 10:06

###前提・実現したいこと
Ruby on Railsで、とあるチュートリアルを見ながらAirBnBのようなサービスを作成中です。Stripeで支払い機能を追加する段階で、物件登録者にStripeの登録ページへ飛んでもらうボタンを作成したのですが、ページ遷移がうまくいきません。解決方法をご存知の方がいらっしゃいましたらご教示よろしくお願いいたします。

###発生している問題・エラーメッセージ

uninitialized constant StripeOauth::RestClient

###該当のソースコード
view fileです。ここからstripe_oauth_pathに飛びます。

<ul class="list-group"> <li class="list-group-item" id="stripe-oauth"> <p>Register your bank account from the below link.</p> <%= link_to stripe_oauth_path do %> <%= image_tag "blue-on-light.png" %> <% end %> </li> </ul>

コントローラです。

class StripeController < ApplicationController def oauth connector = StripeOauth.new( current_user ) url, error = connector.oauth_url( redirect_uri: stripe_confirm_url ) if url.nil? flash[:error] = error redirect_to manage_listing_payment_path( session[:listing_id] ) else redirect_to url end end end

url取得プロセスです。

class StripeOauth < Struct.new( :user ) def oauth_url( params ) url = client.authorize_url( { scope: 'read_write', stripe_landing: 'register', stripe_user: { email: user.email } }.merge( params ) ) # Make a request to this URL by hand before # redirecting the user there. This way we # can handle errors (other than access_denied, which # could come later). # See https://stripe.com/docs/connect/reference#get-authorize-errors begin response = RestClient.get url # If the request was successful, then we're all good to return # this URL. rescue => e # On the other hand, if the request failed, then # we can't send them to connect. json = JSON.parse(e.response.body) rescue nil if json && json['error'] case json['error'] # The application is configured incorrectly and # does not have the right Redirect URI when 'invalid_redirect_uri' return nil, <<-EOF Redirect URI is not setup correctly. Please see the <a href='#{Rails.configuration.github_url}/blob/master/README.markdown' target='_blank'>README</a>. EOF # Something else horrible happened? Network is down, # Stripe API is broken?... else return [ nil, params[:error_description] ] end end # If there was some problem parsing the body # or there's no 'error' parameter, then something # _really_ went wrong. So just blow up here. return [ nil, "Unable to connect to Stripe. #{e.message}" ] end [ url, nil ] end def client @client ||= OAuth2::Client.new( Rails.configuration.stripe[:client_id], Stripe.api_key, { site: 'https://connect.stripe.com', authorize_url: '/oauth/authorize', token_url: '/oauth/token' } ).auth_code end end

###補足情報
Stripe設定方法 https://github.com/rfunduk/rails-stripe-connect-example
RestClientについて https://github.com/rest-client/rest-client

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

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

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

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

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

guest

回答1

0

自己解決

gem 'rest-client'で解決しました。チュートリアルにはありませんでしたが。

投稿2017/07/04 15:55

ymatt

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問