【Rails6】環境変数を正しく設定したのに取得できない時は
この記事の概要
環境設定で、例えば外部サービスと連携するときにAPIキーやトークンを環境変数に保存してデプロイするときに、環境変数がエラーだよって言われる時は、' ', " ", ←こいつらを見直そう
Rails6(自分の場合はそうでしたが)に限った話ではないと思われるので、例えばlaravelを使っている人(laravelほとんど触ってないので分かりませんが)とかにも当てはまると思います。多分。
目次
- この記事の概要
- 目次
- 環境
- 自分が直面した課題
- やってみたこと
- 対処法
- まとめ
- 参考文献
環境
・mac OS catarina 10.15.1 Beta
・Rails 6.0.0
・heroku
自分が直面した課題
やろうとしことは、PayJP( https://pay.jp/ ) という、オンライン決済プラットフォームを自社のサービスに導入しようとした事だ。Pay JP にはcheckoutという機能があり、なんといっても最大の特徴はjavaScriptのコード一つで、決済画面が実装できる事だ。もちろん、Railsのコントローラとデータを紐づける必要性はあるが、それでもプロが作ったUIライブラリと複雑な決済処理を、javaScriptのコード一つで実装できるのは、なかなか画期的で凄いことに思える。
<script type="text/javascript" src="https://checkout.pay.jp/" class="payjp-button" data-key="pk_test_0383a1b8f91e8a6e3ea0e2a9" data-submit-text="トークンを作成する" data-partial="true"> </script>
さて話が脱線したが、実装方法をまとめたこちらのQiitaの記事(https://qiita.com/nobu0717/items/52b744350ef24047e1c1)より、
Payメソッド
def pay Payjp.api_key = ENV["PAYJP_SECRET_KEY"] Payjp::Charge.create( :amount => params[:amount], :card => params['payjp-token'], :currency => 'jpy' ) end
を実装しようとしたときのこと。
上記コードの
そこで、ターミナルから
上記コードの
で、 エラーが発生してしまった。Payjp.api_key = ENV["PAYJP_SECRET_KEY"]
そこで、ターミナルから
$env | grep PAYJP_SECRET_KEY
コマンドを叩いてgrepしてみるも、どうやら変数の中身は空の模様。
そこで、
を叩いてみる。$ heroku config:add PAYJP_SECRET_KEY="pk_live_XXXXXXXXXXXXX"
get で取得してみる。
お!うまくいってそう!$ heroku config:get PAYJP_SECRET_KEY
> "pk_live_XXXXXXXXXXXXXXXXX"
→でもデプロイしたら、認識されない、、、
今度は、" "を' 'にしてやってみる。(ダブルクオーテーョンをシングルクオーテーションに)
を叩いてみる。$ heroku config:add PAYJP_SECRET_KEY='pk_live_XXXXXXXXXXXXX'
get で取得してみる。
お!うまくいってそう!$ heroku config:get PAYJP_SECRET_KEY
> 'pk_live_XXXXXXXXXXXXXXXXX'
→でもデプロイしたら、認識されない、、、
なんでーーーーーーと、思って色々と調べてみたが、それを書いている記事は見つからず。orz
対処法
出力結果をよくみてみる→ " " で 囲 ま れ て い る で は な い か !
試しに、" "を外して、
と打ってみる。$ heroku config:add PAYJP_SECRET_KEY=pk_live_XXXXXXXXXXXXX
get で取得してみる。
" "ダブルクオーテーョンが外れた!$ heroku config:get PAYJP_SECRET_KEY
> pk_live_XXXXXXXXXXXXXXXXX
今度はうまくいきました。
4時間ほど悩んだ問題だったので、解決して良かった。。。
参考文献
・Pay.jp
・Pay.jp checkout
・Railsで単発決済システム(Pay.jpを実装)
https://qiita.com/nobu0717/items/52b744350ef24047e1c1
https://qiita.com/nobu0717/items/52b744350ef24047e1c1
コメント
コメントを投稿