我的symfony项目中有条带检出错误。以下是我默认使用结帐的视图:
<form action="" method="POST">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_C9N5xzeBHyGplmZwpsbyciS6"
data-amount="9999"
data-name="Demo Site"
data-description="Widget"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-zip-code="true"
data-currency="eur">
</script>
</form>
&#13;
我的控制器的方法:
public function paiementAction(Request $request)
{
\Stripe\Stripe::setApiKey("sk_test_5W9Z1CdBKN2G46sTa2O5KI3T");
$token = $_POST['stripeToken'];
try {
$charge = \Stripe\Charge::create(array(
"amount" => 1000, // Amount in cents
"currency" => "eur",
"source" => $token,
"description" => "Example charge"
));
return $this->redirectToRoute("chk38_platform_confirmation");
} catch (\Stripe\Error\Card $e) {
// The card has been declined
return $this->redirectToRoute("chk38_platform_commande");
}
}`
感谢您的帮助
答案 0 :(得分:0)
当您的代码在运行此代码之前未通过Stripe Checkout创建$_POST['stripeToken']
对象时,通常会出现此Token
未填充的问题。
我建议您检查Stripe帐户的API日志(https://dashboard.stripe.com/test/logs/overview)并确保在调用此创建Token
之前,您通过Stripe Checkout正确创建了Charge
个对象片段。
您可能还想阅读他们的Checkout PHP教程(https://stripe.com/docs/checkout/php),以便更好地理解所有部分如何组合在一起。如果您仍然遇到问题,您可能希望通过https://support.stripe.com/email写信给他们的支持人员,因为您可能不想公开讨论私人帐户特定的事情。
答案 1 :(得分:0)
这是我刚刚经历的一个快速发现。如果您使用自己的端点stripe example page中的默认<form action="/directory" method="POST"> ... </form>
,请确保指定目录文件夹中的index.php
文件。
我在创建令牌时遇到了一个奇怪的错误,但是我会被定向到PHP端点,而且它不是POST事件。我在index.php
中有一个/directory/
文件,我不得不编写完整的路径,而不仅仅是/directory
。 /directory/index.php
。然后它按预期工作。
答案 2 :(得分:0)
我想确认并扩展subalublub所说的内容,因为端点可以简单地是“ / charge /”,而不必在那里使用index.php。
我遇到了这个问题,仅使用“ / charge”并没有传递$ _POST值,但是当更改为“ / charge /”时,该文件夹中的index.php文件可以正常工作。
希望这对某人有帮助。