未定义的索引stripeToken

时间:2016-12-26 16:03:19

标签: symfony stripe-payments

我的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;
&#13;
&#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");
    }

}`

Error Symfony

感谢您的帮助

3 个答案:

答案 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文件可以正常工作。

希望这对某人有帮助。