2016-05-03 12 views
0

ショートストーリー:プロダクションモードで動作するHeroku上に開発サーバーをインストールしました。Force Rail Railsの代わりにSandboxを使用する

私はこのアプリにインストールされているpaypal-sdk-restの宝石にあまりよく馴染んでいません(実際は私はRoRを初めて使っています)。

ここでドキュメントを読むhttps://github.com/paypal/PayPal-Ruby-SDK私は、開発と運用環境でSandboxとLiveの両方に対してclient_idとclient_secretを持つconfig ymlファイル(config/paypal.yml)があることを知りました。そして参照先はconfig/initializers/paypal.rbです。

私はローカルホストで作業していますが、サンドボックスで支払いを行うことができます。私がAWSサーバーにいるとき、私は支払いをLiveで作成することができます。しかし、ヘロクでは、サンドボックスではなくLiveで支払いを行う必要があります。だから私はpaypal.rbpaypal.ymlへの参照をコメントしてpaypal.rbでこれを次のように述べています

#this was added 
PayPal::SDK.configure({ 
    :mode => "sandbox", 
    :client_id => "my-sandbox-id", 
    :client_secret => "my-sandbox-secret" 
}) 

Herokuのにファイルを送信する前に、それは前に働いていたので、私は、ローカルホスト上でテストしていると私は、サンドボックスの支払いページを見て期待していました設定ファイルを削除します。私の代わりにこのメッセージのエラーを取得しています:

{ "名" => "BUSINESS_VALIDATION_ERROR"、 "詳細" => [{ "フィールド" => "validation_error"、 "問題" => "不正なテンプレート 同上。 "}]、 "メッセージ"=>" 検証エラーが発生しました。 " "information_link"=>" https://developer.paypal.com/webapps/developer/docs/api/#BUSINESS_VALIDATION_ERROR」、 "debug_id" => "ここで、いくつかのID"}

追加情報 :構成ファイルを削除する前に、私は開発情報を本番環境にコピーしていました。私はHerokuでテストしていて、同じエラーが発生しました。

アイデアの皆様?

答えて

0

キーを環境変数で追加します。そうすれば、各環境が正しいキーを参照し、それらをソース管理にチェックする必要はありません。 https://github.com/laserlemon/figaroはあなたがそのルートに行きたいならいい宝石です。あるいは、config/paypal.ymlファイルを設定して、さまざまな環境を参照することもできます。それはもっと似ています:

development: 
    :mode: "sandbox" 
    :client_id: "my-sandbox-id" 

production: 
    :mode: "not-sandbox-er-whatever" 
    :client_id: "my-not-sandbox-id" 
+0

はい。それは私が元々持っていたものです。しかし、私はHerokuで両方のサンドボックスを作ろうとしました。そして、私はそのエラーを受け取ります –

+0

私は、設定ファイルがpaypal.rbによって参照される以上のものに使用されていると推測していますが、間違っている可能性があります。いずれにしても、環境変数を使用してこの問題を解決する必要があります。 paypal.rb参照にherokuで手動でエクスポートする変数を持つことでテストできます。 –

関連する問題