Некоторое время боролся с этим и не могу найти твердого ответа или руководства: мое приложение 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) с полосой пользователя? Что не так в приведенных выше файлах, что мешает приложению переводить средства на правильный аккаунт пользователя?