diff --git a/cmd/cart/pool-server.go b/cmd/cart/pool-server.go index 02e5ed2..08bb63d 100644 --- a/cmd/cart/pool-server.go +++ b/cmd/cart/pool-server.go @@ -335,11 +335,20 @@ func getInventoryRequests(items []*cart.CartItem) []inventory.ReserveRequest { return requests } +func getOriginalHost(r *http.Request) string { + proxyHost := r.Header.Get("X-Forwarded-Host") + if proxyHost != "" { + return proxyHost + } + return r.Host +} + func (s *PoolServer) CreateOrUpdateCheckout(r *http.Request, id cart.CartId) (*CheckoutOrder, error) { - country := getCountryFromHost(r.Host) + host := getOriginalHost(r) + country := getCountryFromHost(host) meta := &CheckoutMeta{ - Terms: fmt.Sprintf("https://%s/terms", r.Host), - Checkout: fmt.Sprintf("https://%s/checkout?order_id={checkout.order.id}", r.Host), + Terms: fmt.Sprintf("https://%s/terms", host), + Checkout: fmt.Sprintf("https://%s/checkout?order_id={checkout.order.id}", host), Confirmation: fmt.Sprintf("https://%s/confirmation/{checkout.order.id}", r.Host), Country: country, Currency: getCurrency(country),