【发布时间】:2015-09-23 15:27:43
【问题描述】:
<?php
if ( isset($_POST['btnSubmit']) ) {
// gather card info
// gather card info
$transaction->amount ='9.99';
$transaction->card_num =$_POST['card_num'];
$transaction->exp_date =$_POST['exp_date'];
// gather card info
// gather card info
//capture info
$response = $transaction->authorizeAndCapture();
//capture info
//check if approved
//check if approved
if($response->approved){
echo "<h1>Success! The test credit card has been charged!</h1>";
echo "Transaction ID: ". $response->transaction_id;
//check if approved
//check if approved
// if approved insert into sql data base
// if approved insert into sql data base
$query = "INSERT INTO payments (card_num,exp_date) VALUES ('$card_num','$exp_dat')";
$result = mysql_query($query);
// if approved insert into sql data base
// if approved insert into sql data base
}else{
echo $response->error_message;
}
}
?>
我正在尝试运行支付集成代码,当支付被批准时,我无法将支付详细信息插入 MySQL 表中。它说:
未定义变量:exp_dat" "未定义变量:card_num。
我不知道如何定义它,因为我不能在$transaction->card_num =$_POST['card_num']; 中将$ 放在card_num 之前。
我也无法在其中插入交易 ID。
谢谢
【问题讨论】:
-
您是否认真地将信用卡号码放入数据库中? 没有。就停在那里。这完全是鲁莽的。请请使用诸如 Stripe 或 PayPal 之类的处理器或除此之外的任何东西。这个简短的代码示例充满了严重的SQL injection bugs,这意味着获取这些数据很容易,您的安全性为零。这将很难通过 PCI 认证。
-
这段代码毁了生活
-
谢谢塔德曼。我使用 authorize.net 作为我的支付网关,我正在使用他们的 sdk。我不会在数据库中插入信用卡信息。我只会将交易 ID 和客户名称插入 sql 数据库。此外,关于安全性,您认为信用卡号可以设置为 """"""""$transaction->card_num =$_POST['card_num'];"""""""""" 但不是将其插入数据库?还是像黑客一样容易获得?
标签: php mysql authorize.net