为什么我在通过 Stripe 处理信用卡交易时总是收到未输入的付款方式

Why do I keep getting a payment method not entered when processing a credit card transaction via Stripe

我遇到了一些技术难题,我的编程知识有限,所以这可能很容易解决。我正在尝试将 Stripe 信用卡交易整合到我们的网站中,https://cdunion.ca/stripe/。一切正常,它将连接到 Stripe,没有错误消息,但是当我登录到我的 Stripe 仪表板时,每笔交易都列为 200 正常,但也列为未完成。确切的错误是 "The customer has not entered their payment method"。两周以来,我一直在谷歌上搜索并绞尽脑汁,但没有成功。我已检查并在我的 Stripe 仪表板中启用了银行卡支付方式。下面列出了我的代码。我在家庭测试服务器和实时服务器上都使用 Composer 中的 Stripe 库。非常感谢您提供的任何帮助,谢谢。

PS列出的信用卡专门用于所有信用卡处理商使用的测试目的,所以请放心,我们没有泄露任何机密信息。

<?php
/* 
$donation_amount = ($_POST["donation-amount"]) . '00';
$address = (($_POST["unit"]) . '-' . ($_POST["address"]));
$city = ($_POST["city"]);
$province = ($_POST["province"]);
$country = ($_POST["country"]);

echo ($donation_amount . "<br>" . $address . "<br>" . $city . "<br>" . $province . "<br>" . $country);

*/

require_once 'C:/xampp/composer/vendor/autoload.php';

\Stripe\Stripe::setApiKey('*censored*');

\Stripe\PaymentMethod::create([
  'type' => 'card',
  'card' => [
    'number' => '4242424242424242',
    'exp_month' => 12,
    'exp_year' => 2020,
    'cvc' => '314',
  ],
]);

\Stripe\PaymentIntent::create([
    'payment_method_types' => ['card'],
    'amount' => $donation_amount,
    'currency' => 'cad',
]);

die();

?>

您需要在创建支付意向时传递支付方式的ID。

$method = \Stripe\PaymentMethod::create([
  'type' => 'card',
  'card' => [
    'number' => '4242424242424242',
    'exp_month' => 12,
    'exp_year' => 2020,
    'cvc' => '314',
  ],
]);

\Stripe\PaymentIntent::create([
    'payment_method_types' => ['card'],
    'payment_method' => $method->id,
    'amount' => $donation_amount,
    'currency' => 'cad',
]);