实时模式中存在类似的对象,但使用了测试模式密钥来发出此请求。扔进php
Posted
技术标签:
【中文标题】实时模式中存在类似的对象,但使用了测试模式密钥来发出此请求。扔进php【英文标题】:a similar object exists in live mode, but a test mode key was used to make this request. thrown in php 【发布时间】:2020-03-02 08:48:37 【问题描述】:我正在尝试以条纹直播模式付款,但显示以下错误:
php 致命错误:未捕获(状态 400)(请求 req_uocWWxAIPTJ6ZR) 没有这样的令牌:tok_1FbZniE3n36TXaJ5sMm5KSsX;存在类似的对象 在实时模式下,但使用了测试模式键来发出此请求。 扔进去
我已经在线阅读了几个教程,但仍然没有正面。
require_once "vendor/autoload.php";
\Stripe\Stripe::setApiKey('sk_live_xxxxxxxxxxxxxxxxxxxxxx');
$token = $_POST['stripeToken'];
// Add customer to stripe
$customer = \Stripe\Customer::create(array(
'email' => $email,
'source' => $token
));
// Unique order ID
$orderID = strtoupper(str_replace('.','',uniqid('', true)));
// Charge a credit or a debit card
$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => $amt,
"currency" => "usd",
'description' => "Payment for ". $rooms,
'metadata' => array(
'order_id' => $orderID
)
));
// Retrieve charge details
$chargeJson = $charge->jsonSerialize();
请问,我该怎么做才能解决这个问题?
【问题讨论】:
您是否也将可发布密钥更改为实时? 【参考方案1】:此错误表明客户端您使用 Live Publishable API 密钥 (pk_live_123) 创建令牌,但服务器端您使用测试秘密 API 密钥 (sk_test_123) 创建 Charge。
我知道您的代码显示您正在使用 Live Secret 密钥,但事实并非如此。我在这里建议将日志添加到您的 PHP 代码服务器端,以确保您正在运行的代码与您正在阅读的代码相同,并确认您使用的是正确的 API 密钥。
【讨论】:
以上是关于实时模式中存在类似的对象,但使用了测试模式密钥来发出此请求。扔进php的主要内容,如果未能解决你的问题,请参考以下文章
使用条纹 + 格子创建 ACH 收费 - 没有这样的令牌;在实时模式中存在类似的对象