我们正在使用 SpiceLogic的BuyNowButton 控件和专用的IPN_Notified事件处理程序。我们的付款处理逻辑要求买方重定向回购物网站,我们有兴趣在所有验证通过后从 IPN_Notified 事件处理程序执行此操作。我们注意到,如果您尝试从内部事件处理程序运行它,那么 Server.Transfer 不会在那里工作(被抑制)。 Response.Redirect 按预期工作但引发非制动异常"线程正在中止"。我们的问题是:"以这种方式从IPN_Notified重定向买家是否有任何已知的坏处?它是否适用于真正的PayPal环境,因为它现在在我们的开发环境中工作?"
答案 0 :(得分:0)
IPN完全独立于结账体验。重定向将无法在那里工作,因为它是完全独立的服务器会话/通信。它不是浏览器中发生的任何事情。
听起来您必须使用PayPal Standard,因此如果您希望在使用PayPal结账后将用户返回到您网站上的特定页面,您可以查看在PayPal帐户中设置Auto-Return 。即使启用了该功能,也无法保证用户可以将其恢复到您的网站,因为他们可以在重定向之前关闭浏览器。
如果您想保证用户始终返回您的网站,您应该转而使用Express Checkout APIs而不是PayPal标准。它需要更多编码技能并使用Web服务,但它可以让您更自由地完成您想要的用户体验。
答案 1 :(得分:0)
在SpiceLogic PayPal Control中,IPN_Notified事件完全是一种服务类型事件,由PayPal IPN通知服务触发。此事件的消费者是PayPal的后端服务,而不是您的客户。无论您在IPN_Notified事件中执行任何操作,您的客户都不会被重定向到任何地方。
当PayPal IPN服务调用您的IPN URL时,将从SpiceLogic PayPal控件中触发IPN_Notified事件。但是,贝宝并不在乎这一点。 PayPal只需调用该IPN Url和Post交易数据,然后返回即可。因此,如果发出响应。重定向,它将对PayPal IPN服务无济于事。响应。重定向是浏览器的指令,但是PayPal IPN服务不是将重定向的浏览器。
如果您希望用户重定向或传递消息,则需要使用SpiceLogic PayPal控件中的PayPal_Returned事件。
为了更好地理解IPN和事件工作流程,请检查这些图像。