Stripe与Parse连接

时间:2015-08-05 09:42:16

标签: ruby-on-rails ruby rest parse-platform stripe-payments

我已经有一个工作的条带连接应用程序,但现在我没有设计如何实现Stripe Connect与Parse的麻烦。

这就是我已经拥有的:

class OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def stripe_connect
    @user = current_user
    if @user.update_attributes({
      provider: request.env["omniauth.auth"].provider,
      uid: request.env["omniauth.auth"].uid,
      access_code: request.env["omniauth.auth"].credentials.token,
      publishable_key: request.env["omniauth.auth"].info.stripe_publishable_key
    })
      # anything else you need to do in response..
      sign_in_and_redirect @user, :event => :authentication
      set_flash_message(:notice, :success, :kind => "Stripe") if is_navigational_format?
    else
      session["devise.stripe_connect_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

我的路线也是:

devise_for :users, :controllers => { :omniauth_callbacks => "omniauth_callbacks" }

我只是想知道我是如何操纵它的,所以我可以将它与Parse RestApi一起使用,谢谢。

1 个答案:

答案 0 :(得分:0)

您不需要删除设计,因为它处理您网站的用户身份验证。另一方面,解析处理数据(基本上,保存和恢复)。

#stripe_connect方法中,您似乎成功接收了有关用户的数据,Stripe会在用户登录后为您提供。

如果您想保存该数据,请了解如何使用Objects API

如果你想在你自己的数据库中保存信息(而不是Parse),只要忘记解析,你的代码就可以了。

<强> UPD 即可。如果您使用omniauth-stripe-connect,则可以摆脱Devise(因为您不需要其广泛的功能,只需条纹连接)。

按照文档中的说明,将以下内容添加到config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :stripe_connect, ENV['STRIPE_CONNECT_CLIENT_ID'], ENV['STRIPE_SECRET']
end
OmniAuth.config.logger = Rails.logger

然后添加到您的routes.rb

get '/auth/:provider/callback', to: 'sessions#create'

然后将您的控制器重命名为SessionsController,将stripe_connect方法重命名为create。您将可以访问相同的request.env['omniauth.auth']哈希。