条纹结帐未定义变量:响应

Stripe Checkout Undefined variable: response

我正在集成来自 Stripe Docs (https://stripe.com/docs/checkout/integration-builder) 的简单预建结帐示例。但是我得到这个错误

Undefined variable: response in ../create-checkout-session.php on line 28

我的html;

<script src="https://polyfill.io/v3/polyfill.min.js?version=3.52.1&features=fetch"></script>
<script src="https://js.stripe.com/v3/"></script>
<form action="/create-checkout-session.php" method="POST">
<button type="submit">Checkout</button> 
</form>

我的 create-checkout-session.php 与文档中的代码相同。

var_dump 正在运行,其中确实有一个 ["url"],当我手动打开 URL 时,它正在运行。

    <?php
    require_once('../classes/stripe-php-7.87.0/init.php');
    \Stripe\Stripe::setApiKey('sk_test_...');
    header('Content-Type: application/json');
    $YOUR_DOMAIN = 'https://example.com/';
    $checkout_session = \Stripe\Checkout\Session::create([
      'payment_method_types' => ['card'],
      'line_items' => [[
        'price_data' => [
          'currency' => 'usd',
          'unit_amount' => 2000,
          'product_data' => [
            'name' => 'Stubborn Attachments',
            'images' => ["https://i.imgur.com/EHyR2nP.png"],
          ],
        ],
        'quantity' => 1,
      ]],
      'mode' => 'payment',
      'success_url' => $YOUR_DOMAIN . '/success.html',
      'cancel_url' => $YOUR_DOMAIN . '/cancel.html',
    ]);
    var_dump($checkout_session);
    return $response->withHeader('Location', $checkout_session->url)->withStatus(303);

我做错了什么?

使用条带的 Composer 版本,并根据文档在顶部包含自动加载文件。它应该工作正常。

require 'vendor/autoload.php';

同样的错误。我已经包含了 autoload.php。 最后整理出这个脚本是针对Slim Framework的。 最后一行,使用这个:

header('Location:'.$checkout_session->url,true,303);