PayPal付款回拨

时间:2010-10-27 00:51:15

标签: php callback paypal

我已经搜索了超过4个小时的关于如何在付款完成后使用PayPal进行回调。

问题是,我有一个网站销售LAN Party的门票,唯一的支付方式是使用PayPal。
这是我的PayPal购买按钮代码:

<form target="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="add" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="_MY_PAYPAL_EMAIL_">
<input type="hidden" name="item_number" value="<?php echo mktime(); ?>">
<input type="hidden" name="cn" value="<?php echo $_SESSION['userid']; ?>">
<input type="hidden" name="return" value="http://80.202.213.240/apps/tickets/buy/success/" />
<input type="hidden" name="cancel_return" value="http://80.202.213.240/apps/tickets/buy/cancelled/" />
<input type="hidden" name="notify_url" value="http://80.202.213.240/apps/tickets/buy/ipn/" />
<input type="hidden" name="lc" value="NO">
<input type="hidden" name="item_name" value="BitHack - Standard Ticket">
<input type="hidden" name="amount" value="100.00">
<input type="hidden" name="currency_code" value="NOK">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="button_subtype" value="Tickets">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_LG.gif:NonHostedGuest">
<input type="submit" value="Add to Cart" class="ticketShowButton submit" title="Payment via PayPal">

然后应该将信息插入到数据库中,我已完成该部分。 只需要回调系统就可以了。 有谁知道任何好的回调脚本示例?

顺便说一句,是否可以使用自定义输入?

2 个答案:

答案 0 :(得分:10)

return和notify url变量中指定的回调函数是程序员的责任。为什么?因为每个网站都有自己的订单表结构。试试这个作为指南:

在您的Paypal资料中设置您的偏好,在订单后自动重定向。您还需要设置默认的返回网址。如果您忘记在订单上指定退货网址或发送到Paypal的查询字符串,则会使用此功能。

接下来,将您的rm字段/变量设置为“2”(这将告诉Paypal API在订单后自动重定向到您的返回URL并以POST格式传递订单信息)

您可以通过执行var_dump($ _ POST)或print_r($ _ POST)来查看Paypal的响应。

响应中的一个重要变量是$ _POST ['payment_status'],它会告诉您订单的结果。成功的交易是“已完成”。需要Paypal或商家方验证的交易是“待定”。

最后,请不要忘记在Paypal字段/请求中指定“发票”,以便更新订单状态。类似的东西:

$status = $_POST['payment_status'];
$invoice = $_POST['invoice'];
mysql_query("UPDATE Orders SET status='$status' WHERE order_id='$invoice'");

我知道这是糟糕的编码,但至少你会以最简单的形式得到一般的想法。

同样,不要依赖其他代码。网络中的代码仅供参考,而不是上帝的手工。只有你有能力创造自己的杰作:D

我希望有所帮助。如果你喜欢,请投票。如果没有,请忽略。

答案 1 :(得分:1)

商业但成本低廉的解决方案是LinkLokIPN脚本:

http://www.vibralogix.com/linklokipn/

除了作为PHP版本的满意客户之外没有任何连接。有时,购买(并且可能适应)工作解决方案比重新发明轮子更容易。