public function addOrder() { if (!isset($_REQUEST['username'])) { exit(json_encode(array('code' => -1, 'info' => '用户名不可为空'))); } elseif (!isset($_REQUEST['phone'])) { exit(json_encode(array('code' => -1, 'info' => '联系电话不可为空'))); } elseif (!isset($_REQUEST['address'])) { exit(json_encode(array('code' => -1, 'info' => '地址不可为空'))); } $username = $_REQUEST['username']; $phone = $_REQUEST['phone']; $address = $_REQUEST['address']; $openid = get_openid(); // $openid = 'osALzjvsweDff9UGcO13UWf2uYbw'; $ip = $_SERVER["REMOTE_ADDR"] ? $_SERVER["REMOTE_ADDR"] : '1.1.1.1'; //获取用户ip $body = ''; $cartTotalPrice = 0; //购物车内商品总价 $umap = array('openid' => $openid, 'nickname' => $username, 'phone' => $phone, 'address' => $address, 'ctime' => date('Y-m-d H:i:s')); $order = new OrderModel(); $userid = $order->addUser($umap); //添加或者更新用户,获得id $total_fee = cookie('total_fee'); $goods = unserialize(cookie('goods')); //获取货物的id列表 $pd = new ProductModel(); $goodslist = array(); //商品详情列表 foreach ($goods as $x) { $cell = $pd->productDetail(array('id' => $x['id'])); $cell['count'] = $x['count']; $cell['total_fee'] = $cell['discount_price'] * $x['count']; $cartTotalPrice += $cell['total_fee']; //购物车内商品总价 $cell['unit_price'] = $cell['discount_price']; //单价 $body .= $cell['title']; //传到微信接口的商品名 $cell['pid'] = $x['id']; //商品的id $goodslist[] = $cell; } $orderlist = array('user_id' => $userid, 'ip' => $ip, 'userinfo' => json_encode($umap), 'order_status' => 'inorder', 'timestamp' => time()); $orderId = $order->addOrder($orderlist, $goodslist); if ($orderId) { cookie('goods', null); //清空购物车 } $notify_url = 'http://rchangchu.com/index.php?s=/addon/Shop/Shop/notify.html'; //接受回调的接口地址 $condition = array('body' => $body, 'out_trade_no' => $orderId[0], 'spbill_create_ip' => $ip, 'total_fee' => $cartTotalPrice, 'notify_url' => $notify_url); $msg = $this->wxUnityOrder($condition); // dump($msg);exit; $newSignArr = array('appId' => (string) $msg['appid'], 'nonceStr' => (string) $msg['nonce_str'], 'package' => 'prepay_id=' . $msg['prepay_id'], 'signType' => 'MD5', 'timeStamp' => (string) time()); $pay_conf = $pay_conf = D('Common/AddonConfig')->get('ShopPay'); //获取微支付的配置信息 $key = $pay_conf['api_key']; $newSign = $this->getSign($newSignArr, $key); $newSignArr['paySign'] = $newSign; $newSignArr['out_trade_nos'] = $orderId; echo json_encode($newSignArr); }