cur_page = 'apicheckout'; $this->member_id = 1; $this->appid = C('weprogram_appid'); $this->appsecret = C('weprogram_appscret'); $this->pay_key = C('weprogram_pay_key'); $this->mch_id = C('weprogram_mch_id'); } /** 获取团详情 **/ public function group_orders() { $token = I('get.token'); $order_id = I('get.id'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $order_goods_sql = "select og.name as goods_name,g.goods_id,g.pin_count,g.pinprice,g.image,g.fan_image,g.store_id,og.pin_id from ".C('DB_PREFIX').'order_goods as og ,'.C('DB_PREFIX')."goods as g where og.order_id = {$order_id} and g.goods_id = og.goods_id limit 1"; $order_goods_arr = M()->query($order_goods_sql); $order_goods = $order_goods_arr[0]; if(!empty($order_goods['fan_image'])){ $order_goods['image']=str_replace('http','https',C('SITE_URL')).resize($order_goods['fan_image'], C('common_image_thumb_width'), C('common_image_thumb_height')); }else { $order_goods['image']=str_replace('http','https',C('SITE_URL')).resize($order_goods['image'], C('common_image_thumb_width'), C('common_image_thumb_height')); } $water_image = ''; $goods_description = M('goods_description')->where( array('goods_id' => $order_goods['goods_id']) )->find(); if(!empty($goods_description['water_image']) ) { $water_image = $goods_description['water_image']; } //获取拼团信息 $pin_info = M('pin')->where( array('pin_id' => $order_goods['pin_id']) )->find(); if($pin_info['state'] == 0 && $pin_info['end_time'] < time()){ $pin_info['state'] = 2; } $tuanzhang_info = M('member')->where( array('member_id' => $pin_info['user_id']) )->find(); $pin_order_sql = "select po.add_time,m.member_id,m.name,m.telephone,m.avatar from ".C('DB_PREFIX')."pin_order as po,".C('DB_PREFIX')."order as o, ".C('DB_PREFIX')."order_goods as og,".C('DB_PREFIX')."member as m where po.pin_id = ".$order_goods['pin_id']." and o.order_status_id in(1,2,4,6,7,8,9,10,11) and og.order_id = po.order_id and o.order_id = po.order_id and o.member_id= m.member_id order by po.add_time asc "; $pin_order_arr = M()->query($pin_order_sql); $users = array(); $member_arr = array(); foreach($pin_order_arr as $pin_order) { //{$pin_order.avatar} join_time = add_time $tmp = array(); $tmp['name'] = $pin_order['name']; $tmp['avatar'] = $pin_order['avatar']; $tmp['join_time'] = $pin_order['add_time']; $users[] = $tmp; $member_arr[] = $pin_order['member_id']; } $is_me = in_array($member_id,$member_arr); $seller_info = M('seller')->field('s_id,s_true_name,s_logo')->where(array('s_id' => $order_goods['store_id']))->find(); $seller_model = D('Home/Seller'); $seller_info['seller_count'] = $seller_model->getStoreSellerCount($order_goods['store_id']); $order_info = ''; if(!empty($water_image)) { $this->share_image = str_replace('http','https',C('SITE_URL')).'/Uploads/image/'.$water_image; } else{ $this->share_image = str_replace('http','https',C('SITE_URL')).$order_goods['image']; } $pinjie = M('blog')->where( array('type' => 'pinjie') )->order('blog_id desc')->find(); $result = array(); $result['users'] = $users; $result['status'] = $pin_info['state']; $result['order'] = $order_goods; $result['require_num'] = $order_goods['pin_count']; $result['people'] = count($pin_order_arr); $result['expire_time'] = $pin_info['end_time']; $result['take_in'] = $is_me ? 1:0; $result['pin_id'] = $pin_info['pin_id']; //expire_time {$pin_info.end_time} is_me //require_num people //$del_count = $order_goods['pin_count'] - count($pin_order_arr); echo json_encode( array('code'=>1, 'group_order' => $result) ); die(); } /** 微信充值 **/ public function wxcharge() { $token = I('get.token'); $id = I('get.money'); $level_info = M('member_level')->where( array('id' => $id) )->find(); $money = $level_info['level_money']; $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; if( empty($member_id) ) { echo json_encode( array('code' =>1,'msg' =>'未登录') ); die(); } $member_info = M('member')->field('we_openid')->where( array('member_id' => $member_id) )->find(); $member_charge_flow_data = array(); $member_charge_flow_data['member_id'] = $member_id; $member_charge_flow_data['money'] = $money; $member_charge_flow_data['state'] = 0; $member_charge_flow_data['charge_time'] = 0; $member_charge_flow_data['add_time'] = time(); $order_id = M('member_charge_flow')->add($member_charge_flow_data); $fee = $money; $appid = $this->appid; $body = '会员升级'; $mch_id = $this->mch_id; $nonce_str = $this->nonce_str(); $notify_url = C('SITE_URL').'notify.php'; $openid = $member_info['we_openid']; $out_trade_no = $order_id.'-'.time().'-charge-'.$id; $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $trade_type = 'JSAPI'; $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = $this->sign($post); $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = $this->http_request($url,$post_xml); $array = $this->xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp=''; $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; for($i =0; $i <3; $i++) { $tmp_data = array(); $tmp_data['member_id'] = $member_id; $tmp_data['state'] = 0; $tmp_data['formid'] = $array['PREPAY_ID']; $tmp_data['addtime'] = time(); M('member_formid')->add( $tmp_data ); } //M('order')->where( array('order_id' => $order_id ) )->save( array('perpay_id' => $array['PREPAY_ID']) ); $data['code'] = 0; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = $this->sign($tmp); $data['out_trade_no'] = $out_trade_no; $data['redirect_url'] = '../dan/me'; }else{ $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } echo json_encode($data); die(); } /** 获取会员团列表 **/ public function groups() { /** "offset" : offset, "size" : size, "token" : token **/ $offset = I('get.offset'); $size = I('get.size'); $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); //$member_info = M('member')->field('name,avatar')->where( array('member_id' => $weprogram_token['member_id']) )->find(); $member_id = $weprogram_token['member_id']; //$type = I('get.type','0'); //$this->type = $type; $pre_page = $size; $where = ' '; /** if($type == 1) { $where .= ' and p.state = 0 and p.end_time >'.time(); } else if($type == 2){ $where .= ' and p.state = 1 '; } else if($type == 3){ $where .= ' and (p.state = 2 or (p.state =0 and p.end_time <'.time().')) '; } **/ $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $sql = "select g.name as goods_name,g.image,g.fan_image,p.need_count,p.state,p.is_lottery,p.lottery_state,p.end_time,o.order_id,og.price,o.is_pin,o.pin_id,o.order_status_id from ".C('DB_PREFIX')."order as o, ".C('DB_PREFIX')."order_goods as og, ".C('DB_PREFIX')."pin as p,".C('DB_PREFIX')."goods as g where o.is_pin = 1 and o.order_id = og.order_id and og.goods_id = g.goods_id and o.pin_id = p.pin_id and o.member_id = ".$member_id." {$where} order by o.date_added desc limit {$offset},{$pre_page}"; $list = M()->query($sql); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); //group_order_id goods_name image_url foreach($list as $key => $val) { $val['price'] = round($val['price'],2); if(!empty($val['fan_image'])){ $val['image_url'] = str_replace('http','https',C('SITE_URL')).resize($val['fan_image'], C('common_image_thumb_width'), C('common_image_thumb_height')); }else { $val['image_url'] = str_replace('http','https',C('SITE_URL')).resize($val['image'], C('common_image_thumb_width'), C('common_image_thumb_height')); } $val['hash_order_id'] = $hashids->encode($val['order_id']); if($val['state'] == 0 && $val['end_time'] < time()) { $val['state'] = 2; } //order_status_id if($val['state'] == 0){ $val['state_name'] = '拼团中'; }else if($val['state'] == 1){ $val['state_name'] = '拼团成功'; }else if($val['state'] == 2){ $val['state_name'] = '拼团失败'; } if($val['order_status_id'] == 3) { $val['state_name'] .= ',未付款'; } $list[$key] = $val; } echo json_encode( array('code' =>1, 'group_orders' => $list) ); die(); } /** 会员的支付地址 **/ public function addresses() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $member_id = 1; $address_list = M('address')->where( array('member_id' => $member_id) )->select(); foreach($address_list as $key => $val) { $province_info = M('area')->field('area_name')->where( array('area_id' => $val['province_id']) )->find(); $val['province'] = $province_info['area_name']; $city_info = M('area')->field('area_name')->where( array('area_id' => $val['city_id']) )->find(); $val['city'] = $city_info['area_name']; $country_info = M('area')->field('area_name')->where( array('area_id' => $val['country_id']) )->find(); $val['country'] = $country_info['area_name']; if($val['is_default'] == 1) { // $val['status'] = 'DEFAULT'; }else { //$val['status'] = ''; } $address_list[$key] = $val; } $result = array('code' => 0,'address_list' => $address_list); echo json_encode($result); die(); } public function get_area_version() { $result = array('code' =>1, 'data_version' => array('version' => '1')); echo json_encode($result); die(); } public function get_area() { $region_list = M('area')->field('area_id,area_name')->where(array('area_parent_id' =>0))->order('area_id asc')->select(); $version = '1'; $region_arr = array(); foreach($region_list as $val) { $tmp_arr = array(); $tmp_arr['region_id'] = $val['area_id']; $tmp_arr['region_name'] = $val['area_name']; $tmp_arr['parent_id'] = $val['area_parent_id']; $region_arr[] = $tmp_arr; } $area_list = M('area')->field('area_id,area_name,area_parent_id')->where(array('area_deep' =>2))->order('area_id asc')->select(); $area_arr = array(); foreach($area_list as $val) { $tmp_arr = array(); $tmp_arr['region_id'] = $val['area_id']; $tmp_arr['region_name'] = $val['area_name']; $tmp_arr['parent_id'] = $val['area_parent_id']; $area_arr[] = $tmp_arr; } $stree_list = M('area')->field('area_id,area_name,area_parent_id')->where(array('area_deep' =>3))->order('area_id asc')->select(); $stree_arr = array(); foreach($stree_list as $val) { $tmp_arr = array(); $tmp_arr['region_id'] = $val['area_id']; $tmp_arr['region_name'] = $val['area_name']; $tmp_arr['parent_id'] = $val['area_parent_id']; $stree_arr[] = $tmp_arr; } $result = array('code' =>1, 'regions' => array(0=>$region_arr,1=>$area_arr,2=>$stree_arr) ); echo json_encode($result); die(); } public function address_set() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $address_id = I('get.address_id'); if($address_id == 0) { die('xxx'); } $data = array(); $data['is_default'] = 0; M('address')->where( array('member_id' => $member_id) )->save( $data ); $data['is_default'] = 1; M('address')->where( array('member_id' => $member_id ,'address_id' => $address_id) )->save( $data ); echo json_encode( array('code' => 0) ); die(); } public function address_info() { $address_id = I('get.address_id'); $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $address_info = M('address')->where( array('address_id' => $address_id ,'member_id' => $member_id) )->find(); //$address_info['district_id'] = $address_info['country_id']; $result = array('code' =>0, 'address' => $address_info); echo json_encode($result); die(); } public function add_weixin_selftaddress() { $token = I('get.token'); $data_json = file_get_contents('php://input'); $data = json_decode($data_json, true); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; //{province_name: province_name, city_name: city_name, area_name: area_name, addr_tel: addr_tel, addr_detail: addr_detail} $cityName = $data['city_name']; $countyName = $data['area_name']; $detailInfo = $data['addr_detail']; $provinceName = $data['province_name']; $telNumber = $data['addr_tel']; $userName = $data['addr_name']; $sub_address_id = isset($data['sub_address_id']) ? $data['sub_address_id'] : 0 ; $province_info = M('area')->where( " area_name Like '%{$provinceName}%' " )->find(); //$province_id = 35; if( !empty($province_info)) { $province_id = $province_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $provinceName; $area_data['area_parent_id'] = 0; $area_data['area_sort'] = 0; $area_data['area_deep'] = 1; $province_id = M('area')->add($area_data); } $city_info = M('area')->where( " area_name Like '%{$cityName}%' " )->find(); //$city_id = 35; if( !empty($city_info)) { $city_id = $city_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $cityName; $area_data['area_parent_id'] = $province_id; $area_data['area_sort'] = 0; $area_data['area_deep'] = 2; $city_id = M('area')->add($area_data); } $country_info = M('area')->where( " area_name Like '%{$countyName}%' " )->find(); //$country_id = 35; if( !empty($country_info)) { $country_id = $country_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $cityName; $area_data['area_parent_id'] = $city_id; $area_data['area_sort'] = 0; $area_data['area_deep'] = 3; $country_id = M('area')->add($area_data); } $address_data = array(); $address_data['member_id'] = $member_id; $address_data['name'] = $userName; $address_data['telephone'] = $telNumber; $address_data['address'] = $detailInfo; $address_data['address_name'] = empty($data['address_name']) ? 'HOME' : $data['address_name']; $address_data['is_default'] = 0; $address_data['city_id'] = $city_id; $address_data['country_id'] = $country_id; $address_data['province_id'] = $province_id; if($sub_address_id > 0 ) { unset($address_data['is_default']); M('address')->where( array('address_id' => $sub_address_id, 'member_id' => $member_id) )->save($address_data); $res = $sub_address_id; }else{ $res = M('address')->add($address_data); } echo json_encode( array('address_id' => $res, 'code' => 0) ); die(); } public function add_weixinaddress() { $token = I('get.token'); $data_json = file_get_contents('php://input'); $data = json_decode($data_json, true); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $cityName = $data['cityName']; $countyName = $data['countyName']; $detailInfo = $data['detailInfo']; $provinceName = $data['provinceName']; $telNumber = $data['telNumber']; $userName = $data['userName']; $province_info = M('area')->where( " area_name Like '%{$provinceName}%' " )->find(); if( !empty($province_info)) { $province_id = $province_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $provinceName; $area_data['area_parent_id'] = 0; $area_data['area_sort'] = 0; $area_data['area_deep'] = 1; $province_id = M('area')->add($area_data); } $city_info = M('area')->where( " area_name Like '%{$cityName}%' " )->find(); if( !empty($city_info)) { $city_id = $city_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $cityName; $area_data['area_parent_id'] = $province_id; $area_data['area_sort'] = 0; $area_data['area_deep'] = 2; $city_id = M('area')->add($area_data); } $country_info = M('area')->where( " area_name Like '%{$countyName}%' " )->find(); if( !empty($country_info)) { $country_id = $country_info['area_id']; }else{ $area_data = array(); $area_data['area_name'] = $cityName; $area_data['area_parent_id'] = $city_id; $area_data['area_sort'] = 0; $area_data['area_deep'] = 3; $country_id = M('area')->add($area_data); } $has_addre = M('address')->where( array('member_id' => $member_id,'province_id' => $province_id,'country_id' => $country_id,'city_id' => $city_id,'address' => $detailInfo,'name' => $userName, 'telephone' =>$telNumber ) )->find(); if(empty($has_addre)) { $has_default_address = M('address')->where( array('member_id' => $member_id, 'is_default' => 1) )->find(); $address_data = array(); $address_data['member_id'] = $member_id; $address_data['name'] = $userName; $address_data['telephone'] = $telNumber; $address_data['address'] = $detailInfo; $address_data['address_name'] = empty($data['address_name']) ? 'HOME' : $data['address_name']; if(!empty($has_default_address)) { $address_data['is_default'] = 0; }else{ $data = array(); $data['is_default'] = 0; M('address')->where( array('member_id' => $member_id) )->save( $data ); $address_data['is_default'] = 1; } $address_data['city_id'] = $city_id; $address_data['country_id'] = $country_id; $address_data['province_id'] = $province_id; $res = M('address')->add($address_data); } echo json_encode( array('address_id' => $res, 'code' => 0) ); die(); } public function modifyaddress() { $token = I('get.token'); $address_id = I('get.address_id',0); $data_json = file_get_contents('php://input'); $data = json_decode($data_json, true); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $address_data = array(); $address_data['member_id'] = $member_id; $address_data['name'] = $data['name']; $address_data['telephone'] = $data['telephone']; $address_data['address'] = $data['address']; $address_data['address_name'] = empty($data['address_name']) ? 'HOME' : $data['address_name']; $address_data['is_default'] = 0; $address_data['city_id'] = $data['city']; $address_data['country_id'] = $data['district']; $address_data['province_id'] = $data['province']; if( isset($address_id) && $address_id>0) { $res = M('address')->where( array('address_id' => $address_id ,'member_id' => $member_id) )->save($address_data); $res = $address_id; }else { $res = M('address')->add($address_data); } echo json_encode( array('address_id' => $res, 'code' => 0) ); die(); } public function address_cancle() { $token = I('get.token'); $address_id = I('get.address_id',0); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $r=M('address')->where(array('address_id'=>$address_id, 'member_id' => $member_id))->delete(); echo json_encode( array('code' => 0) ); die(); } public function goods_detail() { $goods_id = I('get.goods_id'); $goods_info = M('goods')->where( array('goods_id' => $goods_id) )->find(); $goods_info = M('goods')->field('goods_id,name,pinprice,danprice,image')->where( array('goods_id'=>$goods_id) )->find(); $goods_info['image_url'] = str_replace('http','https',C('SITE_URL')).'/Uploads/image/'.$goods_info['image']; $goods_info['goods_name'] = $goods_info['name']; $goods_info['group_price'] = $goods_info['pinprice']; $goods_info['alone_price'] = $goods_info['danprice']; $options=$this->get_goods_options($goods_id); $goods_option_mult_value = M('goods_option_mult_value')->where( array('goods_id' =>$goods_id) )->select(); foreach($goods_option_mult_value as $key => $val) { $val['image'] = str_replace('http','https',C('SITE_URL')).resize($val['image'],200,200); $goods_option_mult_value[$key] = $val; } $result = array('code' => 1, 'goods' => $goods_info, 'options' =>$options, 'goods_option_mult_value' =>$goods_option_mult_value); echo json_encode($result); die(); } public function get_goods_options($goods_id) { $result = array(); $goods_option_name = array(); $goods_option_data = array(); $goods_option_query = M()->query("SELECT * FROM " . C('DB_PREFIX') . "goods_option po LEFT JOIN " . C('DB_PREFIX') . "option o ON po.option_id = o.option_id WHERE po.goods_id =".(int)$goods_id); foreach ($goods_option_query as $goods_option) { $goods_option_value_data = array(); $goods_option_value_query = M()->query("SELECT pov.*,ov.value_name FROM " . C('DB_PREFIX') . "goods_option_value pov LEFT JOIN ". C('DB_PREFIX') ."option_value ov ON pov.option_value_id=ov.option_value_id" ." WHERE pov.goods_option_id = '" . (int)$goods_option['goods_option_id'] . "'"); foreach ($goods_option_value_query as $goods_option_value) { $goods_option_value_data[] = array( 'goods_option_value_id' => $goods_option_value['goods_option_value_id'], 'option_value_id' => $goods_option_value['option_value_id'], 'quantity' => $goods_option_value['quantity'], 'name' =>$goods_option_value['value_name'], 'image' =>isset($goods_option_value['image'])?$goods_option_value['image']:'', 'price' =>'¥'.$goods_option_value['price'], 'price_prefix' => $goods_option_value['price_prefix'], ); } $goods_option_name[] = $goods_option['name']; $goods_option_data[] = array( 'goods_option_id' => $goods_option['goods_option_id'], 'option_id' => $goods_option['option_id'], 'name' => $goods_option['name'], 'type' => $goods_option['type'], 'option_value' => $goods_option_value_data, 'required' => $goods_option['required'] ); } $result['list'] = $goods_option_data; $result['name'] = $goods_option_name; return $result; } public function sub_order() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $data_json = file_get_contents('php://input'); $data_s = json_decode($data_json, true); $json=array(); $pay_method = $data_s['pay_method'];//支付类型 $order_msg_str = $data_s['order_msg_str'];//商品订单留言 $comment = $data_s['comment'];//商品订单留言 $pick_up_id = $data_s['pick_up_id']; $dispatching = $data_s['dispatching']; $ziti_name = $data_s['ziti_name']; $ziti_mobile = $data_s['ziti_mobile']; $ck_yupay = $data_s['ck_yupay']; /** pick_up_id: that.data.pick_up_id, dispatching: that.data.dispatching, //express pickup ziti_name: t_ziti_name, ziti_mobile: t_ziti_mobile **/ $order_msg_arr = explode('@,@', $order_msg_str); $quan_arr = $data_s['quan_arr'];//商品订单留言 $order_quan_arr = array(); if( !empty($quan_arr) ) { foreach($quan_arr as $q_val) { $tmp_q = array(); $tmp_q = explode('_',$q_val); $voucher_info = M('voucher_list')->where( array('id' =>$tmp_q[1], 'store_id' =>$tmp_q[0], 'user_id' => $member_id,'consume' =>'N','end_time' => array('gt',time() ) ) )->find(); if( !empty($voucher_info) ) { $order_quan_arr[$tmp_q[0]] = $tmp_q[1]; } } } $msg_arr = array(); foreach($order_msg_arr as $val) { $tmp_val = explode('@_@', $val); $msg_arr[ $tmp_val[0] ] = $tmp_val[1]; } $cart=new \Lib\Cart(); // 验证商品数量 //buy_type:buy_type $buy_type = $data_s['buy_type'];//I('post.buy_type'); $is_pin = 0; if($buy_type == 'pin') { $is_pin = 1; } $goodss = $cart->get_all_goodswecar($buy_type,$token); //付款人 $payment=M('Member')->find($member_id); //收货人 $add_where = array('member_id'=>$member_id ); $address = M('address')->where( $add_where )->order('is_default desc,address_id desc')->find(); $seller_goodss = array(); foreach($goodss as $key => $val) { $goods_store_field = M('goods')->field('store_id')->where( array('goods_id' => $val['goods_id']) )->find(); $seller_goodss[ $goods_store_field['store_id'] ][$key] = $val; } $pay_total = 0; //M('order_all') $order_all_data = array(); $order_all_data['member_id'] = $member_id; $order_all_data['order_num_alias'] = build_order_no($member_id); $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $is_pin; $order_all_data['paytime'] = 0; $order_all_data['addtime'] = time(); $order_all_id = M('order_all')->add($order_all_data); $integral_model = D('Seller/Integral'); $order_ids_arr = array(); $del_integral = 0; foreach($seller_goodss as $kk => $vv) { $data = array(); $data['member_id']=$member_id; $data['name']= $payment['uname']; $data['telephone']=$address['telephone']; $data['shipping_name']=$address['name']; $data['shipping_address']=$address['address']; $data['shipping_tel']=$address['telephone']; $data['shipping_province_id']=$address['province_id']; $data['shipping_city_id']=$address['city_id']; $data['shipping_country_id']=$address['country_id']; $data['shipping_method'] = 0; $data['delivery']=$dispatching; $data['pick_up_id']=$pick_up_id; $data['ziti_name']=$ziti_name; $data['ziti_mobile']=$ziti_mobile; //$pick_up_id = $data_s['pick_up_id']; //$dispatching = $data_s['dispatching']; //$ziti_name = $data_s['ziti_name']; //$ziti_mobile = $data_s['ziti_mobile']; $data['payment_method']=$pay_method; $data['address_id']= $address['address_id']; $data['voucher_id'] = isset($order_quan_arr[$kk]) ? $order_quan_arr[$kk]:0; $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $subject=''; $fare = 0; $trans_free_toal = 0;//运费 $order_total = 0; $is_lottery = 0; $is_integral = 0; foreach($goodss as $key => $good) { if($good['shipping']==1) { //统一运费 $trans_free_toal += $good['goods_freight']; $trans_free = $good['goods_freight']; }else { //运费模板 $trans_free = D('Home/Transport')->calc_transport($good['transport_id'], $good['quantity']*$good['weight'], $address['city_id'] ); $trans_free_toal +=$trans_free; } //sku_str $order_total += $good['total']; $tp_goods_info = M('goods')->field('store_id,type')->where( array('goods_id' =>$good['goods_id'] ) )->find(); // if($tp_goods_info['type'] == 'lottery') { $is_lottery = 1; } if($tp_goods_info['type'] == 'integral') { $is_integral = 1; $is_pin = 0; $check_result = $integral_model->check_user_score_can_pay($member_id, $good['sku_str'], $good['goods_id'] ); if($check_result['code'] == 1) { die(); } } $goods_data[] = array( 'goods_id' => $good['goods_id'], 'store_id' => $tp_goods_info['store_id'], 'name' => $good['name'], 'model' => $good['model'], 'is_pin' => $is_pin, 'pin_id' => $good['pin_id'], 'header_disc' => $good['header_disc'], 'member_disc' => $good['member_disc'], 'level_name' => $good['level_name'], 'option' => $good['sku_str'], 'quantity' => $good['quantity'], 'shipping_fare' => $trans_free, 'price' => $good['price'], 'total' => $good['total'], 'comment' => htmlspecialchars($comment) ); } //$is_pin; is_lottery //'pintuan', 'normal', 'lottery' $data['type'] = 'normal'; if($is_pin == 1) { $data['type'] = 'pintuan'; if($is_lottery == 1) { $data['type'] = 'lottery'; } } if($is_integral == 1) { $data['type'] = 'integral'; $is_pin = 0; } $data['shipping_fare'] = floatval($trans_free_toal); $data['store_id']= $kk; $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($member_id); $data['totals'][0]=array( 'code'=>'sub_total', 'title'=>'商品价格', 'text'=>'¥'.$order_total, 'value'=>$order_total ); $data['totals'][1]=array( 'code'=>'shipping', 'title'=>'运费', 'text'=>'¥'.$trans_free_toal, 'value'=>$trans_free_toal ); $data['totals'][2]=array( 'code'=>'total', 'title'=>'总价', 'text'=>'¥'.($order_total+$trans_free_toal), 'value'=>($order_total+$trans_free_toal) ); $data['from_type'] = 'wepro'; if($data['voucher_id'] > 0) { $voucher_info = M('voucher_list')->where( array('id' => $data['voucher_id']) )->find(); $data['voucher_credit'] = $voucher_info['credit']; M('voucher_list')->where( array('id' => $data['voucher_id']) )->save( array('consume' => 'Y') ); } else { $data['voucher_credit'] = 0; } $data['comment'] = htmlspecialchars($comment); //判断自提 dispatching:"pickup" //dispatching, //express pickup if($dispatching == 'express') { $data['total']=($order_total+$fare - $data['voucher_credit']); }else{ $data['total'] = ($order_total - $data['voucher_credit']); } //积分商城 if($data['type'] == 'integral') { $del_integral += $order_total;//扣除积分 $data['total'] = 0; $order_total = 0; } //$data['total']=($order_total+$trans_free_toal- $data['voucher_credit'] ); $oid=D('Order')->addOrder($data); //delivery pickup pick_up_id if($data['delivery'] == 'pickup') { $verify_bool = true; $verifycode = 0; while($verify_bool) { $code = (ceil(time()/100)+rand(10000000,40000000)).rand(1000,9999); $verifycode = $code ? $code : rand(100000,999999); $verifycode = str_replace('1989','9819',$verifycode); $verifycode = str_replace('1259','9521',$verifycode); $verifycode = str_replace('12590','95210',$verifycode); $verifycode = str_replace('10086','68001',$verifycode); $pick_order = M('pick_order')->where( array('pick_sn' => $verifycode) )->find(); if(empty($pick_order)) { $verify_bool = false; } } $pick_data = array(); $pick_data['pick_sn'] = $verifycode; $pick_data['pick_id'] = $pick_up_id; $pick_data['order_id'] = $oid; $pick_data['state'] = 0; $pick_data['ziti_name'] = $ziti_name; $pick_data['ziti_mobile'] = $ziti_mobile; $pick_data['addtime'] = time(); M('pick_order')->add($pick_data); } $order_ids_arr[] = $oid; //$pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit']; if($dispatching == 'express') { $pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit']; }else{ $pay_total = $pay_total + $order_total - $data['voucher_credit']; } $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $oid; $order_relate_data['addtime'] = time(); M('order_relate')->add($order_relate_data); } M('order_all')->where( array('id' => $order_all_id) )->save( array('total_money' => $pay_total) ); if($order_all_id){ //direct suborder $order = M('order')->where(array( 'order_id' => $oid ))->find(); $member_info = M('member')->field('we_openid,account_money')->where( array('member_id' => $member_id) )->find(); if( $pay_total<=0 || ($ck_yupay == 1 && $member_info['account_money'] >= $pay_total) ) { //检测是否需要扣除积分 //var_dump($del_integral,$is_integral );die(); if($del_integral> 0 && $is_integral == 1) { // $integral_model->charge_member_score( $member_id, $del_integral,'out', 'orderbuy', $oid); } if($ck_yupay == 1 && $pay_total >0) { //开始余额支付 $member_charge_flow_data = array(); $member_charge_flow_data['member_id'] = $member_id; $member_charge_flow_data['trans_id'] = $oid; $member_charge_flow_data['money'] = $pay_total; $member_charge_flow_data['state'] = 3; $member_charge_flow_data['charge_time'] = time(); $member_charge_flow_data['add_time'] = time(); M('member_charge_flow')->add($member_charge_flow_data); //开始处理扣钱 M('member')->where( array('member_id' => $member_id) )->setInc('account_money',-$pay_total); } //开始处理订单状态 $order_all = M('order_all')->where( array('id' => $order_all_id) )->find(); if($order&&($order['order_status_id']!=C('paid_order_status_id'))) { //支付完成 $o = array(); $o['order_status_id'] = $order['is_pin'] == 1 ? 2:1; $o['paytime']=time(); $o['transaction_id'] = $transaction_id; M('order_all')->where( array('id' => $out_trade_no) )->save($o); $order_relate_list = M('order_relate')->where( array('order_all_id' => $order_all['id']) )->select(); foreach($order_relate_list as $order_relate) { $order=M('Order')->where( array('order_id' =>$order_relate['order_id']) )->find(); if( $order && $order['order_status_id'] == 3) { $o = array(); $o['payment_code'] = 'yuer'; $o['order_id']=$order['order_id']; $o['order_status_id'] = $order['is_pin'] == 1 ? 2:1; $o['date_modified']=time(); $o['pay_time']=time(); $o['transaction_id'] = $is_integral ==1? '积分兑换':'余额支付'; M('Order')->save($o); $kucun_method = C('kucun_method'); $kucun_method = empty($kucun_method) ? 0 : intval($kucun_method); $goods_model = D('Home/Goods'); if($kucun_method == 1) {//支付完减库存,增加销量 $order_goods_list = M('order_goods')->where( array('order_id' => $order['order_id']) )->select(); foreach($order_goods_list as $order_goods) { $goods_model->del_goods_mult_option_quantity($order['order_id'],$order_goods['rela_goodsoption_valueid'],$order_goods['goods_id'],$order_goods['quantity'],1); } } $oh = array(); $oh['order_id']=$order['order_id']; $oh['order_status_id']= $order['is_pin'] == 1 ? 2:1; $oh['comment']='买家已付款'; $oh['date_added']=time(); $oh['notify']=1; M('OrderHistory')->add($oh); //发送购买通知 $weixin_nofity = D('Home/Weixinnotify'); $weixin_nofity->orderBuy($order['order_id']); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $order_id = $hashids->encode($order['order_id']); //group_order_id if($order['is_pin'] == 1) { $pin_order = M('pin_order')->where(array('order_id' => $order['order_id']) )->find(); $pin_model = D('Home/Pin'); $pin_model->insertNotifyOrder($order['order_id']); $is_pin_success = $pin_model->checkPinSuccess($pin_order['pin_id']); if($is_pin_success) { //todo send pintuan success notify $pin_model->updatePintuanSuccess($pin_order['pin_id']); } } } } //返回支付成功给app $data = array(); $data['code'] = 0; $data['has_yupay'] = 1; $data['is_integral'] = $is_integral; } }else{ $fee = $pay_total; $appid = $this->appid; $body = '商品购买'; $mch_id = $this->mch_id; $nonce_str = $this->nonce_str(); $notify_url = C('SITE_URL').'notify.php'; $openid = $member_info['we_openid']; $out_trade_no = $order_all_id.'-'.time(); $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $trade_type = 'JSAPI'; $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = $this->sign($post); $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = $this->http_request($url,$post_xml); $array = $this->xml($xml); //var_dump($openid, $array);die(); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp=''; $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; M('order')->where( array('order_id' => array('in',$order_ids_arr) ) )->save( array('perpay_id' => (string)$array['PREPAY_ID']) ); $data = array(); $data['code'] = 0; $data['appid'] = $appid; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = $this->sign($tmp); $data['out_trade_no'] = $out_trade_no; if($is_pin == 1) { $data['redirect_url'] = '../groups/group?id='.$oid.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order_show_all?order_all_id=' + $order_all_id; } }else{ $data = array(); $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } $data['has_yupay'] = 0; } if($is_pin == 1) { $data['order_id'] = $oid; $data['order_all_id'] = $order_all_id; }else{ $data['order_id'] = $oid; $data['order_all_id'] = $order_all_id; } echo json_encode($data); die(); }else{ echo json_encode( array('code' =>1,'order_all_id' =>$order_all_id) ); die(); } } public function orders2() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $data_json = file_get_contents('php://input'); $data = json_decode($data_json, true); $quantity = $data['quantity']; $goods_sku = $data['goods_sku']; if( !empty($goods_sku) ) { $option = array_filter($goods_sku); $new_option = array(); foreach($option as $heng_hua) { $tmp_a = explode('_',$heng_hua); $new_option[$tmp_a[0]] = $tmp_a[1]; } $option = $new_option; } $goods_id = $data['goods_id']; $address_id = $data['address_id']; $group_order_id = $data['group_order_id']; $groupbuy = $data['groupbuy'] == 1 ? 'pin':'dan'; $member_info = M('member')->field('name')->where( array('member_id' => $member_id) )->find(); $shipping = M('address')->where( array('address_id'=>$address_id) )->find(); $data['member_id']=$member_id; $data['name']=$member_info['name']; $data['telephone']=$shipping['telephone']; $data['shipping_name']=$shipping['name']; $data['shipping_address']=$shipping['address']; $data['shipping_tel']=$shipping['telephone']; $data['shipping_province_id']=$shipping['province_id']; $data['shipping_city_id']=$shipping['city_id']; $data['shipping_country_id']=$shipping['country_id']; $data['shipping_method'] = 0; $data['delivery']='express'; $data['payment_method']='wxpay'; $data['address_id']=$address_id; $data['voucher_id']=0; $data['user_agent']=$_SERVER['HTTP_USER_AGENT']; $data['date_added']=time(); $data['comment']=''; $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $goodss = M('goods')->where( array('goods_id' =>$goods_id) )->select(); $t=0; foreach ($goodss as $goods) { $option_data = array(); //sku begin if( !empty($option) ) { //$option $option_data = array(); $options = $option; foreach ($options as $goods_option_id => $option_value) { $option_query = M()->query("SELECT po.goods_option_id, po.option_id, o.name, o.type FROM " . C('DB_PREFIX') . "goods_option po LEFT JOIN `" . C('DB_PREFIX') . "option` o ON (po.option_id = o.option_id) WHERE po.goods_option_id = '" . (int)$goods_option_id . "' AND po.goods_id = " . (int)$goods_id); if ($option_query) { $option_value_query = M()->query("SELECT pov.option_value_id, ov.value_name, pov.quantity, pov.subtract, pov.price, pov.price_prefix,pov.weight, pov.weight_prefix FROM " . C('DB_PREFIX') . "goods_option_value pov LEFT JOIN " . C('DB_PREFIX') . "option_value ov ON (pov.option_value_id = ov.option_value_id) WHERE pov.goods_option_value_id = '" . (int)$option_value . "' AND pov.goods_option_id = " . (int)$goods_option_id); if ($option_value_query) { $option_data[] = array( 'goods_option_id' => $goods_option_id, 'goods_option_value_id' => $option_value, 'option_id' => $option_query[0]['option_id'], 'option_value_id' => $option_value_query[0]['option_value_id'], 'name' => $option_query[0]['name'], 'value' => $option_value_query[0]['value_name'], 'type' => $option_query[0]['type'], 'quantity' => $option_value_query[0]['quantity'], 'subtract' => $option_value_query[0]['subtract'], 'price' => $option_value_query[0]['price'], 'price_prefix' => 0, 'weight' => 0, 'weight_prefix' => 0 ); } } } } /** foreach ($goods['option'] as $option) { $value = $option['value']; $option_data[] = array( 'goods_option_id' => $option['goods_option_id'], 'goods_option_value_id' => $option['goods_option_value_id'], 'option_id' => $option['option_id'], 'option_value_id' => $option['option_value_id'], 'name' => $option['name'], 'value' => $value, 'type' => $option['type'] ); } **/ $tp_goods_info = M('goods')->field('store_id,express_list')->where( array('goods_id' =>$goods['goods_id']))->find(); $express_list_arr = unserialize($tp_goods_info['express_list']); if($data['delivery'] == 'express') { $fare = isset($express_list_arr[$data['shipping_method']]) ? $express_list_arr[$data['shipping_method']]['price'] : 0; } $t+=$goods['pinprice']; $goods['pinprice'] = $goods['pinprice']; //$goods_id=$hashids->encode($goods['goods_id']); $goods_data[] = array( 'goods_id' => $hashids->encode($goods['goods_id']),//goods_id 'name' => $goods['name'], 'store_id' => $tp_goods_info['store_id'], 'model' => $goods['model'], 'option' => $option_data, 'quantity' => 1, 'pin_type' => $groupbuy, 'pin_id' => $group_order_id, 'price' => $goods['pinprice'], 'total' => $goods['pinprice'] ); $subject.=$goods['name'].' '; } $data['shipping_fare'] = floatval($fare); $data['total']=($t+$fare ); $data['goodss'] = $goods_data; $data['order_num_alias']=build_order_no($data['member_id']); $data['totals'][0]=array( 'code'=>'sub_total', 'title'=>'商品价格', 'text'=>'¥'.$t, 'value'=>$t ); $data['totals'][1]=array( 'code'=>'shipping', 'title'=>'运费', 'text'=>'¥'.$fare, 'value'=>$fare ); $data['totals'][2]=array( 'code'=>'voucher', 'title'=>'优惠券', 'text'=>'¥'.$data['voucher_credit'], 'value'=>$data['voucher_credit'] ); $data['totals'][3]=array( 'code'=>'total', 'title'=>'总价', 'text'=>'¥'.($t+$fare- $data['voucher_credit']), 'value'=>($t+$fare- $data['voucher_credit']) ); $oid=D('Order')->addOrder($data); //self.order_id = data.order_id; $result = array('code' =>1,'order_id' =>$oid); echo json_encode($result); die(); } public function wxpay() { $token = I('get.token'); $order_id = I('get.order_id'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; if( empty($member_id) ) { echo json_encode( array('code' =>1,'msg' =>'未登录') ); die(); } $member_info = M('member')->field('we_openid')->where( array('member_id' => $member_id) )->find(); $order = M('order')->where(array( 'order_id' => $order_id ))->find(); //var_dump($order);die(); is_pin //$order['is_pin'] $pin_order = M('pin_order')->where( array('order_id' => $order_id) )->find(); if( !empty($pin_order) ) { $pin_model = D('Home/Pin'); $is_pin_over = $pin_model->getNowPinState($pin_order['pin_id']); if($is_pin_over != 0) { M('pin_order')->where( array('order_id' => $order_id) )->delete(); M('pin')->where( array('pin_id' => $pin_order['pin_id'], 'order_id' => $order_id) )->delete(); $order_goods_info = M('order_goods')->field('goods_id')->where( array('order_id'=>$order_id) )->find(); //新开团 $pin_id = $pin_model->openNewTuan($order_id,$order_goods_info['goods_id'],$member_id); //插入拼团订单 $pin_model->insertTuanOrder($pin_id,$order_id); } } //单独支付一个店铺的订单 M('order_relate')->where( array('order_id' => $order_id) )->delete(); $order_all_data = array(); $order_all_data['member_id'] = $member_id; $order_all_data['order_num_alias'] = build_order_no($member_id); $order_all_data['transaction_id'] = ''; $order_all_data['order_status_id'] = 3; $order_all_data['is_pin'] = $order['is_pin']; $order_all_data['paytime'] = 0; $order_all_data['total_money'] = $order['total']; $order_all_data['addtime'] = time(); $order_all_id = M('order_all')->add($order_all_data); $order_relate_data = array(); $order_relate_data['order_all_id'] = $order_all_id; $order_relate_data['order_id'] = $order_id; $order_relate_data['addtime'] = time(); M('order_relate')->add($order_relate_data); //$order_all_data[order_num_alias] shipping_fare //order $data['delivery'] == 'pickup' if( $order['delivery'] == 'pickup' ) { $fee = $order['total'];//-$order['voucher_credit']; }else { $fee = $order['total'];//+$order['shipping_fare']-$order['voucher_credit']; } /** $pay_total = $pay_total + $order_total+$trans_free_toal - $data['voucher_credit']; **/ $appid = $this->appid; $body = '商品购买'; $mch_id = $this->mch_id; $nonce_str = $this->nonce_str(); $notify_url = C('SITE_URL').'notify.php'; $openid = $member_info['we_openid']; $out_trade_no = $order_all_id.'-'.time(); $spbill_create_ip = $_SERVER['REMOTE_ADDR']; $total_fee = $fee*100; $trade_type = 'JSAPI'; $post['appid'] = $appid; $post['body'] = $body; $post['mch_id'] = $mch_id; $post['nonce_str'] = $nonce_str; $post['notify_url'] = $notify_url; $post['openid'] = $openid; $post['out_trade_no'] = $out_trade_no; $post['spbill_create_ip'] = $spbill_create_ip; $post['total_fee'] = $total_fee; $post['trade_type'] = $trade_type; $sign = $this->sign($post); $post_xml = ' '.$appid.' '.$body.' '.$mch_id.' '.$nonce_str.' '.$notify_url.' '.$openid.' '.$out_trade_no.' '.$spbill_create_ip.' '.$total_fee.' '.$trade_type.' '.$sign.' '; $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder'; $xml = $this->http_request($url,$post_xml); $array = $this->xml($xml); if($array['RETURN_CODE'] == 'SUCCESS' && $array['RESULT_CODE'] == 'SUCCESS'){ $time = time(); $tmp=''; $tmp['appId'] = $appid; $tmp['nonceStr'] = $nonce_str; $tmp['package'] = 'prepay_id='.$array['PREPAY_ID']; $tmp['signType'] = 'MD5'; $tmp['timeStamp'] = "$time"; M('order')->where( array('order_id' => $order_id ) )->save( array('perpay_id' => $array['PREPAY_ID']) ); $data['code'] = 0; $data['timeStamp'] = "$time"; $data['nonceStr'] = $nonce_str; $data['signType'] = 'MD5'; $data['package'] = 'prepay_id='.$array['PREPAY_ID']; $data['paySign'] = $this->sign($tmp); $data['out_trade_no'] = $out_trade_no; $data['is_pin'] = $order['is_pin']; if($order['is_pin'] == 1) { $data['redirect_url'] = '../groups/group?id='.$order_id.'&is_show=1'; } else { $data['redirect_url'] = '../orders/order?id=' + $order_id; } }else{ $data['code'] = 1; $data['text'] = "错误"; $data['RETURN_CODE'] = $array['RETURN_CODE']; $data['RETURN_MSG'] = $array['RETURN_MSG']; } echo json_encode($data); die(); } public function getorder() { $token = I('get.token'); $order_id = I('get.order_id',0); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $order_info = M('order')->where( array('order_id' => $order_id) )->find(); $order_status_info = M('order_status')->where( array('order_status_id' => $order_info['order_status_id']) )->find(); $shipping_province = M('area')->where( array('area_id' => $order_info['shipping_province_id']) )->find(); $shipping_city = M('area')->where( array('area_id' => $order_info['shipping_city_id']) )->find(); $shipping_country = M('area')->where( array('area_id' => $order_info['shipping_country_id']) )->find(); $order_goods = M('order_goods')->where( array('order_id' => $order_id) )->find(); $store_info = M('seller')->where('s_id='.$order_goods['store_id'])->find(); $order_option_info = M('order_option')->where( array('order_id' =>$order_id) )->select(); $goods_info = M('goods')->where( array('goods_id' => $order_goods['goods_id']) )->find(); $voucher_info = array(); if($order_info['voucher_id'] > 0) { $voucher_info = M('voucher_list')->where( array('id' => $order_info['voucher_id']) )->find(); } $pin_model = D('Home/Pin'); if($order_info['order_status_id'] == 2) { if($order_info['is_pin'] == 1 && $order_info['pin_id'] > 0) { $state = $pin_model->getNowPinState($order_info['pin_id']); if($state == 2){ $order_status_info['name'] = '拼团失败,等待退款'; } } } if($order_info['order_status_id'] == 1) { if($order_info['is_pin'] == 1 && $order_info['pin_id'] > 0 && $order_info['lottery_win'] ==0) { $pin_info = M('pin')->where( array('pin_id' =>$order_info['pin_id'] ) )->find(); if($pin_info['is_lottery'] == 1) { if($pin_info['lottery_state'] == 0){ $order_status_info['name'] = '已成团,待抽奖'; }else if($pin_info['lottery_state'] == 1){ $order_status_info['name'] = '二等奖,待退款并送券'; } } }else if($order_info['is_pin'] == 1 && $order_info['pin_id'] > 0 && $order_info['lottery_win'] ==1) { $order_status_info['name'] = '一等奖,待发货'; } } $pick_order_info = array(); $pick_up = array(); if($order_info['delivery'] == 'pickup') { $pick_order_info = M('pick_order')->where( array('order_id' => $order_info['order_id']) )->find(); $pick_up = M('pick_up')->where( array('id' => $pick_order_info['pick_id']) )->find(); } $this->pick_order_info = $pick_order_info; $this->pick_up = $pick_up; $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); $order_info['hash_order_id']= $hashids->encode($order_info['order_id']); $order_send_history = M('order_history')->where( array('order_id' => $order_id,'order_status_id' =>4) )->find(); $order_get_history = M('order_history')->where( array('order_id' => $order_id,'order_status_id' =>6) )->find(); $order_infos = array(); $order_infos = array_merge($order_infos,$order_info); $order_infos['order_time'] = $order_info['date_modified']; $order_infos['order_status'] = $order_info['order_status_id']; $order_infos['order_amount'] = round($order_info['total'],2); $order_infos['city_name'] = $shipping_province['area_name'].$shipping_city['area_name'].$shipping_country['area_name']; $order_infos['receive_name'] = $order_infos['shipping_name']; $order_infos['mobile'] = $order_infos['shipping_tel']; $order_infos['order_sn'] = $order_infos['order_num_alias']; $order_infos['order_option_info'] = $order_option_info; $order_infos['image_url'] = str_replace('http','https',C('SITE_URL')).'/'.resize($goods_info['image'], C('common_image_thumb_width'), C('common_image_thumb_height')); $order_infos['goods_name'] = $goods_info['name']; $order_infos['market_price'] = $order_goods['total']; $order_infos['group_order_id'] = $order_info['pin_id']; $order_infos['goods_id'] = $order_goods['goods_id']; $result = array('code'=>1,'order' => $order_infos); echo json_encode($result); die(); } public function orderlist() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $page = I('get.page',1); $size = I('get.size',6); $offset = ($page - 1)* $size; $type = I('get.type',''); $order_status = I('get.order_status',-1); $where = ' and o.member_id = '.$member_id; /** if($order_status == 5) { $where .= ' and o.is_pin = 1 and o.order_status_id = 7'; } else if($order_status == 4) { $where .= ' and o.is_pin = 1 and o.order_status_id in( 1,4,6,11) '; } else **/ if($order_status > 0 && $order_status <12) { $where .= ' and o.order_status_id = '.$order_status; } else if($order_status == 12) { $where .= ' and o.order_status_id in(12,13)'; } if( !empty($type) ) { $where .= ' and o.type = "integral" '; } $sql = "select o.order_id,o.delivery,o.is_pin,o.is_zhuli,o.shipping_fare,o.voucher_credit,o.store_id,o.total,o.order_status_id,o.lottery_win,o.type,os.name as status_name from ".C('DB_PREFIX')."order as o , ".C('DB_PREFIX')."order_status as os where o.order_status_id = os.order_status_id {$where} order by o.date_added desc limit {$offset},{$size}"; $list = M()->query($sql); $hashids = new \Lib\Hashids(C('PWD_KEY'), C('URL_ID')); foreach($list as $key => $val) { //voucher_credit shipping_fare if($val['delivery'] == 'pickup') { //$val['total'] = round($val['total'],2) - round($val['voucher_credit'],2); }else{ //$val['total'] = round($val['total'],2)+round($val['shipping_fare'],2) - round($val['voucher_credit'],2); } // $val['delivery'] =='pickup' if($val['shipping_fare']<=0.001 || $val['delivery'] == 'pickup') { $val['shipping_fare'] = '免运费'; }else{ $val['shipping_fare'] = '运费:'.$val['shipping_fare']; } if($val['order_status_id'] == 10) { $val['status_name'] = '等待退款'; } else if($val['order_status_id'] == 4 && $val['delivery'] =='pickup') { //delivery 6 $val['status_name'] = '待自提'; //已自提 } else if($val['order_status_id'] == 6 && $val['delivery'] =='pickup') { //delivery 6 $val['status_name'] = '已自提'; //已自提 } else if($val['order_status_id'] == 1 && $val['type'] == 'lottery') { //等待开奖 //一等奖 if($val['lottery_win'] == 1) { $val['status_name'] = '一等奖'; }else { $val['status_name'] = '等待开奖'; } } else if($val['order_status_id'] == 2 && $val['type'] == 'lottery') { //等待开奖 $val['status_name'] = '等待开奖'; } $val['hash_order_id']= $hashids->encode($val['order_id']); $quantity = 0; $goods_sql = "select order_goods_id,head_disc,member_disc,level_name,goods_id,is_pin,shipping_fare,name,goods_images,quantity,price,total,rela_goodsoption_valueid from ".C('DB_PREFIX')."order_goods where order_id= ".$val['order_id'].""; $goods_list = M()->query($goods_sql); foreach($goods_list as $kk => $vv) { $order_option_list = M('order_option')->where( array('order_goods_id' =>$vv['order_goods_id']) )->select(); $vv['goods_images']= C('SITE_URL') .resize($vv['goods_images'], C('common_image_thumb_width'), C('common_image_thumb_height')); //price orign_price $goods_filed = M('goods')->field('price')->where( array('goods_id' => $vv['goods_id']) )->find(); $vv['orign_price'] = $goods_filed['price']; $quantity += $vv['quantity']; foreach($order_option_list as $option) { $vv['option_str'][] = $option['value']; } if( !isset($vv['option_str']) ) { $vv['option_str'] = ''; }else{ $vv['option_str'] = implode(',', $vv['option_str']); } $vv['price'] = round($vv['price'],2); $vv['orign_price'] = round($vv['orign_price'],2); //price orign_price $goods_list[$kk] = $vv; } $val['quantity'] = $quantity; if( empty($val['store_id']) ) { $val['store_id'] = 1; } $store_info = M('seller')->field('s_true_name,s_logo')->where('s_id='.$val['store_id'])->find(); $store_info['s_logo'] = C('SITE_URL').'/Uploads/image/'.$store_info['s_logo']; $val['store_info'] = $store_info; $val['goods_list'] = $goods_list; if($val['type'] == 'integral') { //$order_id $integral_order = M('integral_order')->field('score')->where( array('order_id' => $val['order_id']) )->find(); $val['score'] = intval($integral_order['score']); } $val['total'] = round($val['total'],2); $list[$key] = $val; } $need_data = array('code' => 0); if( !empty($list) ) { $need_data['data'] = $list; }else { $need_data = array('code' => 1); } echo json_encode( $need_data ); die(); } public function order_info() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $order_id = I('get.id',0); $order_info = M('order')->where( array('order_id' => $order_id, 'member_id' => $member_id) )->find(); $pick_up_info = array(); $pick_order_info = array(); if( $order_info['delivery'] == 'pickup' ) { //查询自提点 $pick_order_info = M('pick_order')->where( array('order_id' => $order_id) )->find(); $pick_id = $pick_order_info['pick_id']; $pick_up_info = M('pick_up')->where( array('id' => $pick_id) )->find(); } //$this->pick_up_info = $pick_up_info; $order_status_info = M('order_status')->where( array('order_status_id' => $order_info['order_status_id']) )->find(); //10 name if($order_info['order_status_id'] == 10) { $order_status_info['name'] = '等待退款'; } else if($order_info['order_status_id'] == 4 && $order_info['delivery'] =='pickup') { //delivery 6 $order_status_info['name'] = '待自提'; //已自提 } else if($order_info['order_status_id'] == 6 && $order_info['delivery'] =='pickup') { //delivery 6 $order_status_info['name'] = '已自提'; } else if($order_info['order_status_id'] == 1 && $order_info['type'] == 'lottery') { //等待开奖 //一等奖 if($order_info['lottery_win'] == 1) { $order_status_info['name'] = '一等奖'; }else { $order_status_info['name'] = '等待开奖'; } } $shipping_province = M('area')->where( array('area_id' => $order_info['shipping_province_id']) )->find(); $shipping_city = M('area')->where( array('area_id' => $order_info['shipping_city_id']) )->find(); $shipping_country = M('area')->where( array('area_id' => $order_info['shipping_country_id']) )->find(); $order_goods_list = M('order_goods')->where( array('order_id' => $order_id) )->select(); $shiji_total_money = 0; $member_youhui = 0.00; foreach($order_goods_list as $key => $order_goods) { $order_option_info = M('order_option')->field('value')->where( array('order_id' =>$order_id,'order_goods_id' => $order_goods['order_goods_id']) )->select(); foreach($order_option_info as $option) { $vv['option_str'][] = $option['value']; } if(empty($vv['option_str'])) { //option_str $order_goods['option_str'] = ''; }else{ $order_goods['option_str'] = implode(',', $vv['option_str']); } // $order_goods['shipping_fare'] = round($order_goods['shipping_fare'],2); $order_goods['price'] = round($order_goods['price'],2); $order_goods['total'] = round($order_goods['total'],2); $order_goods['real_total'] = round($order_goods['quantity'] * $order_goods['price'],2); $order_goods['image']=C('SITE_URL').resize($order_goods['goods_images'], C('common_image_thumb_width'), C('common_image_thumb_height')); $order_goods['goods_images']= C('SITE_URL').'/Uploads/image/'.$order_goods['goods_images']; $goods_info = M('goods')->field('price')->where( array('goods_id' => $order_goods['goods_id']) )->find(); $order_goods['shop_price'] = $goods_info['price']; $store_info = M('seller')->field('s_true_name,s_logo')->where('s_id='.$order_goods['store_id'])->find(); $store_info['s_logo'] = C('SITE_URL').'/Uploads/image/'.$store_info['s_logo']; $order_goods['store_info'] = $store_info; unset($order_goods['model']); unset($order_goods['rela_goodsoption_valueid']); unset($order_goods['comment']); $order_goods_list[$key] = $order_goods; $shiji_total_money += $order_goods['quantity'] * $order_goods['price']; $member_youhui += ($order_goods['real_total'] - $order_goods['total']); } unset($order_info['store_id']); //unset($order_info['type']); unset($order_info['email']); unset($order_info['shipping_city_id']); unset($order_info['shipping_country_id']); unset($order_info['shipping_province_id']); unset($order_info['comment']); unset($order_info['voucher_id']); //unset($order_info['voucher_credit']); unset($order_info['is_balance']); unset($order_info['lottery_win']); unset($order_info['ip']); unset($order_info['ip_region']); unset($order_info['user_agent']); $order_info['shipping_fare'] = round($order_info['shipping_fare'],2) < 0.01 ? '0.00':round($order_info['shipping_fare'],2) ; $order_info['total'] = round($order_info['total'],2)< 0.01 ? '0.00':round($order_info['total'],2) ; $order_info['real_total'] = round($shiji_total_money,2)+$order_info['shipping_fare']; $order_info['price'] = round($order_info['price'],2); $order_info['member_youhui'] = round($member_youhui,2) < 0.01 ? '0.00':round($member_youhui,2); $order_info['date_added'] = date('Y-m-d H:i:s', $order_info['date_added']); $need_data = array(); //{{order.order_info.total + order.order_info.shipping_fare - order.order_info.voucher_credit}} if($order_info['delivery'] =='pickup') { //$order_info['total'] = $order_info['total'] - $order_info['voucher_credit']; }else{ //$order_info['total'] = $order_info['total'] + $order_info['shipping_fare'] - $order_info['voucher_credit']; } if($order_info['type'] == 'integral') { //$order_id $integral_order = M('integral_order')->field('score')->where( array('order_id' => $order_id) )->find(); $need_data['score'] = intval($integral_order['score']); } $need_data['order_info'] = $order_info; $need_data['order_status_info'] = $order_status_info; $need_data['shipping_province'] = $shipping_province; $need_data['shipping_city'] = $shipping_city; $need_data['shipping_country'] = $shipping_country; $need_data['order_goods_list'] = $order_goods_list; //$order_info['order_status_id'] 13 平台介入退款 $order_refund_historylist = array(); $pingtai_deal = 0; //判断是否已经平台处理完毕 $order_refund_historylist = M('order_refund_history')->where( array('order_id' => $order_id) )->order('addtime asc')->select(); foreach($order_refund_historylist as $key => $val) { if($val['type'] ==3) { $pingtai_deal = 1; } } //order_refund $order_refund = M('order_refund')->where( array('order_id' => $order_id) )->find(); if(!empty($order_refund)) { $order_refund['addtime'] = date('Y-m-d H:i:s', $order_refund['addtime']); } $need_data['pick_up'] = $pick_up_info; if( empty($pick_order_info['qrcode']) ) { //qrcode $jssdk = new \Lib\Weixin\Jssdk( $this->appid, $this->appsecret); $weqrcode = $jssdk->getWeQrcode($pick_order_info['pick_sn']); //保存图片 $image_dir = ROOT_PATH.'Uploads/image/goods'; $image_dir .= '/'.date('Y-m-d').'/'; $file_path = C('SITE_URL').'Uploads/image/goods/'.date('Y-m-d').'/'; $kufile_path = $dir.'/'.date('Y-m-d').'/'; RecursiveMkdir($image_dir); $file_name = md5('qrcode_'.$pick_order_info['pick_sn'].time()).'.png'; //qrcode file_put_contents($image_dir.$file_name, $weqrcode); //pick_order_info M('pick_order')->where( array('id' => $pick_order_info['id'] ) )->save( array('qrcode' => $file_path.$file_name) ); $pick_order_info['qrcode'] = $file_path.$file_name; } $need_data['pick_order_info'] = $pick_order_info; //https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET //https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN echo json_encode( array('code' => 0,'data' => $need_data,'pingtai_deal' => $pingtai_deal,'order_refund' => $order_refund ) ); die(); } public function order_all_show() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); $member_id = $weprogram_token['member_id']; $order_all_id = I('get.id',0); $order_all_info = M('order_all')->where( array('id' => $order_all_id) )->find(); $order_relate_list = M('order_relate')->where( array('order_all_id' => $order_all_id) )->select(); $need_data = array(); foreach($order_relate_list as $relate_val) { $order_id = $relate_val['order_id']; $order_info = M('order')->where( array('order_id' => $order_id, 'member_id' => $member_id) )->find(); $order_status_info = M('order_status')->where( array('order_status_id' => $order_info['order_status_id']) )->find(); $shipping_province = M('area')->where( array('area_id' => $order_info['shipping_province_id']) )->find(); $shipping_city = M('area')->where( array('area_id' => $order_info['shipping_city_id']) )->find(); $shipping_country = M('area')->where( array('area_id' => $order_info['shipping_country_id']) )->find(); $order_goods_list = M('order_goods')->where( array('order_id' => $order_id) )->select(); foreach($order_goods_list as $key => $order_goods) { $order_option_info = M('order_option')->field('value')->where( array('order_id' =>$order_id,'order_goods_id' => $order_goods['order_goods_id']) )->select(); foreach($order_option_info as $option) { $vv['option_str'][] = $option['value']; } $order_goods['option_str'] = implode(',', $vv['option_str']); $order_goods['image']=C('SITE_URL').resize($order_goods['goods_images'], C('common_image_thumb_width'), C('common_image_thumb_height')); $order_goods['goods_images']= C('SITE_URL').'/Uploads/image/'.$order_goods['goods_images']; $store_info = M('seller')->field('s_true_name,s_logo')->where('s_id='.$order_goods['store_id'])->find(); $store_info['s_logo'] = C('SITE_URL').'/Uploads/image/'.$store_info['s_logo']; $order_goods['store_info'] = $store_info; unset($order_goods['model']); unset($order_goods['rela_goodsoption_valueid']); unset($order_goods['comment']); $order_goods_list[$key] = $order_goods; } $shipping_address = $order_info['shipping_address']; $shipping_name = $order_info['shipping_name']; $telephone = $order_info['telephone']; unset($order_info['store_id']); unset($order_info['type']); unset($order_info['email']); unset($order_info['shipping_city_id']); unset($order_info['shipping_country_id']); unset($order_info['shipping_province_id']); unset($order_info['comment']); unset($order_info['voucher_id']); unset($order_info['voucher_credit']); unset($order_info['is_balance']); unset($order_info['lottery_win']); unset($order_info['ip']); unset($order_info['ip_region']); unset($order_info['user_agent']); $tmp_arr = array(); $tmp_arr['order_goods_list'] = $order_goods_list; $tmp_arr['order_info'] = $order_info; $need_data[] = $tmp_arr; } //$this->order_status_info = $order_status_info; $need_datas = array(); $need_datas['order_status_info'] = $order_status_info; $need_datas['shipping_province'] = $shipping_province; $need_datas['shipping_city'] = $shipping_city; $need_datas['shipping_country'] = $shipping_country; $need_datas['shipping_name'] = $shipping_name; $need_datas['telephone'] = $telephone; $need_datas['shipping_address'] = $shipping_address; $need_datas['order_list'] = $need_data; echo json_encode( array('code' => 0,'data' => $need_datas ) ); die(); } public function applogin() { $code = I('get.code'); $url = "https://api.weixin.qq.com/sns/jscode2session?appid={$this->appid}&secret={$this->appsecret}&js_code={$code}&grant_type=authorization_code"; $open_str = $this->http_request($url); //"unionid":"o0v630n0_IgASw5-k7RGFO-i8oeI" $data = json_decode($open_str, true); $expires_time = time() + $data['expires_in']; $token = md5($data['openid'].time()); S('wepro_openid_'.$token, $data['openid']); S('wepro_expires_time_'.$token, $expires_time); S('wepro_session_key_'.$token, $data['session_key']); S('wepro_unionid_'.$token, $data['unionid']); $werp_data = array(); $werp_data['token'] = $token; $result = array('code' => 1, 'token' => $token,'openid' =>$data['openid']); echo json_encode($result); die(); } /** 小程序授权登录 **/ public function applogin_do() { $token = I('get.token'); $data_json = file_get_contents('php://input'); $data = json_decode($data_json, true); $user_info = $data['userinfo']; $share_id = $data['share_id']; $openid = S('wepro_openid_'.$token); $expires_time = S('wepro_expires_time_'.$token); $session_key = S('wepro_session_key_'.$token); $unionid = S('wepro_unionid_'.$token); $user_info['nickName'] = \Lib\Weixin\WeChatEmoji::clear($user_info['nickName']); $user_info['nickName'] = trim($user_info['nickName']); $member_info = M('member')->where( array('we_openid' =>$openid) )->find(); if( !empty($unionid) && empty($member_info) ) { $member_info = M('member')->where( array('unionid' =>$unionid) )->find(); } if(!empty($member_info) ) { $data = array(); $data['member_id'] = $member_info['member_id']; $data['we_openid'] = trim($openid); $data['avatar'] = trim($user_info['avatarUrl']); $data['last_login_time'] = time(); $data['login_count'] = array('exp','login_count+1'); $data['last_login_ip'] = get_client_ip(); M('Member')->save($data); $member_id = $member_info['member_id']; $weprogram_token_data = array(); $weprogram_token_data['token'] = $token; $weprogram_token_data['member_id'] = $member_id; $weprogram_token_data['session_key'] = $session_key; $weprogram_token_data['expires_in'] = $expires_time; M('weprogram_token')->add($weprogram_token_data); }else { $data = array(); $data['email']= time().mt_rand(1,9999).'@lf.com'; $data['uname']=trim($user_info['nickName']); $data['name']=trim($user_info['nickName']); $data['avatar']=trim($user_info['avatarUrl']); $data['openid'] = $openid; $data['we_openid'] = trim($openid); $data['unionid'] = trim($unionid); //share_id $data['share_id'] = $share_id; $data['reg_type'] = 'weprogram'; $data['pwd'] = think_ucenter_encrypt($user_info['nickName'],C('PWD_KEY')); $data['status']=1; $data['create_time'] = time(); $data['last_login_ip'] = get_client_ip(); $member_id= M('Member')->add($data); $weprogram_token_data = array(); $weprogram_token_data['token'] = $token; $weprogram_token_data['member_id'] = $member_id; $weprogram_token_data['session_key'] = $session_key; $weprogram_token_data['expires_in'] = $expires_time; M('weprogram_token')->add($weprogram_token_data); if($share_id > 0) { $share_member = M('member')->field('we_openid')->where( array('member' => $share_id) )->find(); $member_formid_info = M('member_formid')->where( array('member_id' => $share_id, 'state' => 0) )->find(); //更新 if(!empty($member_formid_info)) { $template_data['keyword1'] = array('value' => $data['name'], 'color' => '#030303'); $template_data['keyword2'] = array('value' => '普通会员', 'color' => '#030303'); $template_data['keyword3'] = array('value' => date('Y-m-d H:i:s'), 'color' => '#030303'); $template_data['keyword4'] = array('value' => '恭喜你,获得一位新成员', 'color' => '#030303'); $pay_order_msg_info = M('config')->where( array('name' => 'wxprog_member_take_in') )->find(); $template_id = $pay_order_msg_info['value']; $url =C('SITE_URL'); $pagepath = 'pages/dan/me'; send_wxtemplate_msg($template_data,$url,$pagepath,$share_member['we_openid'],$template_id,$member_formid_info['formid']); M('member_formid')->where( array('id' => $member_formid_info['id']) )->save( array('state' => 1) ); } } } echo json_encode(array('code' =>1,'member_id' => $member_id)); die(); } /** 获取用户信息 **/ public function me() { $token = I('get.token'); $weprogram_token = M('weprogram_token')->field('member_id')->where( array('token' =>$token) )->find(); if(empty($weprogram_token)) { $data = array('code' =>1); } else{ $member_info = M('member')->field('name,avatar')->where( array('member_id' => $weprogram_token['member_id']) )->find(); $user_info = array(); $user_info['headimgurl'] = $member_info['avatar']; $user_info['nickname'] = $member_info['name']; $data = array('code' =>0, 'user_info' => $user_info); } echo json_encode($data); die(); } private function xml($xml){ $p = xml_parser_create(); xml_parse_into_struct($p, $xml, $vals, $index); xml_parser_free($p); $data = ""; foreach ($index as $key=>$value) { if($key == 'xml' || $key == 'XML') continue; $tag = $vals[$value[0]]['tag']; $value = $vals[$value[0]]['value']; $data[$tag] = $value; } return $data; } function http_request($url,$data = null,$headers=array()) { $curl = curl_init(); if( count($headers) >= 1 ){ curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); } curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } private function sign($data){ $stringA = ''; foreach ($data as $key=>$value){ if(!$value) continue; if($stringA) $stringA .= '&'.$key."=".$value; else $stringA = $key."=".$value; } $wx_key = $this->pay_key; $stringSignTemp = $stringA.'&key='.$wx_key; return strtoupper(md5($stringSignTemp)); } private function nonce_str(){ $result = ''; $str = 'QWERTYUIOPASDFGHJKLZXVBNMqwertyuioplkjhgfdsamnbvcxz'; for ($i=0;$i<32;$i++){ $result .= $str[rand(0,48)]; } return $result; } }