macOS Ruby 2.6.5 Rails 6.0.3.2
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.
Umgebungsvariablen über Payjp verarbeiten zu können.
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.
Der Wert der Umgebungsvariablen kann von Rails aus verwendet werden, indem ENV ['
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.
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.
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