条带未定义索引(PHP)密钥

时间:2015-08-22 20:05:49

标签: php payment stripe-payments

我正在尝试设置Stripe结帐付款系统,但我遇到了PHP问题。当我运行控制台日志时,一切都会执行,除了实际将费用发布到我的Stripe仪表板之外,这是至关重要的。下面我强调了一些可能导致我的谎言错误的领域。如果您需要更多信息,请告诉我,因为我很乐意提供帮助。

注意:“//充值卡下面的行是我认为问题的地方,但我可能会弄错。

`

    require_once('Stripe.php'); 

    $stripe = array(
        **'secret_key' => 'secret key',**
        'publishable_key' => 'publishable key'
        );

        **\Stripe\Stripe::setApiKey($stripe['secret key']);**


    if($_POST) {
        $error = NULL;
        try{
            if (isset($_POST['stripeToken'])) 
                throw new Exception("The Stripe Token was not generated correctly");



        //charge the card
        **$charge = \Stripe\Charge::create(array(**
            'card' => $_POST['stripeToken'],
            'amount' => 2000,
            'currency' => 'usd'
            ));

            }

            catch(Exception $e) {
                $error = $e->getMessage(); 
            }

        $quotes= array(
            "A",
             "B",
             "C" 
            );

            echo "<h1>Here is your quote!</h1>";
            echo "<h2>" . $quotes[array_rand($quotes)]. "</h2>";


    } else{ 
        //show the welcome screen
        ?>
    <form action="index.php" method="POST">
      <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="publishable key"
        data-amount="2000"
        data-name="BB Traders"
        data-description="Wiping Rags Order"
        data-image="/128x128.png">
      </script>
    </form>

`

2 个答案:

答案 0 :(得分:1)

由于访问了不存在的数组元素,您收到Undefined index通知。只需检查您对阵列的所有访问权限 - $_POST['stripeToken']$stripe['secret key']不存在。

此外,这是一个非常常见的问题,例如here您可以获得有关如何克服此通知的真实解释。

答案 1 :(得分:1)

我真的不知道php但不会

isset($_POST['stripeToken'])
如果令牌IS正确生成,

返回true?看起来你可能会因为你想要的相反情况而抛出异常。

尝试暂时或使用

删除该检查
isset($_POST['stripeToken'])==FALSE

或者最好的PHP方式是。