You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
4.9 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Weixin;
  3. use App\Http\Controllers\Weixin\CommonController;
  4. use Illuminate\Http\Request;
  5. use App\Common\ReturnData;
  6. class CartController extends CommonController
  7. {
  8. public function __construct()
  9. {
  10. parent::__construct();
  11. }
  12. //商品列表
  13. public function index(Request $request)
  14. {
  15. //购物车列表
  16. $postdata = array(
  17. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  18. );
  19. $url = env('APP_API_URL')."/cart_list";
  20. $res = curl_request($url,$postdata,'GET');
  21. $data['list'] = $res['data']['list'];
  22. //猜你喜欢商品列表
  23. $postdata = array(
  24. 'limit' => 4,
  25. 'orderby'=> 1,
  26. 'offset' => 0
  27. );
  28. $url = env('APP_API_URL')."/goods_list";
  29. $res = curl_request($url,$postdata,'GET');
  30. $data['like_goods_list'] = $res['data']['list'];
  31. return view('weixin.cart.index', $data);
  32. }
  33. //购物车结算
  34. public function cartCheckout($ids)
  35. {
  36. //支付方式列表
  37. $postdata = array(
  38. 'status' => 1,
  39. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  40. );
  41. $url = env('APP_API_URL')."/payment_list";
  42. $res = curl_request($url,$postdata,'GET');
  43. $data['payment_list'] = $res['data']['list'];
  44. //用户默认收货地址
  45. $postdata = array(
  46. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  47. );
  48. $url = env('APP_API_URL')."/user_default_address";
  49. $res = curl_request($url,$postdata,'GET');
  50. $data['user_default_address'] = $res['data'];
  51. //收货地址列表
  52. $postdata = array(
  53. 'limit' => 100,
  54. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  55. );
  56. $url = env('APP_API_URL')."/user_address_list";
  57. $res = curl_request($url,$postdata,'GET');
  58. $data['address_list'] = $res['data']['list'];
  59. $data['cartids'] = $ids;
  60. //获取会员信息
  61. $postdata = array(
  62. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  63. );
  64. $url = env('APP_API_URL')."/user_info";
  65. $res = curl_request($url,$postdata,'GET');
  66. $data['user_info'] = $res['data'];
  67. //购物车结算商品列表
  68. $postdata = array(
  69. 'ids' => $ids,
  70. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  71. );
  72. $url = env('APP_API_URL')."/cart_checkout_goods_list";
  73. $res = curl_request($url,$postdata,'GET');
  74. $data['checkout_goods'] = $res['data'];
  75. //判断余额是否足够
  76. $is_balance_enough = 1; //足够
  77. if($data['checkout_goods']['total_price']>$data['user_info']['money']){$is_balance_enough = 0;}
  78. $data['is_balance_enough'] = $is_balance_enough;
  79. //获取用户优惠券列表
  80. $postdata = array(
  81. 'min_amount' => $data['checkout_goods']['total_price'],
  82. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  83. );
  84. $url = env('APP_API_URL')."/user_available_bonus_list";
  85. $res = curl_request($url,$postdata,'GET');
  86. $data['bonus_list'] = $res['data']['list'];
  87. return view('weixin.cart.cartCheckout', $data);
  88. }
  89. //生成订单
  90. public function cartDone(Request $request)
  91. {
  92. $cartids = $request->input('cartids',''); //购物车商品id,8_9
  93. $default_address_id = $request->input('default_address_id',''); //收货地址id
  94. $payid = $request->input('payid',''); //支付方式:1余额支付,2微信,3支付宝
  95. $user_bonus_id = $request->input('user_bonus_id',0); //优惠券id,0没有优惠券
  96. $shipping_costs = $request->input('shipping_costs',''); //运费
  97. $message = $request->input('message',''); //买家留言
  98. if($default_address_id==''){$this->error_jump('请选择收货地址');}
  99. if($payid==''){$this->error_jump('请选择支付方式');}
  100. if($cartids==''){$this->error_jump(ReturnData::PARAMS_ERROR);}
  101. //订单提交
  102. $postdata = array(
  103. 'cartids' => $cartids,
  104. 'default_address_id' => $default_address_id,
  105. 'payid' => $payid,
  106. 'user_bonus_id' => $user_bonus_id,
  107. 'shipping_costs' => $shipping_costs,
  108. 'message' => $message,
  109. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  110. );
  111. $url = env('APP_API_URL')."/order_add";
  112. $res = curl_request($url,$postdata,'POST');
  113. if($res['code'] == ReturnData::SUCCESS)
  114. {
  115. header("Location: ".route('weixin_order_wxpay',array('order_id'=>$res['data'])));
  116. exit;
  117. }
  118. else
  119. {
  120. $ReturnMsg = '生成订单失败';
  121. if($res['msg'])
  122. {
  123. $ReturnMsg = $res['msg'];
  124. }
  125. $this->error_jump($ReturnMsg);
  126. }
  127. }
  128. }