Stripe 支付问题,我无法将数据存储到数据库中,但可以在 Stripe 仪表板中接收测试金额

问题描述 投票:0回答:1

我已经设置了 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
    ));

任何人都可以解决并告诉我这段代码的问题出在哪里? 谢谢!

php laravel stripe-payments payment-gateway stripes
1个回答
0
投票

就像错误中提到的那样,您已经使用了该令牌吗?一种可能性是您之前已经将令牌附加到客户,即令牌只能附加到客户一次。

如果您不记得是否这样做过,您可以尝试查看 Stripe 仪表板中的日志:https://dashboard-admin.stripe.com/test/logs

费用和令牌是遗留的 Stripe API,此时您确实不应该使用它们。您需要查看 PaymentMethods / PaymentIntents。您可以查看这些指南:

如何保存 PaymentMethod 以供将来使用:

© www.soinside.com 2019 - 2024. All rights reserved.