我正在尝试为一些持续一周的研讨会设置注册表。基本上,他们可以单独或整周报名参加研讨会。根据他们选择的内容,价格会发生变化。我知道如何将此信息发送给paypal,但我也想将信息提交给我自己的数据库。我如何提交PayPal并同时将信息存入我的数据库?
我还想要一个返回的变量来验证他们已付款,以便我可以在我的数据库中标记它。
我是否只有另一个页面可以将所有这些信息放入数据库(一旦提交),然后还将信息放入隐藏的表单字段,然后自动提交给paypal?
提前致谢! :)
答案 0 :(得分:3)
“付款成功后,您的用户将返回到您自己,这时您可以在数据库中记录付款。”
这正是你不应该做的事情。 取决于买家返回您的网站以更新订单状态是您可以做的最糟糕的事情。 PayPal IPN的设计特别考虑到了这个用例。 只需加入 这将确保PayPal将在付款完成后向您发送POST。即使您的买家已经关闭了他/她的浏览器。 您可以使用“自定义”字段将IPN POST链接到您网站上进行的交易。例如:
将确保您获得带有'_POST ['custom']'1122334455'的IPN POST。从那里开始,只需要进行数据库调用,将订单状态更新为“已付款”,或者将其用于将其标记为已收到的付款。
哦,不要忘记将数据发回https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate以验证IPN POST。有关详细信息,请访问https://www.paypal.com/ipn/
答案 1 :(得分:1)
所以我猜你可能正在使用网站支付标准。
如果是这样,过程如下:。
如果您对此感到满意,那么您生成一个自动发布到PayPal的内容,如下所示:
< body onLoad =“document.forms ['paypal_auto_form']。submit();”>
< p>请稍候< / p>
< form method =“post”action =“https://www.paypal.com/cgi-bin/webscr”name =“paypal_auto_form”/>
< input type =“hidden”name =“rm”value =“2”/>
< input type =“hidden”name =“cmd”value =“_ xclick”/>
< input type =“hidden”name =“currency_code”value =“AUD”/>
< input type =“hidden”name =“quantity”value =“1”/>
< input type =“hidden”name =“business”value =“PAYPAL@EMAIL.COM”/>
< input type =“hidden”name =“return”value =“http://domain.com/paypal/success”/>
< input type =“hidden”name =“cancel_return”value =“http://domain.com/paypal/cancel”/>
< input type =“hidden”name =“notify_url”value =“http://domain.com/paypal/ipn”/>
< input type =“hidden”name =“custom”value =“1234567890”/>
< input type =“hidden”name =“item_name”value =“Paypal Test Transaction”/>
< input type =“hidden”name =“item_number”value =“6941”/>
< input type =“hidden”name =“amount”value =“197”/>
< p>< input type =“submit”name =“pp_submit”value =“立即付款!” />< / P>< /形式>
< /体>
您当然可以根据需要自定义值。请查看paypal文档的附录A中的变量。您还可以使用cpp_header_image或类似的东西添加自己的日志。
您可能希望使用IPN仔细检查是否已成功付款。
如果所有这些都太难了,只需使用http://wufoo.com/并将付款模块添加到表单中即可。