Django cartridge paypal return url 不工作

Django cartridge paypal return url not working

问题

我一直在关注 this 关于使用 paypal 实施 Django 墨盒的教程。 一切都托管在 AWS 上。至少对于沙盒帐户,一切都运行良好。除了 return url,当我付款并点击 link 到 return 到商店时,我被重定向到我的完整页面,只是我的主机名被更改了到我的亚马逊实例内部 ip 地址。

发现

创建用于向 Paypal 请求的表单时 return url 字段使用 Django 的 request.get_host() 中的值进行初始化。问题是 AWS 使用他们自己的负载平衡,所以机器的地址是 returned。我已尝试在设置中启用 USE_X_FORWARDED_HOST,但它仍然不起作用。

已找到解决方案!!!

所以找到了解决方案 here.基本上因为 VPS 本身对 AWS 中的外部世界一无所知,您需要手动修改站点主机名。使用 SQL 修改 table 中的字段或使用 Django shell.

>>> from django.contrib.sites.models import Site
>>> website = Site.objects.all()[0] #or choose the website you need
>>> one.domain = 'myveryspecialdomain.com'
>>> one.save()

之后将正确的主机名添加到请求中。