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

问题描述

我遇到了一些技术困难,我的编程知识有限,所以它可能很容易解决。我正在尝试将 Stripe 信用卡交易整合到我们的网站https://cdunion.ca/stripe/中。一切正常,它将连接到 Stripe,没有错误消息,但是当我登录到我的 Stripe 仪表板时,每笔交易都被列为 200 ok 但也列为不完整。确切的错误是“客户尚未输入他们的付款方式”。我一直在谷歌上搜索并为此绞尽脑汁 2 周,但没有成功。我已经检查并在我的 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();

?>

标签: phpstripe-paymentspayment-processing

解决方案


您需要在创建付款意图时传递付款方式的 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',
]);

推荐阅读