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

标签 .net paypal paypal-sandbox paypal-subscriptions

过去 2 天一直被这个问题困扰。

场景

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

研究

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

最佳答案

我收到了 Paypal 论坛对这个问题的回复。我将此添加为答案,因为这将在未来帮助其他开发人员。也不错starting point for IPN

响应是,

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

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

请参阅Original question

关于.net - 使用 PayPal 实现免费试用期不会返回任何自定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935914/

相关文章:

c# - 验证摘要应显示在警告消息框中?

.net - 如何在 .NET 中克隆字典?

paypal - 从 PayPal SOAP API 获取交易详细信息(希望还有自定义字段)

android - Paypal 集成登录失败错误?

Paypal SDK : No Server Response when Paying with PayPal Account

.net - [MsTeams][BotFrameworkV4][自适应卡 ] 团队中可滚动自适应卡

c# - .net 无法加载文件或程序集 MySql.Data。强名称验证失败 (0x8013141A)

如果未启用 IPN,则 Paypal notification_url

javascript - PayPal Express Checkout,提供 input_fields 时出错

paypal - 将我的 PayPal 应用程序从沙盒转移到上线