0){ $applycountnumber = DB::result_first("SELECT SUM(applynumber) FROM ".DB::table('xj_eventapply')." WHERE tid='$tid' and verify=1"); if($pay_number > ($items['event_number']-$applycountnumber)){ showmessage(lang('plugin/xj_event','baomrsym')); exit(); } } $pay_totalprice = $pay_price * $pay_number; if($_G['charset']=='gbk'){ $pay_subject = cutstr($pay_subject,20,''); $pay_subject = iconv('GBK','UTF-8',$pay_subject); } //如果是多种报名 if($setting['cost']){ if($setting['nodaibaoming']){ $capply = DB::fetch_first("SELECT * FROM ".DB::table('xj_eventapply')." WHERE tid = '$tid' and uid=".$_G['uid']); $capply['ufielddata'] = unserialize($capply['ufielddata']); $price = 0; $paytext = ''; foreach($setting['cost'] as $value){ $paytext = $paytext.$value['cost_name'].' '.$capply['ufielddata']['cost'.$value['id']].' x ¥'.$value['cost_price'].'
'; $price = $price+$capply['ufielddata']['cost'.$value['id']]*$value['cost_price']; } }else{ $capply = DB::fetch_all("SELECT * FROM ".DB::table('xj_eventapply')." WHERE tid = '$tid' and uid=".$_G['uid']); $price = 0; $paytext = ''; foreach($capply as $value){ $value['ufielddata'] = unserialize($value['ufielddata']); $paytext = $paytext.$setting['cost'][$value['ufielddata']['costclass']]['cost_name'].' 1 x ¥'.$setting['cost'][$value['ufielddata']['costclass']]['cost_price'].'
'; $price = $price + $setting['cost'][$value['ufielddata']['costclass']]['cost_price']; } } $pay_totalprice = $price; } //VIP折扣 if(file_exists(DISCUZ_ROOT.'./source/plugin/xj_event/module/vip/wxpay.php')) { @include 'module/vip/wxpay.php'; } if($setting['app_benefit']>0){ $pay_totalprice = $pay_totalprice - $setting['app_benefit']; } if(file_exists($xj_event_wxset = DISCUZ_ROOT.'./data/sysdata/cache_xj_event_wxset.php')) { @include $xj_event_wxset; } $magappsecret = $wxset['magapp_secret']; $tradeno = getRandChar(20); $callback = $_G['siteurl'].'source/plugin/xj_event/event_pay_magapp_notify.php?tradeNo='.$tradeno; //回调地址 $res = get('http'.($_G['isHTTPS']?'s':'').'://'.$wxset['magapp_siteurl'].'/core/pay/pay/unifiedOrder?trade_no='.$tradeno.'&amount='.$pay_totalprice.'&title='.$pay_subject.'&user_id='.$_G['uid'].'&des='.$pay_subject.'&remark='.$pay_subject.'&secret='.$magappsecret.'&callback='.urlencode($callback)); $res = json_decode($res,true); if(!$res['success']){ echo 'http'.($_G['isHTTPS']?'s':'').'://'.$wxset['magapp_siteurl'].'/core/pay/pay/unifiedOrder?trade_no='.$tradeno.'&amount='.$pay_totalprice.'&title='.$pay_subject.'&user_id='.$_G['uid'].'&des='.$pay_subject.'&remark=&secret='.$magappsecret.'&callback='.urlencode($callback); echo $_G['charset'] == 'gbk'?iconv('utf-8','gbk',$res['msg']):$res['msg']; exit; } //数据库生成支付记录 $paylog = array(); $paylog['applyid'] = $apply['applyid']; $paylog['uid'] = $_G['uid']; $paylog['tid'] = $tid; $paylog['tradeno'] = $tradeno; $paylog['paytype'] = 'magapppay'; $paylog['subject'] = $items['subject']; $paylog['price'] = $pay_price; $paylog['buyer_email'] = ''; $paylog['total_fee'] = $pay_totalprice; $paylog['create_time'] = $_G['timestamp']; $paylog['paystate'] = 1; DB::insert("xj_eventpay_log",$paylog); $result['full'] = 1; $result['unionOrderNum'] = $res['data']['unionOrderNum']; $result['price'] = $pay_totalprice; $result['tradeno'] = $tradeno; $result['pay_subject'] = $pay_subject; echo json_encode($result); exit; function get($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); # curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); if (!curl_exec($ch)) { error_log(curl_error($ch)); $data = ''; } else { $data = curl_multi_getcontent($ch); } curl_close($ch); return $data; } function getRandChar($length){ $str = null; $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; $max = strlen($strPol)-1; for($i=0;$i<$length;$i++){ $str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max两个数之间的一个随机整数 } return $str; } ?>