首页 > 解决方案 > Stripe Checkout 未定义变量:响应

问题描述

我集成了来自 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);

我在这里做错了什么?

标签: stripe-payments

解决方案


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

require 'vendor/autoload.php';

推荐阅读