#はじめに
Railsでポートフォリオ作成し、AWSにてデプロイしたところPayjpを使ったクレジット登録が完了できず
エラーとなりました。
#環境
・Rails 6.0.0
・Ruby 2.6.5
・Unicorn 5.4.1
#状況
Payjpでのクレジットカード登録で、決済ページから決済処理に入るタイミングでエラーが出ました。
tail -f log/production.logでログを確認すると
Payjp::InvalidRequestError (No such token: tok_acd40b5df50c7656e3bed4444890):
というエラーがありました。
#問題解決のために行ったこと
エラー文の通り、Payjpの設定に問題があるのかと推測。
ローカルでは問題なく動いていたので
環境変数の問題かと思いevnにPAYJP_SECRET_KEYを設定し直したりしましたが
変化ありませんでした。
ローカルのコード記述を変えてみたり散々いじりましたが
そもそもローカルでは正常に動いているのでもっと根本的な問題では?と方針変更
ターミナルを再起動→変化なし
Unicon、Nginxを再起動→変化なし
#自分がやった解決手順
上記の流れでアセットコンパイルも再起動することにしました。
・rake assets:clobberでまずアセットパイプラインをクリーンにする
→このとき Please run yarn install --check-files
to update.が出たので
yarn install --check-files
・bundle exec rake assets:precompile RAILS_ENV=productionでアセットパイプラインのプリコンパイルを実行
・Unicon、Nginxを再起動
無事に立ち上がりました!!
さいごに
まさかのPayjpは無関係という結果でした。
ネットで同じような事例がなく、かなり遠回りをしたので
同じような状況で苦しんでいる人の助けになればと思い投稿しました。