Railsでフリマアプリ作成の際、本番環境でToken can't be blank とでた。
ローカルではうまくいったのに・・・
以下試したこと
・公開鍵と秘密鍵が環境変数に正しく設定されているか確認した
ターミナルにて
vim ~/.zshrc
を使って確認
・JavaScriptの方で環境変数を呼び込む記述を確認した
Payjp.setPublicKey(process.env.PAYJP_PUBLIC_KEY);
・heroku logs --tail をつかって中身をみると、
2022-10-31T04:18:04.579549+00:00 heroku[web.1]: Idling
2022-10-31T04:18:04.589889+00:00 heroku[web.1]: State changed from up to down
2022-10-31T04:18:05.370935+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2022-10-31T04:18:05.403392+00:00 app[web.1]: - Gracefully stopping, waiting for requests to finish
2022-10-31T04:18:05.403903+00:00 app[web.1]: === puma shutdown: 2022-10-31 04:18:05 +0000 ===
2022-10-31T04:18:05.403922+00:00 app[web.1]: - Goodbye!
2022-10-31T04:18:05.404078+00:00 app[web.1]: Exiting
2022-10-31T04:18:05.593066+00:00 heroku[web.1]: Process exited with status 143
という記述がみられ、ここがエラー箇所に該当するかもしれない。
外部検索によると、143エラーはHerokuの再起動が必要とのことだったので、
#再起動のコマンド
heroku restart
# Herokuを停止して起動
heroku ps:scale web=0 # =>停止
heroku ps:scale web=1 # =>起動
を試してみたが、うまくいかなかった。
その他にも
・Heroku上で公開鍵と秘密鍵が設定されているか確認した
heroku config
で確認
・ローカル環境ではうまくいっている
なんだろう・・・思いつくことは全部やってみたのになあ。
と思ったら、公開鍵と秘密鍵が手打ち入力であったことを思い出し、早速payjpのページから鍵をコピーアンドペースト。
すると・・・うまくいった!!!
良い勉強になりました。