【问题标题】:Jquery & ajax autorize.net submitJquery 和 ajax autorize.net 提交
【发布时间】:2012-01-28 05:45:56
【问题描述】:

嘿,我想弄清楚为什么我不断收到错误

提交表单时出错。请再试一次。解析器错误

尝试将我的表单提交到 authorize.net 时

我的 authsubmit php 代码是这样的:

  <?PHP
require_once 'anet_php_sdk/AuthorizeNet.php'; // Make sure this path is correct.
$transaction = new AuthorizeNetAIM('xxxxxxx', 'xxxxxxx');

$post_url = "https://secure.authorize.net/gateway/transact.dll";

$transaction->amount        = $_POST['amount'];
$transaction->card_num      = $_POST['card_num'];
$transaction->exp_date      = $_POST['exp_date'];
$transaction->first_name    = $_POST['first_name'];
$transaction->last_name     = $_POST['last_name'];
$transaction->card_code     = $_POST['cvv'];
$transaction->address       = $_POST['address'];
$transaction->city          = $_POST['city'];
$transaction->state         = $_POST['state'];
$transaction->zip           = $_POST['zip'];
$transaction->invoice_num   = $_POST['invoice_num'];
//$transaction->currency_code   = $_POST['currency'];

$response = $transaction->authorizeAndCapture();

if ($response->approved) 
{
    echo "<h1>Success! The test credit card has been charged!</h1>";  
    echo "Transaction ID: " . $response->transaction_id;
} else 
{  
    echo "here is the error: " . $response->error_message;
}
 ?>

还有我的 authsubmit php 代码:

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 <script type="text/javascript">
$(document).ready(function(){

    $("#frm1").submit(function(){

        $.ajax({
            type: "POST",
            url: "authsubmit.php",
            data: $("#frm1").serialize(),
            dataType: "json",

            success: function(msg){
                alert("DONE! " + msg);

            },
            error: function(obj, status, e){
                alert("There was an error submitting the form. Please try again. " + status);
            }
        });

        return false;

    });

});
 </script>

 <html>
 <head>
 </head>
 <body>

 <form id="frm1" method="post">
 <fieldset>
    <div>
        <label>Invoice Amount</label>
        <input type="text" value="3.33" name="amount" size="15" class="text">
    </div>
    <div>
        <label>Invoice Number</label>
        <input type="text" value="23111" name="invoice_num" size="15" class="text">
    </div>
    <div>
        <label>Credit Card Number</label>
        <input type="text" value="4500000000009000" name="card_num" size="15" class="text">
    </div>
    <div>
        <label>Exp.</label>
        <input type="text" value="1212" name="exp_date" size="4" class="text">
    </div>
    <div>
        <label>CCV</label>
        <input type="text" value="782" name="cvv" size="4" class="text">
    </div>
    </fieldset>
    <fieldset>
    <div>
        <label>First Name</label>
        <input type="text" value="bob" name="first_name" size="15" class="text">
    </div>
    <div>
        <label>Last Name</label>
        <input type="text" value="barker" name="last_name" size="14" class="text">
    </div>
    </fieldset>
    <fieldset>
    <div>
        <label>Address</label>
        <input type="text" value="123 street" name="address" size="26" class="text">
    </div>
    <div>
        <label>City</label>
        <input type="text" value="hyyon" name="city" size="15" class="text">
    </div>
    </fieldset>
    <fieldset>
    <div>
        <label>State</label>
        <input type="text" value="ca" name="state" size="4" class="text">
    </div>
    <div>
       <label>Zip Code</label>
       <input type="text" value="45098" name="zip" size="9" class="text">
    </div>
    <div>
        <label>Country</label>
        <input type="text" value="US" name="currency" size="22" class="text">
    </div>
    </fieldset>
    <input type="submit" value="Submit form" />
    <div class="form_result"> </div>
    </form>
   </body>
   </html>

我在这里错过了什么?

大卫

【问题讨论】:

  • 您的表单在哪里结束?并提交标签??
  • 对不起,它没有包含在帖子中,但它在那里。更新了 OP。谢谢
  • 试试这个:成功:function(data){alert("done"+data);},failure:function(){alert("error");}
  • @RajatSinghal:现在似乎什么也没做。只是继续旋转然后停止而不弹出任何东西。
  • 如果error : function (obj, status, e) { console.log(obj); console.log(status); console.log(e); } ,控制台会说什么?

标签: php ajax form-submit authorize.net


【解决方案1】:

您目前正在使用实时服务器进行测试。这意味着除非您将帐户设置为使用测试模式,否则所有交易都是实时的。如果您使用的是测试信用卡或任何其他无效的信用卡号,则会导致您收到错误消息。

您需要做两件事来有效地测试 Authorize.Net 集成:

  1. 注册developer account。这样您就可以在不产生任何费用的情况下测试您的代码。
  2. 使用开发者服务器进行测试。

所以:

$post_url = "https://secure.authorize.net/gateway/transact.dll";

变成:

$post_url = "https://test.authorize.net/gateway/transact.dll";

【讨论】:

    猜你喜欢
    • 2012-02-20
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2011-04-23
    • 2012-04-05
    相关资源
    最近更新 更多