最近两天一直被这个问题困扰。
Scenario
我们有一个基于网络的产品,用户可以免费注册 14 天,之后每月订阅 60 美元。一旦用户点击“使用 Paypal 付款”按钮,页面将把用户带到 Paypal,一旦他们完成付款,它就会重定向回我们的网站。所有传递的参数看起来都很好,因为我作为商家和用户使用沙箱进行了测试。我们在“网站支付首选项”下的商家资料设置中使用“返回 URL”属性。
Research
最相似的问题是使用 PayPal 实施免费试用期 and Paypal 订阅免费试用不起作用但我的问题有点不同。而且第一个问题中指向的文件也不是有效的链接。
Issue
当用户返回到我们的网站时,我们无法检索在初始重定向到 PayPal 期间传入的自定义变量。基本上它只是一个空白重定向,没有任何查询字符串或 post 参数。但后来我尝试在前 14 天收取一定费用而不是免费,然后返回所有查询字符串。我们的流程取决于自定义参数,我们将支付宝 ID 与实际客户数据进行映射。
我们的代码看起来像,
<form name='paypal' action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='business' value='[email protected]'>
<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,相同的代码会起作用吗?
- 我是否缺少任何参数?或者我在回电时使用了错误的方法? (我正在使用返回网址)
- 使用 IPN 怎么样?我从 PayPal 网站了解到 IPN 不是实时的。由于我们的应用程序依赖于下一个注册流程的自定义数据,我想知道可以使用它吗?如果是的话,首先要研究的文档是什么?
我从贝宝论坛得到了这个问题的答复。我将其添加为答案,因为这将在将来帮助其他开发人员。也不错IPN 的起点
回应是,
“如果您使用 PDT,则不会发回任何内容,因为没有付款。只有在付款时才会发回信息。我建议使用 IPN。rm 变量和 PDT 都取决于买家返回到您的网站。如果买家没有返回,例如他们的浏览器窗口意外崩溃并关闭,或者他们只是将其关闭,则不会发送回任何信息并且信息将会丢失。这就是使用 rm 变量和 PDT 的原因更多用于创建动态收据。IPN 更多用于更新您的系统,因为它不依赖于买家返回您的网站。”
“此外,如果需要,通过 IPN,您可以将数据重新发送到您的系统,您还可以在帐户内查看您的 IPN 历史记录。IPN 通常在付款完成后立即发生。”
请参考原问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)