0
我有这个按钮:PHP IPN自定义变量不工作
<button name="pay">BUY FOR 0.50$</button>
当点击它插入使用$ 0来支付报酬,买家IP和帐户细节到DB:
$connect->query("INSERT INTO payments(ip,payed,acc,showed) VALUES('$ip','$payed', '$s', '$h')");
echo '
<form action="https://www.paypal.com/cgi-bin/webscr" id="formsend" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value='.$paypal.'>
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="LOL ACC">
<input type="hidden" name="amount" value="0.50">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="custom" value="<?=$ip;?>">
<input type="hidden" name="button_subtype" value="services">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest">
<input type="submit" name="sub" class="sub" />
</form>
';
?>
<script type="text/javascript">
document.getElementById('formsend').submit(); // SUBMIT FORM
</script>
之后它会自动点击一个新的表单去付款,如果Paypal工作正常。但是,在IPN上,变量custom
未传递IP地址。
这里面的IPN验证部分:
require_once("config/config.php");
$connect = new mysqli($server['database']['host'],$server['database']['username'],$server['database']['password'],$server['database']['db']);
// PAYMENT VALIDATED & VERIFIED!
$ip = $_POST['custom'];
$check = $connect->query("SELECT * FROM payments WHERE ip='$ip' AND payed = 0");
if($check->num_rows){
$connect->query("UPDATE payments SET payed = 1 WHERE ip = '$ip'");
}
我也试图为它插入随机字符串,但似乎没有任何工作。我究竟做错了什么?
PHP单引号 - '回声“... ... =$ip;?>”'不会被解析。您可以在将表单提交给PayPal之前查看页面源代码来验证这一点。尝试改为'echo'
';' – Sean 2014-10-18 17:56:24