Festlegen von Umgebungsvariablen bei Verwendung von Payjp mit Rails

Umgebung

macOS Ruby 2.6.5 Rails 6.0.3.2

Überblick

Ich habe Payjp in meiner Rails-Anwendung verwendet. Zu diesem Zeitpunkt wusste ich nicht, wie ich die Umgebungsvariablen festlegen sollte, daher werde ich sie als Memorandum aufbewahren.

Ziel, das Sie erreichen möchten

Umgebungsvariablen über Payjp verarbeiten zu können.

Das Problem, das Sie lösen möchten

Für die Sicherheit ist es nicht gut, den privaten oder öffentlichen Schlüssel direkt in den Code einzufügen. Daher möchte ich private und öffentliche Schlüssel mithilfe von Umgebungsvariablen behandeln.

Umgebungsvariable

Der Wert der Umgebungsvariablen kann von Rails aus verwendet werden, indem ENV [''] geschrieben wird.

Unmittelbare Umwelt

Wenn es Catalina oder später ist

Terminal


Anwendungsname% vim ~/.zshrc

Vor Catalina

Terminal


Anwendungsname% vim ~/.bash_profile

Führen Sie die obigen Schritte im Terminal aus.

.zshrc

//Drücken Sie zuerst "i", um den Eingabemodus aufzurufen
export PAYJP_ACCESS_KEY='sk_test_*************'
export PAYJP_PUBLIC_KEY='pk_test_*************'
//Drücken Sie dann die Esc-Taste:mit wq.Beenden Sie zshrc

Anwendungsname% source ~/.zshrc

Der Quellbefehl ist ein Befehl, der den in der Datei in der aktuellen Shell geschriebenen Befehl ausführt. Es wird hauptsächlich verwendet, um die Shell-Einstellungsdatei wiederzugeben.

Wenn Sie nur die Umgebungsvariablen ändern, lesen Rails die Umgebungsvariablen nur vor der Änderung. Wenn die Anwendung ausgeführt wird, wird sie daher einmal geschlossen. Melden Sie sich dann erneut mit Rails s im Terminal mit den geänderten Umgebungsvariablen an.

Um die festgelegten Umgebungsvariablen zu verarbeiten, schreiben Sie sie im folgenden Format in die Steuerung.

creditcards_controller.rb


#Kreditkartenspeicher
  def create
    Payjp.api_key = ENV["PAYJP_PRIVATE_KEY"]
    if params['payjp-token'].blank?
      render :new
    else
      customer = Payjp::Customer.create(
        card: params['payjp-token'],
        metadata: {user_id: current_user.id}
      )
      @card = Creditcard.new(
        user_id: current_user.id,
        customer_id: customer.id,
        card_id: customer.default_card
      )
      if @card.save
        redirect_to root_path, notice: "Kreditkarte registriert"
      else
        render :new, notice: "Kreditkartenregistrierung fehlgeschlagen"
      end
    end

Der obige Beispielsatz ist ein Vorgang zum Tokenisieren und Speichern der im Formular eingegebenen Kreditkarteninformationen.

Produktionsumfeld

Außerdem unterscheiden sich die Dateien, in denen die Umgebungsvariablen festgelegt sind, zwischen der lokalen Umgebung und der Produktionsumgebung.

Terminal


[ec2-user ~]$ sudo vim /etc/environment

/etc/environment

//Drücken Sie zuerst "i", um den Eingabemodus aufzurufen
PAYJP_ACCESS_KEY='sk_test_*************'
PAYJP_PUBLIC_KEY='pk_test_*************'
//Drücken Sie dann die Esc-Taste:mit wq/etc/Verlasse die Umgebung
exit
//Melden Sie sich erneut mit ssh bei ec2 an

Wie in der lokalen Umgebung ist es erforderlich, Unicorn neu zu starten oder erneut bereitzustellen, wenn Umgebungsvariablen festgelegt oder geändert werden.

Am Ende

Ich hoffe, dieser Artikel hilft Ihnen weiter.

Referenz: https://wa3.i-3-i.info/word11788.html https://qiita.com/Richelieu/items/b872dfce81124084b199#%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AB%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80 https://qiita.com/suzy1031/items/7964829086eb929471a6

Recommended Posts

Festlegen von Umgebungsvariablen bei Verwendung von Payjp mit Rails
Festlegen und Beschreiben von Umgebungsvariablen mit Rails zsh
So erstellen Sie eine Rails 6-Umgebung mit Docker
[Rails] So erstellen Sie eine Umgebung mit Docker
So generieren Sie automatisch ein ER-Diagramm bei der Migration mit Rails 6
So geben Sie db beim Erstellen einer App mit Rails an
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
So installieren Sie Pry nach dem Erstellen einer Rails-Entwicklungsumgebung mit Docker
So erstellen Sie eine Rails + Vue + MySQL-Umgebung mit Docker [neueste Version 2020/09]
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
[Rails] So laden Sie Bilder mit Carrierwave hoch
So beheben Sie Fehler, die während der Installation von Rails 5.1.3 auftreten
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
Verwendung von Umgebungsvariablen in RubyOnRails
So implementieren Sie die Image-Veröffentlichung mithilfe von Schienen
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So verknüpfen Sie Rails6 Vue (aus dem Umgebungsbau)
[Rails] Fehlerbehebung beim Generieren von Token mit PAYJP
[Rails] So laden Sie mehrere Bilder mit Carrierwave hoch
Rails6.0 ~ So erstellen Sie eine umweltfreundliche Entwicklungsumgebung
So erstellen Sie eine API mit GraphQL und Rails
So erstellen Sie Elementvariablen mit dem JPA-Modell
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
So wird die Abfragezeichenfolge bei Verwendung von PreparedStatement in JDBC tatsächlich ausgegeben
So leiten Sie zu http-> https um, wenn SSL in der Rails × Heroku-Umgebung aktiviert ist
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Wie schreibe ich Rails
So deinstallieren Sie Rails
Einbetten von JavaScript-Variablen in HTML mit Thymeleaf
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
So pushen Sie mit Rails entwickelte Apps an Github
Gibt an, ob SSL bei Verwendung von JDBC mit MySQL aktiviert werden soll.
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
So führen Sie mit RxAndroid einen Komponententest mit JVM an einer Quelle durch
So löschen Sie ein mit Rails erstelltes new_record-Objekt
Hinzufügen von Zeichen zur Anzeige bei Verwendung der link_to-Methode
So generieren Sie manuell ein JWT mit Knock in Rails
[Docker-Umgebung] Umgang mit ActiveSupport :: MessageEncryptor :: InvalidMessage
[Java] Verweisen Sie auf und setzen Sie private Variablen mit Reflektion
[So fügen Sie ein Video mit Rails in haml ein]
[Rails] Umgang mit URL-Änderungen nach dem Rendern
Verwenden der PAY.JP-API mit Rails ~ Implementierungsvorbereitung ~ (payjp.js v2)
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Abfragen von Arrays in jsonb mit Rails + postgres