send_eventmessage($uid,$tid,1);
$xj_wxmessagecore->send_eventapplymessage($paylog['applyid'],$event_uid,2);
}
}
$return = array();
$return['return_code'] = 'SUCCESS'; //SUCCESS/FAIL SUCCESS表示商户接收通知成功并校验成功
$return['return_msg'] = 'ok'; //返回信息,如非空,为错误原因
echo json_encode($return);
exit;
}
$applyid = intval($_GET['applyid']);
$apply = DB::fetch_first("SELECT tid,applyid,applynumber FROM ".DB::table('xj_eventapply')." WHERE applyid = $applyid and uid=".$_G['uid']);
$tid = $apply['tid'];
$items = DB::fetch_first("SELECT A.*,B.subject FROM ".DB::table('xj_event')." A,".DB::table('forum_thread')." B WHERE A.tid = $tid and A.tid=B.tid");
$setting = unserialize($items['setting']);
$pay_subject = $items['subject'];
$pay_price = $items['use_cost'];
$pay_number = DB::result_first("SELECT sum(applynumber) FROM ".DB::table('xj_eventapply')." WHERE tid = '$tid' and uid=".$_G['uid']);
//判断报名名额是否够,不够就不让支付
if($items['event_number']>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;
}
$tradeno = date('Ymd',$_G['timestamp']).getRandChar(12);
//数据库生成支付记录
$paylog = array();
$paylog['applyid'] = $apply['applyid'];
$paylog['uid'] = $_G['uid'];
$paylog['tid'] = $tid;
$paylog['tradeno'] = $tradeno;
$paylog['paytype'] = 'qfapppay';
$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['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;
}
function paysmssend($tid,$uid){
global $_G;
//调试记录开始
//$log_name="./alipay.txt";//log文件路径
//log_result($log_name,"【接收到的notify通知】:\r\n".$xml."\r\n【返回的信息】:\r\n");
//调试记录结束
$apply = DB::fetch_first("SELECT * FROM ".DB::table('xj_eventapply')." WHERE first=1 AND tid=$tid AND uid=$uid");
$thread = DB::fetch_first("SELECT authorid,userfield,setting,subject,starttime,event_address FROM ".DB::table('forum_thread')." A,".DB::table('xj_event')." B WHERE A.tid=$tid and A.tid = B.tid");
$setting = unserialize($thread['setting']);
$event_starttime = dgmdate($thread['starttime'],'dt');
if($setting['seccode'] == 1){
$message = cutstr($thread['subject'],30).'活动报名成功,人数:'.$apply['applynumber'].'人 验证码:'.$apply['seccode'].' 活动时间:'.$event_starttime;
$sendtype = '报名验证码短信';
if($_G[charset]=='gbk'){
$message = diconv($message,'UTF-8','GBK');
$sendtype = diconv($sendtype,'UTF-8','GBK');
}
sendsms_vcode($apply['mobile'],$thread['subject'],$apply['applynumber'],$apply['seccode']);
//xjsendsms(array($apply['mobile']),$message,$sendtype);
sendpm($apply['uid'],'',$message,$thread['authorid']);
}elseif($setting['success_sms'] == 1){
sendsms_success($apply['mobile'],$thread['subject'],$event_starttime);
//易活动短信
//$smsuid = DB::result_first("SELECT uid FROM ".DB::table('common_member')." WHERE username='".$setting['event_admin'][0]."'");
//$smsmobile = DB::result_first("SELECT mobile FROM ".DB::table('common_member_profile')." WHERE uid=$smsuid");
//sendsms_notice_yhd($apply['mobile'],$thread['subject'],$event_starttime,$thread['event_address'],$smsmobile);
}
}
?>