Что я делаю неправильно, сохраняя свои учетные данные stripe api в credentials.yml.enc?

У меня есть элементы полосы, работающие в скрипке: http://jsfiddle.net/k4j05Lu6/

который подозревает, что я считаю, что я как-то неправильно подключаюсь к их API.

потому что сама форма оплаты не отображается. Вот как это выглядит для меня: http://jsfiddle.net/x2ucpv5y/

^ Это с не подключенным API. Сама форма не появится ... и это то, что я вижу на своей стороне в приложении

В моем источнике это появляется:

<script src="/assets/stripejs.self-515a5c43d0bc8c4cedc1b733a487b87626dd61e39c6df9c0033b4c3359d4355b.js?body=1" data-turbolinks-track="reload"></script>

И это все, что касается Stripe, и это мой локальный файл.

Вот мои попытки исправить:

У меня мой файл stripe.rb имеет такую ​​структуру:

Rails.configuration.stripe = {
  :publishable_key => Rails.application.credentials.stripe[:publishable_key],
  :secret_key      => Rails.application.credentials.stripe[:secret_key]
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

а затем сохранил мои файлы учетных данных следующим образом:

stripe:   
    publishable_key: 123456789
    secret_key: 123456789

Затем я получаю сообщение об ошибке при запуске своего сервера:

undefined method \credentials' for Rails:Module (NoMethodError)`

Я что-то делаю не так?

Попытка: 2:

Пробовал делать в файле stripe.rb ...

Rails.configuration.stripe = {
  Rails.application.credentials.stripe[:publishable_key],
  Rails.application.credentials.stripe[:secret_key]
}

Stripe.api_key = Rails.configuration.stripe[:secret_key]

с и без в последний раз ... Я получаю сообщение об ошибке: "синтаксическая ошибка, непредвиденная '}', ожидается конец ввода"

Я также пробовал заполнять ключи API локально следующим образом:

Rails.configuration.stripe = {
  :publishable_key => ENV['pk_test_1234567890'],
  :secret_key      => ENV['sk_test_1234567890']
}

Stripe.api_key = Rails.configuration.stripe[':secret_key'] #also tried with key in here <<

Пытался отключить турбо-ссылки (видел сообщение об этом), но не сработало.

Ключи правильные, их скопировали и наклеили.

Есть ли что-то, что я делаю неправильно, что-то, что может мешать (например, Dontenv, который я использую для AWS API)

Дело в том, что он все равно не должен работать без правильных ключей API, поскольку он работает в скрипке. в смысле, что он просто появляется?

Вид:

  <script src="https://js.stripe.com/v3/"></script>
    <script src="stripejs.js"></script>

    <form id="form-element" action="/charge" method="post" id="payment-form">
      <div class="form-row">
        <label for="card-element">
          Credit or debit card
        </label>
        <div id="card-element">
          <!-- a Stripe Element will be inserted here. -->
        </div>

        <!-- Used to display form errors -->
        <div id="card-errors" role="alert"></div>
      </div>

      <button id="button-element">Submit Payment</button>
    </form>

Второй JSFiddle, который не отображает форму, показывает следующую ошибку JS в консоли: Uncaught ReferenceError: Stripe is not defined. Вы уверены, что загружаете полосу правильно?

Anthony To 26.10.2018 08:26

Не верю, но тоже не знаю почему ... Я обновил свой пост, включив в него свое мнение. Как мне загружать полосу?

uno 26.10.2018 08:37

Присоединяйтесь к этому чату, и я постараюсь вам помочь: chat.stackoverflow.com/rooms/info/182560/…

Anthony To 26.10.2018 08:49
0
3
67
1

Ответы 1

Если кто-то столкнется с подобной проблемой ...

Для меня проблемы были вызваны загрузкой. Все, что вам нужно сделать, это использовать class = "form-control" в форме Stripe Elements для правильного отображения - если вы используете Bootstrap.

Другие вопросы по теме