web-dev-qa-db-ja.com

ストライプ:そのようなトークンはありません。同様のオブジェクトがテストモードに存在しますが、この要求を行うためにライブモードキーが使用されました

ライブモードでStripeを使用すると、このPHPエラー:

そのようなトークンtok_fgfhnはありません。同様のオブジェクトがテストモードに存在しますが、このリクエストを行うためにライブモードキーが使用されました

すべてがストライプテストモードで正常に機能し、ライブAPIキーに切り替えました。

このような新しい顧客を作成します。

$token  = $_POST['stripeToken'];
    $email  = $_POST['email'];

$customer = \Stripe\Customer::create(array(
      'email' => $email,
      'card'  => $token
    ));

    //charge for user ads
    $charge = \Stripe\Charge::create(array(
      'customer' => $customer->id,
      'amount'   => $amount,
      'currency' => 'eur'
    ));

何時間も待っていましたが、それでもこのエラーが発生します。どうすれば修正できますか?

19
Julien

ライブアカウントではなく、テストアカウントに存在する顧客に請求しようとしているようです。ライブキーを使用して新しい顧客を作成し、そのトークンを使用して請求を作成していることを確認してください。

8
Jake T.

ストライプアカウントには2つの異なるキーがあります。両方のテストキーをライブキーに置き換えたことを確認してください。

ライブセクトレットキー:sk_live_000000000000000000000

ライブ公開キー:pk_live_000000000000000000000

1-秘密鍵は、課金しているすべてのphpスクリプトで置き換えられます

  \Stripe\Stripe::setApiKey("sk_live_00000000000000000000");

2-公開キーは、支払いフォームの検証に使用する.JSファイル内で置き換えられます。この同じファイルも検証の成功後にトークンを作成します。これは、stripe.jsを呼び出すか、このファイルを見つけるために必要な他の名前であり、テストからライブに置き換える必要がある公開キーを持ちます。

 Stripe.setPublishableKey('pk_live_0000000000000'); //this would be publish key

            function stripeResponseHandler(status, response) { //token function
                if (response.error) {
                    // re-enable the submit button
                    $('.submit-button').removeAttr("disabled");
                    // show hidden div
                    document.getElementById('a_x200').style.display = 'block';
                    // show the errors on the form
                    $(".payment-errors").html(response.error.message);
                } else {
                    var form$ = $("#payment-form");
                    // token contains id, last4, and card type
                    var token = response['id'];
                    // insert the token into the form so it gets submitted to the server
                    form$.append("<input type='hidden' name='stripeToken' value='" + token + "' />");
                    // and submit
                    form$.get(0).submit();
                }
            }
2
A.Aleem11

テスト公開APIキーを使用してトークンを取得するJavaScriptを調べます。ライブ公開APIキーに変更します。

このようなものでなければなりません

Stripe.setPublishableKey('pk_test_axEdfdasdfasfsadfsad');
2
devXen

それに数時間を費やした後。他の人に役立つかもしれない場合、ここでこれを許可します:

Herokuの環境変数に格納された秘密の公開可能なキーを使用して、Herokuにアプリケーションをデプロイしました。

_.coffee.erb_で<%= ENV.fetch('STRIPE_PU_KEY') %>を使用します

サーバーを変更して再起動する場合は、十分ではないことに注意してください。 application.jsを再生成する必要があります。再生成しないと、キャッチされた値が引き続き使用されます。

それが役に立てば幸い

0
Daniel Costa