Stripe connect не заряжается / не передается подключенным пользователям

Некоторое время боролся с этим и не могу найти твердого ответа или руководства: мое приложение ruby ​​позволяет пользователям нанимать других пользователей и оплачивать их в приложении через их подключенную автономную учетную запись. Я, как владелец платформы, получаю процент в качестве платы за обслуживание. У меня есть кнопка «Оплатить сейчас» в их профиле. он открывает форму оплаты и отправляет ее. В этот момент я получаю сообщение об ошибке:

неинициализированная константа ChargesController :: CONNECTED_STRIPE_ACCOUNT_ID

Мне сказали заменить это на пользователя "acct_xxxxxx" (идентификатор учетной записи Stripe), но здесь я запутался, так как я новичок в этом материале Stripe. Я не хочу, чтобы только один пользователь всегда получал деньги ... так зачем мне помещать единственный пользовательский аккаунт в мой контроллер? разве это значение не должно вызываться из базы данных в зависимости от пользователя? Мне действительно нужен кто-то, чтобы помочь мне здесь. Каждый ответ, который я получаю, меня еще больше сбивает с толку. В моей базе данных это значение сохраняется как "

UID

Я точно следую инструкциям и ни к чему не прихожу. Вот что у меня есть на данный момент:

Charts_controller.rb

class ChargesController < ApplicationController

    def new
    end

def create
Stripe.api_key = "sk_test_MMD##############"

Stripe::Account.retrieve(CONNECTED_STRIPE_ACCOUNT_ID)

token = params[:stripeToken]

# Create a customer
Stripe::Customer.create(
  {:description => "[email protected]"},
  {:stripe_account => CONNECTED_STRIPE_ACCOUNT_ID}
)
# Create a Charge:
charge = Stripe::Charge.create({
  :amount => 1000,
  :currency => "cad",
  :source => token,
  :application_fee => 200 # amount in cents
}, :stripe_account => "{CONNECTED_STRIPE_ACCOUNT_ID}")

rescue Stripe::CardError => e
  flash[:error] = e.message
  redirect_to new_charge_path
end
end

просмотров / начислений / new.html.erb

<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<script type="text/javascript">
Stripe.setPublishableKey('pk_test_CcUZ############');

$(function() {
  var $form = $('#payment-form');
  $form.submit(function(event) {
    // Disable the submit button to prevent repeated clicks:
    $form.find('.submit').prop('disabled', true);

    // Request a token from Stripe:
    Stripe.card.createToken($form, stripeResponseHandler);

    // Prevent the form from being submitted:
    return false;
  });
});

function stripeResponseHandler(status, response) {
  // Grab the form:
  var $form = $('#payment-form');

  if (response.error) { // Problem!

    // Show the errors on the form:
    $form.find('.payment-errors').text(response.error.message);
    $form.find('.submit').prop('disabled', false); // Re-enable submission

  } else { // Token was created!

    // Get the token ID:
    var token = response.id;

    // Insert the token ID into the form so it gets submitted to the server:
    $form.append($('<input type="hidden" name="stripeToken">').val(token));

    // Submit the form:
    $form.get(0).submit();
  }
};
</script>

конфигурация / инициализаторы / stripe.rb

Rails.configuration.stripe = {
  :publishable_key => ENV['PUBLISHABLE_KEY'],
  :secret_key      => ENV['STRIPE_SECRET_KEY'],
  :stripe_account => ENV['UID']
}
Stripe.api_key = Rails.configuration.stripe[:secret_key]

application.yml

  PUBLISHABLE_KEY: pk_test_CcUZ#############
  STRIPE_SECRET_KEY: sk_test_MMDc############
  STRIPE_CLIENT_ID: ca_9nro7##############

активы / javascript / stripe.js

<script type="text/javascript" src="https://js.stripe.com/v2/">
Stripe.setPublishableKey('pk_test_CcUZ############');
</script>

views / users / show.html.erb - кнопка Pay Now.

  <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
          data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
          data-description="Payment"
          data-amount="1000"
          data-locale="auto"></script>

Есть предложения по вышеизложенному? Напомним:
Как мне правильно вызвать идентификатор учетной записи (UID) с полосой пользователя? Что не так в приведенных выше файлах, что мешает приложению переводить средства на правильный аккаунт пользователя?


person ChrisJC2017    schedule 25.02.2017    source источник


Ответы (1)


Когда вы создаете целевую плату, вы можете указать только одну целевую учетную запись.

Если вам нужно заплатить нескольким продавцам, вам нужно либо создать несколько сборов по назначению, либо использовать поток «отдельные сборы и переводы», описанный здесь.

person Ywain    schedule 27.02.2017