在过去的两天里一直被这个问题困扰。
设想
我们有一个基于网络的产品,用户可以免费注册 14 天,然后每月订阅 60.00 美元。一旦用户点击“使用 Paypal 支付”按钮,页面将把用户带到 Paypal,一旦他们完成付款,它就会重定向回我们的网站。传递的所有参数看起来都很好,因为我使用沙盒作为商家和用户进行了测试。我们在网站支付首选项下的商家资料设置中使用了返回 URL 属性。
研究
大多数类似的问题是使用 PayPal 实施免费试用期,而Paypal 订阅免费试用不起作用,但我的问题有点不同。第一个问题中指出的文件也不是有效链接。
问题
当用户返回我们的网站时,我们无法检索我们在初始重定向到 PayPal 期间传入的自定义变量。基本上它只是一个没有任何查询字符串或 post 参数的空白重定向。但后来我尝试在前 14 天收取一定金额而不是免费,然后返回所有查询字符串。我们的流程取决于我们将支付宝 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'>
但没有运气。
问题
- 为什么我在“a1 = 0”14天时无法获取回调参数?但是如果我将“a1”设置为大于 0,相同的代码是否有效?
- 我是否缺少任何参数?或者我在回电时使用了错误的方法?(我正在使用返回 URL)
- 使用 IPN 怎么样?我从 PayPal 网站了解到 IPN 不是实时的。由于我们的应用程序依赖于下一个注册流程的自定义数据,我想知道可以使用它吗?如果是这样,最初要研究的文档是什么?