Плед интеграции Rails

Я хочу совершить платеж с помощью 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), я получу несколько счетов с разными балансами.

аккаунты


person RomanOks    schedule 14.10.2019    source источник
comment
Вы пытались распечатать public_token и метаданные в консоли? Проверьте значения.   -  person demir    schedule 14.10.2019
comment
public_token работает правильно.   -  person RomanOks    schedule 14.10.2019
comment
Что находится в public_token? Могут ли метаданные быть в public_token?   -  person demir    schedule 14.10.2019
comment
public_token = public-sandbox-ce9c11... и metadata = {"institution"=>{"name"=>"Chase", "institution_id"=>"ins_3"}, "account"=>{"id"=>"", "name"=>"", "type"=>"", "subtype"=>"", "mask"=>""}, "account_id"=>"", "accounts"=>{"0"=>{"id"=>"PG7xK5xVJ5tqe...", "name"=>"Plaid Checking", "mask"=>"0000", "type"=>"depository", "subtype"=>"checking"},..   -  person RomanOks    schedule 14.10.2019
comment
@demir metadata то же, что и на картинке в моем вопросе.   -  person RomanOks    schedule 14.10.2019
comment
Из документации Plaid: Объект метаданных содержит информацию об учреждении, выбранном пользователем, и идентификатор или идентификаторы учетной записи, если включено представление «Выбор учетной записи». Вы включили Select Account вид из панели управления?   -  person demir    schedule 14.10.2019
comment
@demir Большое спасибо! Я перечитал документацию, но не нашел. Включил выбор аккаунта, теперь у меня есть ID.   -  person RomanOks    schedule 14.10.2019


Ответы (1)


Включить Select Account вид из приборной панели Plaid.

person RomanOks    schedule 03.02.2020