ライブモードで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'
));
何時間も待っていましたが、それでもこのエラーが発生します。どうすれば修正できますか?
ライブアカウントではなく、テストアカウントに存在する顧客に請求しようとしているようです。ライブキーを使用して新しい顧客を作成し、そのトークンを使用して請求を作成していることを確認してください。
ストライプアカウントには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();
}
}
テスト公開APIキーを使用してトークンを取得するJavaScriptを調べます。ライブ公開APIキーに変更します。
このようなものでなければなりません
Stripe.setPublishableKey('pk_test_axEdfdasdfasfsadfsad');
それに数時間を費やした後。他の人に役立つかもしれない場合、ここでこれを許可します:
Herokuの環境変数に格納された秘密の公開可能なキーを使用して、Herokuにアプリケーションをデプロイしました。
_.coffee.erb
_で<%= ENV.fetch('STRIPE_PU_KEY') %>
を使用します
サーバーを変更して再起動する場合は、十分ではないことに注意してください。 application.jsを再生成する必要があります。再生成しないと、キャッチされた値が引き続き使用されます。
それが役に立てば幸い