Index.inc.php

来自通约智库
跳转至: 导航搜索

<?php /**

* Created by PhpStorm.
* User: yzg
* Date: 2016/1/19
* Time: 11:37
*/

if (!defined('IN_DISCUZ')) {

   exit('Access Denied');

} //ini_set('display_errors', 1); //error_reporting(E_ALL ^ E_NOTICE);

class plugin_xigua_re{

   function common(){
       global $_G;
       if($_G['basescript'] =='group'){
           $config = $_G['cache']['plugin']['xigua_re'];
           if($config['needgroup']){
               $_G['basescript'] = 'forum';
           }
       }
   }

}

class plugin_xigua_re_portal extends plugin_xigua_re {

   function view_article_content_output(){
       global $article,$postlist;
       $authorinfo = getuserbyuid($article['uid']);
       $postlist[0]['authorid'] = $article['uid'];
       $postlist[0]['first'] = 1;
       $postlist[0]['groupid'] = $authorinfo['groupid'];
       $postlist[0]['subject'] = $article['title'];
       $postlist[0]['pid'] = 'a_'.$article['aid'];
       $_G['fid'] = 0;
       global $ispc;
       $ispc = 1;
       $ret = mobileplugin_xigua_re_forum::viewthread_postbottom_mobile_output();
       return $ret[0];
   }

} class mobileplugin_xigua_re_portal extends plugin_xigua_re_portal {

   function view_article_content_output(){
       global $article,$postlist;
       $authorinfo = getuserbyuid($article['uid']);
       $postlist[0]['authorid'] = $article['uid'];
       $postlist[0]['first'] = 1;
       $postlist[0]['groupid'] = $authorinfo['groupid'];
       $postlist[0]['subject'] = $article['title'];
       $postlist[0]['pid'] = 'a_'.$article['aid'];
       $_G['fid'] = 0;
       global $ispc;
       $ispc = 0;
       $ret = mobileplugin_xigua_re_forum::viewthread_postbottom_mobile_output();
       return $ret[0];
   }

}

class plugin_xigua_re_forum extends plugin_xigua_re {

   public static function viewthread_postbottom_output(){
       global $ispc;
       $ispc = 1;
       $ret = mobileplugin_xigua_re_forum::viewthread_postbottom_mobile_output();
       return $ret;
   }

} class mobileplugin_xigua_re_forum extends plugin_xigua_re {

   public static function getstyle($ispc, $color)
   {
       $reword = $ispc ? 'text-align: center; font-size: 18px;color: #666;line-height: 36px;clear:both;' : 'font-size:16px;text-align:center;padding-top:10px;color:#909090;clear:both;width:100%;';
       $relistli = $ispc ? 'margin:0 6px 6px 0;float:left' : 'display:inline-block;margin:0 6px 6px 0;vertical-align:top';
       $html = ;
       include_once template('xigua_re:style');
       $style = $html;
       return $style;
   }
   public static function viewthread_postbottom_mobile_output(){
       include_once DISCUZ_ROOT.'./source/plugin/xigua_re/common.php';
       global $_G,$postlist,$ispc;
       $config = $_G['cache']['plugin']['xigua_re'];
       $color = $config['linkcolor'] ? $config['linkcolor'] : '#D75847';
       $hasstyle = 0;
       $data = array();
       $style = self::getstyle($ispc, $color);
       $yuan = lang('plugin/xigua_re', 'yuan');
       $ren = lang('plugin/xigua_re', 'ren');
       $wuhui = lang('plugin/xigua_re', 'wuhui');
       $lijida = lang('plugin/xigua_re', 'lijida');
       $guanbi = lang('plugin/xigua_re', 'guanbi');
       $qing = lang('plugin/xigua_re', 'qing');
       $pcjs = ;
       include_once template('xigua_re:pcjs');
       $authors = array();
       foreach (array_values($postlist) as $item) {
           $authors[] = $item['authorid'];
       }
       $users = C::t('#xigua_re#xgre_user')->fetch_by_uids($authors);
       foreach (array_values($postlist) as $index => $item) {
           /*
           $mem = C::t('common_member')->fetch($item['authorid']);
           foreach(explode("\t", $mem['extgroupids']) as $extgroupid) {
               if($extgroupid = intval(trim($extgroupid))) {
                   $groupidarray[] = $extgroupid;
               }
           }
           if(!in_array($item['groupid'], unserialize($config['opengroups'])) && !array_intersect(unserialize($config['opengroups']), $groupidarray)){
               $data[$index] = ;
               continue;
           }
           */
           if(!in_array($item['groupid'], unserialize($config['opengroups']))){
               $data[$index] = ;
               continue;
           }
           if($_G['fid'] && in_array($_G['fid'], unserialize($config['closefids']))){
               $data[$index] = ;
               continue;
           }
           if($config['first'] && !$item['first']){
               $data[$index] = ;
               continue;
           }
           $user = $users[$item['authorid']];
           if(!$user['openid']){
               if($config['needopenid']){
                   $data[$index] = ;
                   continue;
               }
           }
           if(!$user['word']){
               $user['word'] = $config['preword'];
           }
           $postid = 'pid_'.$item['pid'];
           $tid = $item['tid'];
           $url = urlencode(re_current_url());
           $subject = $item['subject'];
           $subject = urlencode($subject);
           $imgs = $reilist = ;
           $dlist = array();
           $count = C::t('#xigua_re#xgre_order')->fetch_usercount_by_postid($postid);
           if($count){
               $dlist = $list = C::t('#xigua_re#xgre_order')->fetch_user_by_postid($postid);
           }
           if($hasstyle){
               $style = ;
               $pcjs = ;
           }
           $paybtn = ;
           include template('xigua_re:paybtn');
           $data[$index] = $paybtn;
           $hasstyle = 1;
       }
       if($data[0]){
           $data[] = $data[0];
       }
       return $data;
   }

}[root@iZ8vbiqtysky2rwjzode27Z xigua_re]# ^C [root@iZ8vbiqtysky2rwjzode27Z xigua_re]# dir api.class.php cache help.inc.php lang.inc.php notify_wx.php order.inc.php.bak order.inc.php.new setting.inc.php template app.inc.php check.inc.php hook.class.php lib order.inc.php order.inc.php.bak2 pay.inc.php static tixian.inc.php bind.inc.php common.php index.inc.php list.inc.php order.inc.php-4 order.inc.php.c rank.inc.php table uninstall.php [root@iZ8vbiqtysky2rwjzode27Z xigua_re]# ^C [root@iZ8vbiqtysky2rwjzode27Z xigua_re]# cat index.inc.php <?php /**

* Created by PhpStorm.
* User: yzg
* Date: 2016/1/28
* Time: 16:24
*/

if (!defined('IN_DISCUZ')) {

   exit('Access Denied');

}

//ini_set('display_errors', 1); //error_reporting(E_ALL ^ E_NOTICE);

include_once DISCUZ_ROOT.'./source/plugin/xigua_re/common.php';


$cookie = substr(md5('rewechatopenid'.$_G['siteurl'].WX_APPID.WX_MCHID.WX_APPSECRET), 0, 8); $config['jin'] = explode(',', trim($config['jin'])); foreach ($config['jin'] as $item) {

   if ($item > 0) {
       $configary[] = $item;
   }

}

$touid = intval($_GET['uid']); $touser = getuserbyuid($touid); $toavatar = avatar($touid, 'big', true); $navtitle = $config['linkword'] . $touser['username'];

$user = C::t('#xigua_re#xgre_user')->fetch_user($touid); $toopenid = $user['openid']; if(!$toopenid){

   if($config['needopenid']) {
       dheader('Location:'.dreferer());
       exit;
   }

}

if($_GET['tid']){

   $_GET['subject'] = DB::result_first('select subject from %t where tid=%d', array('forum_thread', $_GET['tid']));

}

if($_GET['url']){

   $_SERVER['HTTP_REFERER'] = $_GET['url'];

}

