2010-10-27 185 views
7

我已经搜索了超过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"> 

的信息应该然后插入到数据库中,我已经完成的那部分。 只需要回调系统工作。 任何人都知道任何好回调脚本的例子?

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

回答

10

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

在您的贝宝个人资料设置您的首选项后订单自动重定向。您还需要设置默认返回网址。如果您忘记在您的订单表单或发送到PayPal的查询字符串中指定返回网址,则会使用此功能。

下一步,设置您的RM字段/变量设置为“2”(这将告诉贝宝API的顺序后autoredirect来回报您的网址,并通过在POST格式订单的相关信息)

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

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

最后,别忘了在PayPal栏位/要求中指定'发票',以便更新订单状态。像这样:

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

我知道这是不好的代码,但至少你得到它的最简单形式的一般想法。

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

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

+0

是'$ _POST'安全吗?当没有付款的人发生什么事情时,发送'payment_status = 1'到回叫网址? – Cooper 2016-01-14 20:09:48

1

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

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

无不是的PHP版本,一个满意的客户等连接。有时购买(或者改编)工作解决方案比重新发明车更容易。

+0

谢谢,请看看。 – NoobiCake 2010-10-27 01:17:21