我正在使用沙盒环境,而我的IPN侦听器的代码来自https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php
沙箱交易完成后,我会在收到$_POST
时获得空$_GET
。
Array
(
[tx] => 14M290096L261713C
[st] => Pending
[amt] => 1.00
[cc] => USD
[cm] =>
[item_number] =>
)
令我感到困惑,因为使用GET
方法传递数据并不安全。我已将按钮编码语言更改为utf-8
,我的监听器已通过IPN模拟器。
在线搜索任何可能的解决方案后,我找到this blog article,并在教程中收到$_GET
数据。这让我想知道它是否也是使用GET
进行IPN收听的建议方式。
这是我的Paypal按钮代码:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="charset" value="utf-8">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="A5HMGXMJNWR7Y">
<table>
<tr><td><input type="hidden" name="on0" value="Plan">Plan</td></tr><tr><td><select name="os0">
<option value="Basic">Basic $1.00 USD</option>
<option value="Advacned">Advacned $2.00 USD</option>
<option value="Premium">Premium $3.00 USD</option>
</select> </td></tr>
</table>
<input type="hidden" name="currency_code" value="USD">
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
我错过了什么吗?谢谢你的帮助。
答案 0 :(得分:3)
我已经有一段时间了,但IPN
不 PDT
,博客文章为PDT
。
哪个/何时使用PDT
and/or IPN
了解IPN的关键项目是:
IPN是异步消息服务,这意味着 IPN与您网站上的操作不同步 ....
IPN消息服务不是实时服务。因此,您的侦听器可能在事件发生后的几秒钟内未收到IPN消息。因此,您的结帐流程不应取决于收到完成的IPN消息。如果确实如此,那么在系统负载繁重且复杂的情况下,您的结账流程会很慢,因为它必须处理重试。
HTH ..