错误:调用未定义的函数curl_version() PHP Stripe

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

我正在尝试将 Stripe 支付集成到我的 PHP 项目中(Windows 上带有 WAMP 的 PHP 7.4.5)。
我使用官方文档中的结构(https://stripe.com/docs/ payments/integration-builder),但当我在浏览器中检查控制台时,出现以下错误:
POST 500(内部服务器错误)并且在网络部分对 POST(对于 create.php)请求的响应是

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{"error":"Call to undefined function curl_version()"}

这是我的代码: 创建.php

require_once('../stripe-php-7.37.1/init.php'); //my others require are not printed

\Stripe\Stripe::setApiKey('my_key');


header('Content-Type: application/json');

try {
  // retrieve JSON from POST body
  $json_str = file_get_contents('php://input');
  $json_obj = json_decode($json_str);
  $paymentIntent = \Stripe\PaymentIntent::create([
    'amount' => calculateOrderAmount(), //amount calculator
    'currency' => 'eur',
  ]);

  $output = [
    'clientSecret' => $paymentIntent->client_secret,
  ];


  echo json_encode($output);
} catch (Error $e) {
  http_response_code(500);
  echo json_encode(['error' => $e->getMessage()]);
}

结帐.php

...
<script src="https://js.stripe.com/v3/"></script>
...
<form id="payment-form">
      <div id="card-element"><!--Stripe.js injects the Card Element--></div>
      <button id="submit">
        <div class="spinner hidden" id="spinner"></div>
        <span id="button-text">Pay</span>
      </button>
      <p id="card-errors" role="alert"></p>
      <p class="result-message hidden">
        Payment succeeded, see the result in your
        <a href="" target="_blank">Stripe dashboard.</a> Refresh the page to pay again.
      </p>
    </form>
...
<script>
  var stripe = Stripe("my_key");

  // Disable the button until we have Stripe set up on the page
  document.querySelector("button").disabled = true;
  fetch("/Stripe/create.php", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify(purchase)
  })
          .then(function(result) {
            result.json();
          })
          .then(function(data) {
            var elements = stripe.elements();
...
</script>

我检查了WAMP,在PHP.ini中启用了curl扩展 我有以下文件架构:
├────stripe-php-7.37.1
├────条纹
│ ├───checkout.php
│ ├────创建.php

感谢您的帮助

php curl stripe-payments
1个回答
0
投票

这是更正后的版本:

“看,你的 cURL DLL 文件无法访问。我在 XAMPP Windows 计算机上遇到了同样的问题。转到 XAMPP 目录 -> Apache -> Conf -> Extra,然后打开 'httpd-xampp.conf ' 文件。在 '# PHP-Module setup' 部分添加行 'LoadFile "/xampp/php/ext/php_curl.dll" 然后,打开 XAMPP 控制面板并重新启动 Apache。”

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