在沙盒中玩游戏并通过 SetExpressCheckout 设置定期付款时(如文档中的建议),我可以成功创建计费协议并收到令牌。现在,在用户点击 https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=[token在这里]这样的链接后,同意所有条款和条件等,他会自动重定向到SetExpressCheckout方法中提供的returnUrl,此外,此令牌值将附加到returnUrl。
目前为止,一切都好。现在的问题是 - 我可以依靠始终调用 returnUrl 的事实吗?例如,当用户的浏览器由于某种原因拒绝或无法重定向到指定的 url 时会发生什么?
据我从PayPal文档中了解到,您不能使用 IPN 来通知您由用户发起的新订阅,尽管显然 IPN 将是一个理想的选择。我试图在撰写 SetExpressCheckout 请求时提供通知URL,但它没有被命中。相同的IPN适用于我用于一次性购买的"支付"方法。
我认为你错过了一步。 当买家在PayPal网站上时,不会创建定期付款配置文件 - 您必须等待买家返回您的退货网址,然后调用CreateRecurringPaymentsProfile实际创建定期付款。 如果您从不调用CreateRecurringPaymentsProfile,则不会创建定期付款 - 这可能就是您没有获得任何IPN的原因。