php - 为什么我在通过 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();
?>
解决方案
您需要在创建付款意图时传递付款方式的 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',
]);
推荐阅读
- python - 从 Python 中的嵌套字典中按顺序排序和打印键和值
- javascript - 更改嵌套函数内的变量值
- c# - 如何使用 C# 9.0 新委托*将方法从 C# 9.0 正确发送到 C/C++ 库?
- java - 如何使用 Selenium 和 Java 从 Chrome 获取控制台日志
- javascript - 最多等待 N 秒以等待某事发生
- kubernetes - 使用 Kubernetes 容器原生负载均衡和 GCP Standalone NEG 实现网络负载均衡
- python-3.x - 在 python 中使用 selenium 查找特定标签
- javascript - 如何在 JavaScript 中扩展 HTML 元素列表?
- terraform - 使用 for_each 填写列表参数
- mysql - mysql的'where子句'bash脚本中的未知列