2016-11-03 192 views
1

我正在尝试添加一个PayPal“立即付款”类型的按钮,该按钮重定向用户进行付款。但是在完成之后,我的数据库和程序如何知道付款是否成功以及哪些东西已付款?PayPal按钮:支付成功后如何返回指定值?

我需要贝宝采取一个简单的id变量,并且只有在付款发生后才将其返回给指定页面。我认为如果贝宝可以简单地持有我的“item_id”变量,那就足够了。

在我的付款页面:

<?php 
$item_id = $item["id"]; 
?> 
<td> 
<!-- code from PayPal: --> 
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> 
    <input type="hidden" name="cmd" value="_s-xclick"> 
    <input type="hidden" name="hosted_button_id" value="RZ3N8DZLEYN5L"> 
    <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynow_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> 
    <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> 
</form> 
</td> 

在payment_complete页:

<?php 
if(isset($item_id)){ 
    $query = "UPDATE items SET status = 'paid' WHERE id = {$item_id}"; 
    $result = mysqli_query($db, $query); 
    redirect_to("paywalled_page.php"); 
}else{ 
    redirect_to("payments.php"); 
} 
?> 

在贝宝,该按钮创建页面上,在“高级功能”,它看起来像它让我输入一个变量返回到指定的URL,但即使我得到这个工作,我不认为硬编码“$ paid = true”就足够了。

+0

你应该看看贝宝IPN,这是不是。 https://developer.paypal.com/docs/classic/products/instant-payment-notification/ – FluxCoder

回答