'pay_type'=>1, 'status'=>2)); empty($query_foxpay) AND message(-1, '该订单不符合退款条件!'); $query_user = db_find_one('user', array('uid'=>$query_foxpay['uid']), array(), array('rmbs'=>'rmbs')); if($query_foxpay['rmbs'] > $query_user['rmbs']){ message(-1, '该用户余额不足,不符合退款条件!'); } $appid = $arr['pay_appid']; empty($appid) AND message(-1, '支付宝开放平台APPID不能为空!'); $tradeNo = $query_foxpay['trade_no']; $rsaPrivateKey = $arr['pay_privatekey']; empty($rsaPrivateKey) AND message(-1, '开放平台开发助手私钥不能为空!'); $refundAmount = !empty($arr['pay_debug']) ? 0.01 : $query_foxpay['money']; empty($refundAmount) AND message(-1, '退款金额不能为空!'); $aliPay = new AlipayService(); $aliPay->setAppid($appid); $aliPay->setRsaPrivateKey($rsaPrivateKey); $aliPay->setTradeNo($tradeNo); $aliPay->setOutTradeNo($outTradeNo); $aliPay->setRefundAmount($refundAmount); $result = $aliPay->doRefund(); $result = $result['alipay_trade_refund_response']; if($result['code'] && $result['code'] == '10000'){ fox_pay_add_foxlog($query_foxpay['uid'], $outTradeNo, $query_foxpay['rmbs'], 2, 0); //给积分插件传值 db_update('user_foxpay', array('orderid'=>$outTradeNo), array('status'=>4)); message(0, '订单已完成退款!'); }else{ message(-1, $result['sub_msg']); } } function fox_pay_add_foxlog($uid, $orderid, $rmbs = 0, $status = 0, $plus = 0){ global $longip, $time; if(function_exists("fox_score_code_fmt")){ if($uid && $orderid && $rmbs){ $query_user = db_find_one('user', array('uid'=>$uid), array(), array('rmbs'=>'rmbs')); $old_num = $query_user['rmbs']; if($plus == 1){ $new_num = $query_user['rmbs'] + $rmbs; $smg = '{exp3}+'.$rmbs; }else{ $new_num = $query_user['rmbs'] - $rmbs; $smg = '已退款,{exp3}-'.$rmbs; db_update('user', array('uid'=>$uid), array('rmbs-'=>$rmbs)); } $arr = array('uid'=>$uid, 'uip'=>$longip, 'old_num'=>$old_num, 'num'=>$new_num, 'msg_type'=>20, 'exp_type'=>3, 'time'=>$time, 'message'=>$smg, 'orderid'=>$orderid, 'state'=>$status); db_create('user_foxlog', $arr); } } } function fox_pay_get_username($uid){ $q = user_read($uid); if(!empty($q)){ return $q['username']; } } function fox_pay_total_money(){ $query = db_find('user_foxpay', array('pay_type'=>1, 'status'=>2), array(), 1, 999999, '', array('money')); $r = arrlist_sum($query, 'money'); return $r; } function fox_pay_log($s = '', $file = 'paylog'){ if($s){ global $conf, $time, $ip; $day = date('Ym', $time); $mtime = date('Y-m-d H:i:s', $time); $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; $logpath = $conf['log_path'].$day; !is_dir($logpath) AND mkdir($logpath, 0777, true); $s = xn_json_encode($s); $s = "$mtime\t$ip\t$url\r\n$s\r\n"; file_put_contents($logpath."/{$file}.php", $s, FILE_APPEND); } } ?>