$color = $config['linkcolor'] ? $config['linkcolor'] : '#D75847'; $tools = new JsApiPay(); if($_GET['ac'] =='pc' && !IN_WECHAT){

   $price = round($_GET['price'], 2);
   if(!$price){
       $subject = $_GET['subject'];
       $postid  = $_GET['postid'];
       $url     = $_GET['url'];
       include_once template('xigua_re:pay3');
   }
   $order_id = C::t('#xigua_re#xgre_order')->get_order_id(
       $fromopenid, $_G['uid'], $touid, $toopenid,
       $price*100,
       $_GET['subject'], $_GET['url'],$_GET['postid'], $_G['cookie']['rewxnickname'], $_G['cookie']['rewxheadimgurl']
   );
   if(!$order_id){
       exit('order_id empty!');
   }
   $body = diconv($navtitle, CHARSET, 'UTF-8');
   $notify = new NativePay();
   $input = new WxPayUnifiedOrder();
   $input->SetBody($body);
   $input->SetAttach($body);
   $input->SetOut_trade_no($order_id);
   $input->SetTotal_fee($price*100);
   $input->SetTime_start(date("YmdHis"));

// $input->SetTime_expire(date("YmdHis", time() + 3600));

   $input->SetGoods_tag($body);
   $input->SetNotify_url($_G['siteurl']. 'source/plugin/xigua_re/notify_wx.php');
   $input->SetTrade_type("NATIVE");
   $input->SetProduct_id($order_id);
   $result = $notify->GetPayUrl($input);
   $url2 = $result["code_url"];
   if(!$url2){
       $img = diconv($result['return_msg'],'UTF-8',CHARSET );
   }else{
       if(class_exists('QRcode')){
           $qrfile = 'source/plugin/xigua_re/cache/o'.$order_id.'.png';
           QRcode::png($url2, DISCUZ_ROOT.$qrfile, QR_ECLEVEL_L, 3);
           $src = $_G['siteurl'].$qrfile;
       }else{
           $src= 'http://qr.liantu.com/api.php?&w=240&bg=ffffff&fg=333333&text='.urlencode($url2);
       }
       $errorsrc= 'http://qr.liantu.com/api.php?&w=240&bg=ffffff&fg=333333&text='.urlencode($url2);
$img = "<img src='$src' onerror=\"this.error=null;this.src='$errorsrc'\" class=\"payqrcode\" />

".lang('plugin/xigua_re', 'sao')."

";
   }
   include_once template('xigua_re:pay2');
   exit;

} elseif($_GET['ac'] == 'jsApi'){

   if(isset($_GET['index']) && isset($configary[$_GET['index']])){
       $price = $configary[$_GET['index']];
   }else{
       $price = round($_GET['price'], 2);
   }
   $fromopenid = $openid = $_G['cookie'][$cookie] ? authcode($_G['cookie'][$cookie], 'DECODE', $authkey) : ;
   if(!$openid && IN_WECHAT){
       exit(json_encode(array('error' => 'openid empty!')));
   }
   $_GET['url'] = str_replace('&mobile=2', , $_GET['url']);
   $order_id = C::t('#xigua_re#xgre_order')->get_order_id(
       $fromopenid, $_G['uid'], $touid, $toopenid,
       $price*100,
       $_GET['subject'], $_GET['url'],$_GET['postid'], $_G['cookie']['rewxnickname'], $_G['cookie']['rewxheadimgurl']
   );
   if(!$order_id){
       exit(json_encode(array('error' => 'order_id empty!')));
   }
   $body = diconv($navtitle, CHARSET, 'UTF-8');
   $input = new WxPayUnifiedOrder();
   $input->SetBody($body);
   $input->SetAttach($body);
   $input->SetOut_trade_no($order_id);
   $input->SetTotal_fee($price*100);
   $input->SetTime_start(date("YmdHis"));

// $input->SetTime_expire(date("YmdHis", time() + 3600));

   $input->SetGoods_tag($body);
   $input->SetNotify_url($_G['siteurl']. 'source/plugin/xigua_re/notify_wx.php');
   if(IN_WECHAT){
       $input->SetTrade_type("JSAPI");
       $input->SetOpenid($openid);
       $order = WxPayApi::unifiedOrder($input);
       $jsApiParameters = $tools->GetJsApiParameters($order);
       echo $jsApiParameters;
   }else{
       $input->SetTrade_type("MWEB");
       $input->SetProduct_id($order_id);
       $input->values['spbill_create_ip'] = re_clientip();
       $result = WxPayApi::unifiedOrder($input);
       $data = array('error' => 0,);
       if($result['return_code'] =='SUCCESS' && $result['result_code'] == 'SUCCESS'){
           $data['mweb_url'] = $result['mweb_url'].'&redirect_url='.urlencode($_SERVER['HTTP_REFERER']);
       }else{
           $data['error'] = $result['return_msg']."({$result['return_code']})";
       }
       echo json_encode($data);
   }
   exit;

} else{

   if(!$_G['uid']){
       $openid = $_G['cookie'][$cookie] ? authcode($_G['cookie'][$cookie], 'DECODE', $authkey) : ;
       if(!$openid){
           $opendata = $tools->GetOpenid();
           if($openid = $opendata['openid']){
               dsetcookie($cookie, authcode($openid, 'ENCODE', $authkey), 7100);
               dsetcookie('reaccesstoken', authcode($opendata['access_token'], 'ENCODE', $authkey), 7200);
           }
       }
       $wxuser = $tools->getUserInfoById(authcode($_G['cookie']['reaccesstoken'], 'DECODE', $authkey), $openid);
   }else{
       $openid = $_G['cookie'][$cookie] ? authcode($_G['cookie'][$cookie], 'DECODE', $authkey) : ;
       if(!$openid && IN_WECHAT){
           $opendata = $tools->GetOnlyOpenid();
           if($openid = $opendata['openid']){
               dsetcookie($cookie, authcode($openid, 'ENCODE', $authkey), 7100);
           }
       }
       $wxuser = array(
           'nickname'   => diconv($_G['username'], CHARSET,'UTF-8'),
           'headimgurl' => avatar($_G['uid'], 'middle', true),
       );
   }
   if($_GET['tid']){
       $_SERVER['HTTP_REFERER'] = $_G['siteurl'].'forum.php?mod=viewthread&tid='.$_GET['tid'];
   }
   $nickname = diconv($wxuser['nickname'],'UTF-8', CHARSET);
   $nickname && dsetcookie('rewxnickname', $nickname, 86400);
   $wxuser['headimgurl'] && dsetcookie('rewxheadimgurl', $wxuser['headimgurl'], 86400);


   $apple = 0;
   if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPod')){
       $apple = 1;
   }
   if($config['tpl']==1){
       include_once template('xigua_re:choose');
   }else{
       include_once template('xigua_re:choose2');
   }

}