$params['tid'])); $_W['uniacid'] = $params['uniacid'] ? $params['uniacid'] : $log['uniacid']; $_W['acid'] = pdo_getcolumn('account_wechats' , array( 'uniacid' => $_W['uniacid'] ) , 'acid'); $_W['source'] = $log['source']; $member = pdo_get(PDO_NAME."member",['id'=>$log['mid']],['openid']); $className = $log['plugin']; $ret = [ 'weid' => $log['uniacid'] , 'uniacid' => $log['uniacid'] , 'result' => 'success' , 'type' => $params['type'] , 'tid' => $log['tid'] , 'uniontid' => $log['uniacid'] , 'user' => $member['openid'] , 'fee' => $log['fee'] , 'tag' => $log['tag'] , 'is_usecard' => $log['is_usecard'] , 'card_type' => $log['card_type'] , 'card_fee' => $log['card_fee'] , 'card_id' => $log['card_id'] , 'blendcredit'=> $log['blendcredit'] ]; Util::wl_log('rush_notify2' , PATH_DATA . "rush/data/" , $ret); //写入异步日志记录 //混合支付扣除余额 if($ret['blendcredit'] > 0){ Member::credit_update_credit2($log['mid'],-$ret['blendcredit'],'混合支付['.$log['tid'].']订单支付余额'); } //当订单中存在开卡信息时的操作 $tid = $params['tid']; #1、获取订单信息 if ($log['plugin'] == 'Rush') { $orderInfo = pdo_get(PDO_NAME . "rush_order" , array( 'orderno' => $tid ) , array( 'mid','orderno','uniacid','aid','id','vip_card_id' )); }else if($log['payfor'] == 'Halfcard'){ $orderInfo = pdo_get(PDO_NAME . "halfcard_record" , array( 'orderno' => $tid ) , array( 'mid','orderno','uniacid','aid')); } else { $orderInfo = pdo_get(PDO_NAME . "order" , array( 'orderno' => $tid ) , array( 'mid','orderno','uniacid','aid', 'id','vip_card_id')); } if(empty($member['aid'])){ //给会员添加aid 修改用户所属代理 pdo_update(PDO_NAME."member",array('aid' => $orderInfo['aid']),array('id' => $log['mid'])); } if ($orderInfo['vip_card_id'] > 0 && !empty($orderInfo['vip_card_id'])) { $halftype = pdo_get(PDO_NAME . 'halfcard_type' , array( 'id' => $orderInfo['vip_card_id'] )); #2、获取用户信息 $userInfo = pdo_get(PDO_NAME . "member" , array( 'id' => $orderInfo['mid'] ) , array( 'nickname' , 'mobile' )); $cardid = $orderInfo['vip_card_id']; $username = $userInfo['nickname']; $mobile = $userInfo['mobile']; #3、到期时间计算 if ($cardid) { $mdata = array( 'uniacid' => $_W['uniacid'] , 'mid' => $orderInfo['mid'] , 'id' => $cardid ); $vipInfo = Util::getSingelData('*' , PDO_NAME . "halfcardmember" , $mdata); $lastviptime = $vipInfo['expiretime']; if ($lastviptime && $lastviptime > time()) { $limittime = $lastviptime + $halftype['days'] * 24 * 60 * 60; } else { $limittime = time() + $halftype['days'] * 24 * 60 * 60; } } else { $limittime = time() + $halftype['days'] * 24 * 60 * 60; } #4、开卡信息记录 支付方式:1=余额;2=微信;3=支付宝;4=货到付款 $data = array( 'aid' => $orderInfo['aid'] , 'uniacid' => $_W['uniacid'] , 'mid' => $orderInfo['mid'] , 'orderno' => createUniontid() , 'status' => 1 ,//订单状态:0未支,1支付,2待发货,3已发货,4已签收,5已取消,6待退款,7已退款 'createtime' => TIMESTAMP , 'price' => $halftype['price'] , 'limittime' => $limittime , 'typeid' => $halftype['id'] , 'howlong' => $halftype['days'] , 'todistributor' => $halftype['todistributor'] , 'cardid' => $cardid , 'username' => $username , 'mobile' => $mobile ); $data['paytype'] = $params['type']; $data['paytime'] = time(); pdo_insert(PDO_NAME . 'halfcard_record' , $data); $recordid = pdo_insertid(); //分销 if (p('distribution') && empty($halftype['isdistri'])) { $_W['aid'] = $orderInfo['aid']; $disorderid = Distribution::disCore($orderInfo['mid'] , $data['price'] , $halftype['onedismoney'] , $halftype['twodismoney'] , $halftype['threedismoney'] , $recordid , 'halfcard' , 1); pdo_update(PDO_NAME . 'halfcard_record' , array( 'disorderid' => $disorderid ) , array( 'id' => $recordid )); } #5、成功开通会员卡 $halfcarddata = array( 'uniacid' => $_W['uniacid'] , 'aid' => $data['aid'] , 'mid' => $data['mid'] , 'expiretime' => $data['limittime'] , 'username' => $data['username'] , 'levelid' => $halftype['levelid'] , 'createtime' => time() ); pdo_insert(PDO_NAME . 'halfcardmember' , $halfcarddata); } if ($params['type'] == 2 && $params['bank_type'] != 'OTHERS'){ //银行卡返现 $set = Setting::wlsetting_read('payback'); if($set['status'] > 0){ $rate = pdo_getcolumn(PDO_NAME.'payback_bank',array('uniacid'=>$_W['uniacid'],'bank'=>$params['bank_type']),'rate'); if($rate > 0){ $price = sprintf("%.2f",$ret['fee'] * $rate / 100); if($price>0){ Payback::payCore(0,$orderInfo['mid'],-2,'sys',$price,$orderInfo['orderno'],$orderInfo['id'],$orderInfo['uniacid'],$orderInfo['aid'],0,$params['bank_type']); } } } } //开卡操作的结束 pdo_update(PDO_NAME . 'paylogvfour' , [ 'status' => 1 , 'type' => $params['type'] ,'transaction_id'=>$params['transaction_id'],'pay_order_no'=>$params['pay_order_no']] , ['tid' => $params['tid'] , 'uniacid' => $_W['uniacid'] ]); $ret['from'] = 'notify'; $functionName = 'pay' . $log['payfor'] . 'Notify'; $className::$functionName($ret); } }