为什么我的表单没有提交?

时间:2015-10-22 02:10:41

标签: php forms

我有两个功能 - 一个在我的主页面上生成表格,另一个处理提交的表格。这是Braintree沙盒API,他们的方法是这样:接收用户信息并提交给Braintree服务器,BT服务器返回一个支付方法nonce给我,然后我可以用它来POST并在我的沙箱控制面板中查看交易。但是,表单尚未提交,我不确定整个提交过程在什么时候失败。 注意 - 我将表单提交到表单所在的同一个PHP文件中。

我仍然需要帮助...

ask.php - 这是我调用这两个函数的页面

<div>
        <?php 
            fd_bt_form();   
            fd_process_trans();
        ?>
</div>

find-do-for-anspress.php

  $FD_Braintree_Keys = array(

    Braintree_Configuration::environment('sandbox'),
    Braintree_Configuration::merchantId('A'),
    Braintree_Configuration::publicKey('B'),
    Braintree_Configuration::privateKey('C')

    );   


function fd_bt_form()
{
    $class_bt_token = new Braintree_ClientToken();
    $clientToken = $class_bt_token->generate();

    ?>
    <script src="https://js.braintreegateway.com/v2/braintree.js"></script>
    <script>

        braintree.setup(
        '<?php echo $clientToken ?>',
        'custom', {
          id: 'checkout',
        }); 

    </script>
    <?php   

    echo 
   '<form id="checkout" action="" method="POST">
        <p>
        <label><font size="5">Amount:</font></label>
        <input type="text" size="4" name="amount" id="amount" />
        </p>
        <input data-braintree-name="number" value="378282246310005">
        <br> <br />
        <input data-braintree-name="expiration_month" value="05">
        <input data-braintree-name="expiration_year" value="17">
        <br> <br />
        <input data-braintree-name="cvv" value="531">
        <br> <br />
        <input type="submit" id="submit" value="Pay">           
    </form>';

    echo $_POST["payment_method_nonce"];
    global $bt_nonce;
    $bt_nonce = $_POST["payment_method_nonce"]; 

    return $bt_nonce;
}

function fd_process_trans() {

    $FD_Braintree_Keys;

    $nonce = $_POST["payment_method_nonce"]; 
    $amount = $_POST["amount"];

    $result = Braintree_Transaction::sale(array(
      'amount' => $amount,
      'paymentMethodNonce' => $nonce,
      'options' => array(
        'submitForSettlement' => True,
      ),
    ));

    if ($result->success) {
        echo "Success!";
    }
    else {
        echo "Transaction failed.";
    }
}

0 个答案:

没有答案