Плед интеграции рельсы - PullRequest
0 голосов
/ 14 октября 2019

Я хотел бы сделать платеж, используя Stripe ACH .

Я использую драгоценный камень plaid.

Вот мой код ссылки:

var linkHandler = Plaid.create({
    clientName: 'Some Name',
    env: 'sandbox',
    key: ENV['key'],
    product: ['auth'],
    onSuccess: function(public_token, metadata) {
        $.post('/plaid/set_auth', {
            public_token: public_token,
            account: metadata.account_id
        });

        console.log('Public Token: ' + public_token);
        console.log('Selected account ID: ' + metadata.account_id);
    }
});

Контроллер пледа:

def set_auth
  public_token = params['public_token']
  account_id   = params['account']

  client = Plaid::Client.new(env: :sandbox, 
                       client_id: ENV['client_id'],
                          secret: ENV['secret'],
                      public_key: ENV['public_key'])

  exchange_token_response = client.item.public_token.exchange(public_token)
  access_token = exchange_token_response.access_token


  #Create a Stripe bank_account_token

  stripe_response = client.processor.stripe.bank_account_token.create(access_token, account_id)
  bank_account_token = stripe_response.stripe_bank_account_token

  customer = Stripe::Customer.retrieve("<customer-id>")

  customer.sources.create({
    :source => bank_account_token
  })

  #...Stripe::Charge.create()...
end

Проблема в том, что параметр metadata.account_id не передается в контроллер.

Консоль браузера: Selected account ID: null

Если я сделаю puts client.accounts.get(access_token), я получу несколько счетов с разными балансами.

accounts

...