我们正在尝试使用 Paypal 的订阅功能在我们的网站上实现订阅。我们想要的是让 Paypal 执行重复过程,即使第一次付款失败,直到我们或订阅用户手动取消订阅配置文件。
如果我们将 MAXFAILEDPAYMENTS 变量设置为零,这意味着即使付款失败,Paypal 仍将继续重复流程。 但是,要指定变量,我们必须使用 NVP/SOAP API。
我们可以使用付款表单中指定的基本 HTML 代码实现相同的目的吗?
<input type="hidden" name="a3" value="1">
<input type="hidden" name="t3" value="M"> <!-- billing cycle unit=month -->
<input type="hidden" name="p3" value="1"> <!-- billing cycle length -->
<input type="hidden" name="src" value="1"> <!-- recurring=yes -->
<input type="hidden" name="sra" value="0"> <!-- reattempt=no -->
{{--End of recurring variables--}}
最佳答案
很遗憾,没有,更糟糕的是您提到的 NVP/SOAP API 参数被忽略了。
无论您将那个参数设置为 PayPal 遵循相同的例程,就是这个......
如果预定付款失败,它将在 5 天内重试。如果有 3 次重新尝试均失败,则配置文件将“由于最大失败付款而暂停”。
每次失败的尝试以及配置文件的暂停都会触发 IPN,因此建议您设置 IPN 解决方案并在您选择该路线时运行。
同样奇怪的是,有时一个配置文件会在 3 次重新尝试失败后暂停,但如果您使用为订阅提供的相同账单详细信息“收集未结余额”,它将成功处理,然后您可以重新激活订阅配置文件。
老实说,如果让我用自己的系统重做一遍,我可能不会使用 PayPal 的定期付款 API。相反,我会使用计费协议(protocol)和引用交易,这样我就可以建立自己的经常性系统并在需要时处理任何金额的付款。如果您刚刚起步,我会为您推荐相同的内容。
关于Express Checkout 或 Basic HTML 代码中的 Paypal 订阅 MAXFAILEDPAYMENTS 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39263044/