【问题标题】:Stripe Connect With Parse使用 Parse 进行条带连接
【发布时间】:2015-08-06 03:58:30
【问题描述】:

我已经有一个可以工作的条带连接应用程序,但现在我没有解决如何使用 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 一起使用,谢谢。

【问题讨论】:

  • 您到底想用 Parse REST API 实现什么?
  • 我已经为 Parse Rest API 实现了登录和注销,但是一旦登录,我希望用户连接到条带,然后他们的条带键将保存在该帐户中。
  • 好的,Parse REST API 使用什么库?你能展示一下登录/注销代码是什么样的吗?
  • 是的,我不明白。而且我没有使用图书馆或宝石。我使用gem httparty 调用api。继承人登录和注销。 gist.github.com/anonymous/2bd7ca84081605239f5d
  • 哦,好的。所以你的问题是:你可以使用什么 API 方法来存储用户数据?因为您似乎知道如何使用它。

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


【解决方案1】:

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

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

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

如果您想将信息保存在您自己的数据库中(而不是 Parse),请忘记 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'] 哈希。

【讨论】:

  • 为什么我不需要摆脱设计?我不想再使用登录/注册了。我有 Parse 作为我的登录。
  • 我已经有用户在 Parse,所以我希望他们能够登录然后连接到 stripe。
  • 但是您是否希望您的用户通过 Stripe 登录?
  • 是的,但只是做 Stripe Connect,然后我会得到密钥,并将它们存储在 Parse 中的用户名下
  • 啊,那么你需要 both 设计和解析。 Devise 正在处理 Stripe Connect,然后您需要将用户的 Stripe 凭据保存到 Parse。因此,您需要将相同的信息发送到 Parse,而不是 @user.update_attributes(...)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 2020-06-20
  • 1970-01-01
相关资源
最近更新 更多