macOS Ruby 2.6.5 Rails 6.0.3.2
J'ai utilisé Payjp dans mon application Rails. À ce moment-là, je ne savais pas comment définir les variables d'environnement, je vais donc le garder en mémoire.
Être capable de gérer les variables d'environnement via Payjp.
Il n'est pas bon pour la sécurité de mettre la clé privée ou la clé publique directement sur le code. Par conséquent, je voudrais gérer les clés privées et les clés publiques à l'aide de variables d'environnement.
La valeur de la variable d'environnement peut être utilisée à partir de Rails en écrivant ENV ['<nom de la variable d'environnement>'].
Si c'est Catalina ou plus tard
Terminal
Nom de l'application% vim ~/.zshrc
Avant Catalina
Terminal
Nom de l'application% vim ~/.bash_profile
Faites ce qui précède dans le terminal.
.zshrc
//Appuyez d'abord sur "i" pour entrer en mode d'entrée
export PAYJP_ACCESS_KEY='sk_test_*************'
export PAYJP_PUBLIC_KEY='pk_test_*************'
//Appuyez ensuite sur la touche esc:avec wq.Quitter zshrc
Nom de l'application% source ~/.zshrc
La commande source est une commande qui exécute la commande écrite dans le fichier dans le shell actuel. Il est principalement utilisé pour refléter le fichier de configuration du shell.
Si vous modifiez simplement les variables d'environnement, les rails liront uniquement les variables d'environnement avant la modification. Par conséquent, si l'application est en cours d'exécution, elle sera fermée une fois. Puis reconnectez-vous avec les rails s à nouveau dans le terminal avec les variables d'environnement modifiées.
Afin de gérer les variables d'environnement définies, écrivez-les dans le contrôleur au format suivant.
creditcards_controller.rb
#Stockage de carte de crédit
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: "Carte de crédit enregistrée"
else
render :new, notice: "L'enregistrement de la carte de crédit a échoué"
end
end
L'exemple de phrase ci-dessus est un processus permettant de tokeniser et de sauvegarder les informations de carte de crédit entrées dans le formulaire.
En outre, les fichiers dans lesquels les variables d'environnement sont définies diffèrent entre l'environnement local et l'environnement de production.
Terminal
[ec2-user ~]$ sudo vim /etc/environment
/etc/environment
//Appuyez d'abord sur "i" pour entrer en mode d'entrée
PAYJP_ACCESS_KEY='sk_test_*************'
PAYJP_PUBLIC_KEY='pk_test_*************'
//Appuyez ensuite sur la touche esc:avec wq/etc/Sortez de l'environnement
exit
//Connectez-vous à nouveau à ec2 avec ssh
Comme pour l'environnement local, il est nécessaire de redémarrer ou de redéployer unicorn lors de la définition ou de la modification des variables d'environnement.
J'espère que cet article vous sera utile.
référence: 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