通常情况下,我会将其发布在PayPal讨论区;然而,他们的网站似乎已经把我送到堆栈溢出......
所以,我一直在努力完成PayPal IPN响应流程。在我尝试实时测试之前,一切都很顺利。我已经能够在本地进行设置并相应地进行测试。我将它发布到一个面向公众的测试环境,IPN Sandbox运行得很完美。现在,我正在尝试使用我的实际信用卡进行全面测试,而且我似乎从未收到过IPN。
我已经进入并验证IPN目前已开启。我正在通过按钮的隐藏notify_url功能设置自定义IPN回调URL。我能够完成购买过程,并且可以看到新的IPN已添加到IPN历史列表中。 IPN具有我期望的适当回调URL;然而,它似乎从未收到过IPN消息。
为了验证,我做了几件事。作为关于我的环境的快速前言,我正在使用可通过API网关访问的AWS Lambda实例化Kestrel服务器。我已经在API网关层添加了日志记录,并且可以验证是否没有收到任何IPN消息。此时,我认为我的IPN配置有问题。我将IPN回调和IPN历史记录中的有效负载复制到Postman中。 Postman能够毫无问题地点击我的API并且所有内容都成功处理;我能够在API网关层和Lambda应用层看到此活动的所有日志。
我想到的另一个可能的问题是CORS;但是,我过去在这个项目中遇到过CORS的多个问题,并且我的选项在飞行前设置为只允许所有远程主机。
有关此处发生的事情的任何建议吗?一切似乎都配置正确;但是,我没有看到任何来自PayPal的帖子。
编辑1:经过一些实验,看来如果我将notify_url设置为使用HTTP而不是HTTPS,则回调最终会通过。在我的网站上启用了HTTPS,并且我有一个有效的证书,该证书应该通过亚马逊作为CA授权。为什么切换到HTTP会使其工作;我完全不知道。如果可能,我更喜欢HTTPS;任何允许我解决这个问题的建议都很棒。
编辑2:我正在阅读关于他们的费用结构的PayPal文档,并开始认为我的0.01美元的测试购买可能会被费用所吞噬。我同样期待;但是,我意识到0.01美元的测试购买在技术上并不包括与购买相关的全部成本。我决定尝试将成本更新为1.00美元,因为未满足的费用余额可能导致问题。 (~3%+ $ 0.30)一旦我将价格更新为1.00美元,我的HTTPS调用似乎就开始工作了。我想知道在IPN上使用HTTPS是否需要约0.33美元的底价;除非涵盖整个费用结构,否则呼叫将无法正确完成?答案 0 :(得分:0)