实时模式中存在类似的对象,但使用了测试模式密钥来发出此请求。扔进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 收费 - 没有这样的令牌;在实时模式中存在类似的对象

Stripe/PHP:在 LIVE 模式下没有这样的标记,在 TEST 模式下存在类似的对象

在 Flutterwave 实时模式下遇到问题

错误 401 贝宝

Stripe:“您的请求处于测试模式,但使用了非测试卡”

实时模式下的条带测试