view->fetch(); } public function login() { $id=input('id',1); if(!$id){ $this->error(__('邀请码不对')); } $appid = 'wx2a2d24fbe2383604'; // $cmurl = "jy.chengwuwa.cn/index/index/gzhop/id/".$id;//接口地址 $cmurl = "ts.shanghairongxuan.top/index/index/gzhop/id/".$id;//接口地址 #你的公众号appid $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=https%3a%2f%2f".$cmurl."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; //$url='/login.html'; #redirect_uri改为你的网页授权域名和刚刚跳转到的显示页面,比如我的是getinfoDetail.php header('location:'.$url); } public function gzhop() { $ids=input('id',1); if(!$ids){ $this->error(__('邀请码不对')); } $appid = "wx2a2d24fbe2383604"; $secret = "07b59b4bac2f17edc9e121e3dba6d0b3"; $cmurl = "https://jy.chengwuwa.cn/d/index.html";//前端地址 $code = $_GET["code"]; $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_token_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); $json_obj = json_decode($res,true); //根据openid和access_token查询用户信息 $access_token = $json_obj['access_token']; $openid = $json_obj['openid']; $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$get_user_info_url); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch); //解析json $user_obj = json_decode($res,true); $openid=isset($user_obj['openid'])?$user_obj['openid']:null; $unionid=isset($user_obj['unionid'])?$user_obj['unionid']:null; $nikname=isset($user_obj['nickname'])?$user_obj['nickname']:null; $headimgurl=isset($user_obj['headimgurl'])?$user_obj['headimgurl']:null; $userfxid=Db::name('userfxid')->where('unionid',$unionid)->find(); if($userfxid){ Db::name('userfxid')->where('unionid',$unionid)->update(['fid'=>$ids,'openid'=>$openid,'unionid'=>$unionid]); }else{ Db::name('userfxid')->insertGetId(['fid'=>$ids,'openid'=>$openid,'unionid'=>$unionid]); } $urls=$cmurl.'?iswx=1'; header('location:'.$urls); } public function pay() { $site=config('site'); require_once $_SERVER['DOCUMENT_ROOT']."/wxpay/lib/WxPay.Api.php"; require_once $_SERVER['DOCUMENT_ROOT']."/wxpay/example/WxPay.JsApiPay.php"; require_once $_SERVER['DOCUMENT_ROOT']."/wxpay/example/WxPay.Config.php"; require_once $_SERVER['DOCUMENT_ROOT']."/wxpay/example/log.php"; //初始化日志 $logHandler= new \CLogFileHandler($_SERVER['DOCUMENT_ROOT']."/wxpay/logs/".date('Y-m-d').'.log'); $log = \Log::Init($logHandler, 15); //打印输出数组信息 function printf_info($data) { foreach($data as $key=>$value){ echo "$key : ".htmlspecialchars($value, ENT_QUOTES)."
"; } } $data=[]; $jsApiParameters=[]; $editAddress=[]; if(input('id',0)>0){ $data=Db::name('paylog')->where('id',input('id'))->find(); if($data){ if($data['type']==2){ $this->error(__('已经购买')); } }else{ $this->error(__('查询补单订单信息')); } $data['member']=Db::name('user')->where('id',$data['uid'])->find(); } $notifyurl=$site['imgurl'].'/api/paywx/notifwxh5'; $Total=isset($data['amount'])?$data['amount']*100:0.01; $data['type']=isset($data['type'])?$data['type']:0; if($data['type']==1){ try{ $tools = new \JsApiPay(); $openId = $tools->GetOpenid(); $jsApiParameters=[]; $editAddress=[]; if($openId){ //②、统一下单 $input = new \WxPayUnifiedOrder(); $input->SetBody("商城订单"); $input->SetAttach("商城订单"); $input->SetOut_trade_no($data['out_trade_no']); $input->SetTotal_fee($Total); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("商城订单"); $input->SetNotify_url($notifyurl); $input->SetTrade_type("JSAPI"); $input->SetOpenid($openId); $config = new \WxPayConfig(); $order = \WxPayApi::unifiedOrder($config, $input); //echo '统一下单支付单信息
'; //printf_info($order); $jsApiParameters = $tools->GetJsApiParameters($order); //获取共享收货地址js函数参数 $editAddress = $tools->GetEditAddressParameters(); } } catch(Exception $e) { //Log::ERROR(json_encode($e)); } }else{ } $zt=['1'=>'未付款','2'=>'已付款']; $this->assign('jsApiParameters', $jsApiParameters); $this->assign('editAddress', $editAddress); $this->assign('data', $data); $this->assign('url',$site['imgurl']); $this->assign('zt', $zt); //var_dump($data); if($jsApiParameters and $data){ return $this->fetch(); }else{ //header('Location: '.$data['url'].'/index.php/shop/pay/index?id='.input('id').'&'); } } }