public function address(Request $request)
 {
     $user = $this->getUserFromCookies($request);
     $cart = $this->getCartOrNewCart($user);
     $user->email = $request->get('email');
     $user->save();
     $address = null;
     if ($request->input('type') == Address::TYPE_SHIPPING) {
         $address = $cart->shippingAddress();
     } else {
         if ($request->input('type') == Address::TYPE_BILLING) {
             $address = $cart->billingAddress();
         }
     }
     if (!$address) {
         $address = new Address();
         $cart->addresses()->save($address);
     }
     $address->fill($request->all());
     $address->save();
     if ($address->type == Address::TYPE_SHIPPING) {
         $price = $cart->getTotalPrice();
         $util = new PaylineUtility();
         $response = $util->stepOne($address, $price);
         $xml = simplexml_load_string($response->getBody()->__toString());
         Log::Info($xml->{"form-url"});
         return $this->success(array("url" => $xml->{"form-url"}->__toString()));
     }
     return $this->success();
 }
 public function thankYou(Request $request)
 {
     $cartId = $request->input('cart-id');
     $cart = Cart::find($cartId);
     $token = $request->input('token-id');
     if (!$cartId || !$cart || !$token) {
         Log::error("Thank you page accessed with no token-id or invalid cart");
         return redirect('/');
     }
     if ($cart->status != Cart::STATUS_CLOSED) {
         $util = new PaylineUtility();
         $errors = $util->stepThree($token);
         if (!is_null($errors)) {
             return redirect('/my-cart?section=billing&error=' . urlencode($errors));
         }
         $cart->status = Cart::STATUS_CLOSED;
         $cart->save();
         $mailer = new EmailUtil();
         $mailer->sendReceipt($cart);
     }
     return response()->view('thankYou', array('cartId' => $cartId, 'cartItemCount' => 0));
 }