使用PayPal实现免费试用期不会返回任何自定义参数

时间:2011-08-04 03:36:25

标签: .net paypal paypal-sandbox paypal-subscriptions

过去2天一直坚持这个问题。

方案

我们有一个基于网络的产品,用户可以免费注册14天,之后每月订阅60美元。一旦用户点击“Pay with Paypal”按钮页面将用户带到Paypal,一旦他们完成付款,它就会重定向回我们的网站。传递的所有参数看起来都很好,因为我使用沙箱作为商家和用户进行了测试。我们在网站付款偏好设置下的商家资料设置中使用了返回网址属性。

研究

大多数类似的问题是Implementing a free trial period with PayPalPaypal 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'>

但没有运气。

问题

  1. 为什么我在14天“a1 = 0”时无法获得回调参数?但是如果我将“a1”设置为大于0,则相同的代码可以工作吗?
  2. 我错过了任何参数吗?或者我在回电时使用错误的方法? (我使用的是返回网址)
  3. 使用IPN怎么样?我从PayPal网站了解到IPN不是实时的。由于我们的应用程序依赖于下一个注册流程的自定义数据,我想知道它可以使用吗?如果是这样,那么最初要研究的文件是什么?

1 个答案:

答案 0 :(得分:0)

我从paypal论坛得到了这个问题的回复。我将此添加为答案,因为这将有助于其他开发人员。也很好starting point for IPN

回应是,

“如果您正在使用PDT,则不会发送任何内容,因为没有付款。只有在您付款时才会发回信息。我建议使用IPN .rm变量和PDT都是相关的如果买家没有返回,例如他们的浏览器窗口意外崩溃和关闭,或者他们只是关闭它,则不会发回任何信息而且它将丢失。这就是rm变量和PDT更多用于创建动态收据.IPN更多用于更新您的系统,因为它不依赖于买家返回您的网站。“

“同时使用IPN,您可以根据需要将数据重新发送到您的系统,并且您还可以在帐户中查看您的IPN历史记录.IPN通常在付款完成后立即发生。”

请参阅Original question