Что я делаю неправильно, сохраняя свои учетные данные 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
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
67
1

Ответы 1

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

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

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