*/ class RepairController extends ThinkController { public function repairEdit($orderNo=null,$is_uc=0){ $param['out_trade_no'] = $orderNo; $game = new GameApi(); if($is_uc){ $result=$game->game_pay_notify($param,1,1); }else{ $result=$game->game_pay_notify($param,1); } $spend = M('Spend',"tab_"); if($result == "success"){ $auth = session('user_auth'); // 补单记录 M('repair_pay', 'tab_')->add([ 'admin_id' => $auth['uid'], 'admin_name' => $auth['username'], 'pay_order_number' => $orderNo, 'ip' => get_client_ip(), 'tab' => 'spend', 'create_time' => time(), 'type' => 1 // 补单 ]); $rr = $spend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1)); //操作日志 addOperationLog(array( "op_type"=>1, "key"=> $orderNo, "url"=>U("Spend/lists",array("pay_order_number"=>$orderNo)) )); $this->ajaxReturn(array('status'=>1,'msg'=>'补单成功')); }else{ $this->ajaxReturn(array('status'=>0,'msg'=>'补单失败')); } } /** *编辑绑币补单 */ public function repairBindEdit($orderNo=null){ $bindspend = M('BindSpend',"tab_"); $param['out_trade_no'] = $orderNo; $param['distinction'] = 'bind'; $game = new GameApi(); $result=$game->game_pay_notify($param,2); if($result == "success"){ $rr = $bindspend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1)); $this->ajaxReturn(array('status'=>1,'msg'=>'补单成功')); }else{ $this->ajaxReturn(array('status'=>0,'msg'=>'补单失败')); } } /** * 退款接口 * @param null $orderNo */ public function Refund($orderNo=null){ $map['pay_order_number'] = $orderNo; $order=sp_random_string(4); $res=D('Spend')->Refund($map,$order,md5("mcaseqwezdsi".$order)); if(get_spend_pay_way($orderNo)==1){ if($res=="10000")$this->ajaxReturn(['status'=>1,'msg'=>'退款成功']); if(res&&strlen($res)>50){ $this->ajaxReturn(['status'=>1,'msg'=>$res]); }else{ $this->ajaxReturn(['status'=>1,'msg'=>'错误']); } }elseif(get_spend_pay_way($orderNo)==3){ if($res==1){ $this->ajaxReturn(['status'=>1,'msg'=>'退款申请成功']); }else{ $this->ajaxReturn(['status'=>0,'msg'=>$res]); } }elseif(get_spend_pay_way($orderNo)==4){ if($res==0){ $this->ajaxReturn(['status'=>1,'msg'=>'退款申请成功']); }else{ $this->ajaxReturn(['status'=>0,'msg'=>$res]); } }elseif(get_spend_pay_way($orderNo)==0){ $this->ajaxReturn(['status'=>1,'msg'=>'退款成功']); } } /** * 退款查询借口 * @param [type] $orderNo [订单号] * @param integer $type [1 威富通 2官方] * @return [type] [description] */ public function find_refund($orderNo=null,$type=1){ if($type==1){ $spen=D('Spend')->swiftpass_refund($orderNo); }else{ $spen=D('Spend')->weixin_refundquery($orderNo); } $res=json_decode($spen,true); if($res['status']==1){ $this->ajaxReturn(['status'=>1,'msg'=>'退款成功']); }else{ $this->ajaxReturn(['status'=>1,'msg'=>$res['msg']]); } } /** * 游戏充值补单 */ public function noticePayed($orderNo, $second, $type) { $auth = session('user_auth'); if (IS_AJAX) { if ($type != 'spend' && $type != 'deposit') { $this->ajaxReturn(['status'=>0,'msg'=>'参数有误']); } $tab = $type; if (!$orderNo || !$second) { $this->ajaxReturn(['status'=>0,'msg'=>'参数不足']); } $r = D('Member')->check_sc_pwd($second); if (!$r) { $this->ajaxReturn(['status'=>0,'msg'=>'二级密码错误']); } M($tab, 'tab_')->startTrans(); $order = M($tab, 'tab_')->where(['pay_order_number' => $orderNo])->find(); if ($order['pay_status'] == 1) { M($tab, 'tab_')->rollback(); $this->ajaxReturn(['status'=>0,'msg'=>'支付成功,无需补单']); } $r = M($tab, 'tab_')->where([ 'pay_order_number' => $orderNo, 'pay_status' => 0 ])->save([ 'pay_status' => 1, 'payed_time' => time() ]); if ($r) { $cpFlag = 0; // 0 通知cp失败 1 成功 // 通知cp if ($tab == 'spend') { $param['out_trade_no'] = $orderNo; $game = new GameApi(); $result=$game->game_pay_notify($param,1); $spend = M($tab, "tab_"); if($result == "success"){ $rr = $spend->where(array('pay_order_number'=>$orderNo))->save(array('pay_game_status'=>1)); if ($rr !== false) { $cpFlag = 1; M($tab, 'tab_')->commit(); } else { M($tab, 'tab_')->rollback(); $this->ajaxReturn(array('status'=>1,'msg'=>'补单失败.')); } }else{ M($tab, 'tab_')->commit(); } } else { // deposit $user = M("user","tab_"); $r = $user->where("id=".$order['user_id'])->setInc("balance", $order['pay_amount']); if ($r === false) { M($tab, 'tab_')->rollback(); $this->ajaxReturn(array('status'=>1,'msg'=>'数据有误.')); } $r = $user->where("id=".$order['user_id'])->setInc("cumulative", $order['pay_amount']); if ($r === false) { M($tab, 'tab_')->rollback(); $this->ajaxReturn(array('status'=>1,'msg'=>'数据有误..')); } M('spend', 'tab_')->commit(); } // 通知到账记录 M('repair_pay', 'tab_')->add([ 'admin_id' => $auth['uid'], 'admin_name' => $auth['username'], 'pay_order_number' => $orderNo, 'ip' => get_client_ip(), 'tab' => $tab, 'create_time' => time(), 'type' => 0 ]); if ($tab == 'spend' && $cpFlag === 1) { // 补单记录 M('repair_pay', 'tab_')->add([ 'admin_id' => $auth['uid'], 'admin_name' => $auth['username'], 'pay_order_number' => $orderNo, 'ip' => get_client_ip(), 'tab' => $tab, 'create_time' => time(), 'type' => 1 ]); } // todo: 分红 上级奖励等 if ($tab == 'spend' && $cpFlag == 0) { $this->ajaxReturn(['status'=>0,'msg'=>'充值补单成功,通知CP失败!']); } //操作日志 $optionarr = array( "op_type"=>1, "key"=> $orderNo ); $pay_where = substr($orderNo, 0, 2); if($pay_where == 'SP'){ //游戏充值通知到账 $optionarr['menu'] = "充值-游戏订单-游戏充值-通知到账"; $optionarr['url'] = U("Spend/lists",array("pay_order_number"=>$orderNo)); }elseif($pay_where == 'PF'){ //平台币充值通知到账 $optionarr['menu'] = "充值-平台币订单-平台币充值-通知到账"; $optionarr['url'] = U("Deposit/lists",array("pay_order_number"=>$orderNo)); } addOperationLog($optionarr); $this->ajaxReturn(['status'=>1,'msg'=>'充值补单成功!']); } else { M('spend', 'tab_')->rollback(); $this->ajaxReturn(['status'=>0,'msg'=>'补单失败,请重试']); } } } /** * 平台币充值补单 */ public function platform($orderNo) { if (IS_AJAX) { $payOrderNumber = I('request.pay_order_number'); } } }