Esempio n. 1
0
 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);
 }