过去2天一直坚持这个问题。
我们有一个基于网络的产品,用户可以免费注册14天,之后每月订阅60美元。一旦用户点击“Pay with Paypal”按钮页面将用户带到Paypal,一旦他们完成付款,它就会重定向回我们的网站。传递的所有参数看起来都很好,因为我使用沙箱作为商家和用户进行了测试。我们在网站付款偏好设置下的商家资料设置中使用了返回网址属性。
大多数类似的问题是Implementing a free trial period with PayPal和Paypal subscription free trial isn't working,但我的问题有点不同。第一个问题中指出的文件也不是有效的链接。
当用户返回我们的网站时,我们无法检索在初始重定向到PayPal期间传入的自定义变量。基本上它只是一个空白的重定向,没有任何查询字符串或post参数。但后来我试图收取前14天而不是免费的金额,然后返回所有查询字符串。我们的流程取决于我们将pay pal id与实际客户数据进行映射的自定义参数。
我们的代码看起来像,
<form name='paypal' action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='business' value='xxx@xxxxx.com'>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='cmd' value='_xclick-subscriptions'>
<input type='hidden' name='a3' value='60.00'>
<input type='hidden' name='item_name' value='Product A'>"
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='custom' value='parameter1|parameter2'>
<input type='hidden' name='item_number' value='PlanCode'>
<input type='hidden' name='p3' value='1'>"
<input type='hidden' name='t3' value='M'>"
<input type='hidden' name='a1' value='0'>"
<input type='hidden' name='p1' value='14'>"
<input type='hidden' name='t1' value='D'>
</form>
我尝试添加,
<input type='hidden' name='rm' value='1'>
但没有运气。
答案 0 :(得分:0)
我从paypal论坛得到了这个问题的回复。我将此添加为答案,因为这将有助于其他开发人员。也很好starting point for IPN
回应是,
“如果您正在使用PDT,则不会发送任何内容,因为没有付款。只有在您付款时才会发回信息。我建议使用IPN .rm变量和PDT都是相关的如果买家没有返回,例如他们的浏览器窗口意外崩溃和关闭,或者他们只是关闭它,则不会发回任何信息而且它将丢失。这就是rm变量和PDT更多用于创建动态收据.IPN更多用于更新您的系统,因为它不依赖于买家返回您的网站。“
“同时使用IPN,您可以根据需要将数据重新发送到您的系统,并且您还可以在帐户中查看您的IPN历史记录.IPN通常在付款完成后立即发生。”