我已经设置了 Stripe 支付系统,但出现了如下致命错误:{致命错误:未捕获(状态 400)(请求 req_f142wGYY4VDGXx) 您不能多次使用 Stripe 令牌:tok_1PPNrbGMcptyt0mO8IbOzi1T。抛出在 C:\xampp\htdocs\join\stripe-php\lib\Exception\ApiErrorException.php 第 38 行}
我想存储来自用户的 stripe 付款信息,但问题是我将金额接收到 stripe 仪表板中,但没有接收到我的数据库中,并收到此致命错误!
这是我的代码,从第 38 行开始:
// set API Key
$stripe = array(
"SecretKey"=>"sk_test_51PNnHTGMcptyt0mOGyt8G6VmAvXhlJ7ojBpzdlI1Ey2JLrDghSZ2Nz5UszwSJr9madoDm",
"PublishableKey"=>"pk_test_51PNnHTGMcptyt0mOSgd8HrIaMr0mj0DM6lyd7W2EqlnzL3L4CHKJ0Yf2EPd9Qid8dOeGXNcwK8j"
);
\Stripe\Stripe::setApiKey($stripe['SecretKey']);
// Add customer to stripe
$customer = \Stripe\Customer::create(array(
'email' => $email,
'source' => $token,
'name' => $name,
'description'=>$des
));
// Generate Unique order ID
$orderID = strtoupper(str_replace('.','',uniqid('', true)));
// Convert price to cents
$itemPrice = ($price*100);
$currency = "usd";
// Charge a credit or a debit card
$charge = \Stripe\Charge::create(array(
'amount' => $itemPrice,
'currency' => $currency,
'customer' => $customer->id,
'description' => $des
));
任何人都可以解决并告诉我这段代码的问题出在哪里? 谢谢!
就像错误中提到的那样,您已经使用了该令牌吗?一种可能性是您之前已经将令牌附加到客户,即令牌只能附加到客户一次。
如果您不记得是否这样做过,您可以尝试查看 Stripe 仪表板中的日志:https://dashboard-admin.stripe.com/test/logs
费用和令牌是遗留的 Stripe API,此时您确实不应该使用它们。您需要查看 PaymentMethods / PaymentIntents。您可以查看这些指南:
如何保存 PaymentMethod 以供将来使用: