Я хочу совершить платеж с помощью 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)
, я получу несколько счетов с разными балансами.
public_token
работает правильно. - person RomanOks   schedule 14.10.2019public_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.2019metadata
то же, что и на картинке в моем вопросе. - person RomanOks   schedule 14.10.2019Select Account
вид из панели управления? - person demir   schedule 14.10.2019