param(); Log::write('notify begin', 'fuyou'); Log::write($param, 'fuyou'); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('验证失败', 'fuyou'); } $finance = new Finance(); //传入第三方订单号 $result = $finance->userRecharge_notify($msg, $param['mchnt_txn_ssn'], $param['amt'], $param['login_id']);//消息提示,流水号,金额,手机号 Log::write($msg, 'fuyou'); if(!$result) { $str = ''. ''.'1111'.''. ''.$gold->getMchID().''. ''.$param['mchnt_txn_ssn'].''. ''; Log::write($str, 'fuyou'); $sign = $gold->rsaSign($str); Log::write('end', 'fuyou'); return ''. ''. $str. ''.$sign.''. ''; } $str = ''. ''.'0000'.''. ''.$gold->getMchID().''. ''.$param['mchnt_txn_ssn'].''. ''; Log::write($str, 'fuyou'); $sign = $gold->rsaSign($str); Log::write('end', 'fuyou'); return ''. ''. $str. ''.$sign.''. '';*/ } //充值实时同步 public function rechargePage() { $param = Request::instance()->param(); $this->assign('from', isset($param['from']) ? $param['from'] : ''); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('充值验证失败', 'fuyou'); $this->assign('icon', 2); return $this->fetch(); } if($param['resp_code'] != '0000') { $this->assign('icon', 2); return $this->fetch(); } $userRecharge = UserRecharge::get([ 'outerNumber'=>$param['mchnt_txn_ssn'] ]); if(!$userRecharge) { $this->assign('icon', 2); return $this->fetch(); } $bank = Bank::get($userRecharge['bankID']); $this->assign('bankNumber', substr($userRecharge['bankNumber'], (strlen($userRecharge['bankNumber'])-4))); $this->assign('bankName', $bank['bankName']); $this->assign('money', $userRecharge['money']); $this->assign('icon', 1); return $this->fetch(); } //充值实时异步 public function rechargeNotify() { $param = Request::instance()->param(); Log::write('notify begin', 'fuyou'); Log::write($param, 'fuyou'); Log::write('end', 'fuyou'); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('充值验证失败', 'fuyou'); } if($param['resp_code'] != '0000') { exit; } $finance = new Finance(); $finance->userRecharge_notify($msg, $param['mchnt_txn_ssn'], $param['amt'], $param['login_id']); Log::write($msg, 'fuyou'); } //提现接口通知,2分钟之后调用 public function drawcash() { //Log::info(request()); } //提现实时同步 public function drawcashPage() { /*$this->assign('bankNumber', '123123123123123123123123'); $this->assign('bankName', '中国旗舰银行'); $this->assign('money', '200.00'); $this->assign('reachTime', '2012年2月12 下周二'); $this->assign('icon', 1); $this->assign('from', isset($param['from']) ? $param['from'] : ''); return $this->fetch();*/ $param = Request::instance()->param(); $this->assign('from', isset($param['from']) ? $param['from'] : ''); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('提现验证失败', 'fuyou'); $this->assign('icon', 2); return $this->fetch(); } //更新userDrawcash可能和异步重复,但是不影响业务 //$finance = new Finance(); //$finance->userDrawcash_notify($msg, $param['mchnt_txn_ssn'], $param['amt'], $param['login_id']); //Log::write($msg, 'fuyou'); if($param['resp_code'] != '0000') { $this->assign('icon', 2); return $this->fetch(); } $userDrawcash = UserDrawcash::get([ 'outerNumber'=>$param['mchnt_txn_ssn'] ]); if(!$userDrawcash) { $this->assign('icon', 2); return $this->fetch(); } $weekIndex= date("w",strtotime(Common::timetodate(THINK_START_TIME, 0))); $reachTime = ''; if($weekIndex == 5) { $reachTime = '预计下周一'.Common::timetodate(THINK_START_TIME, 7).'前到账'; } else { $reachTime = '预计明日'.Common::timetodate(THINK_START_TIME, 7).'前到账'; } $bank = Bank::get($userDrawcash['bankID']); $this->assign('bankNumber', substr($userDrawcash['bankNumber'], (strlen($userDrawcash['bankNumber'])-4))); $this->assign('bankName', $bank['bankName']); $this->assign('money', $userDrawcash['money']); $this->assign('reachTime', $reachTime); $this->assign('icon', 1); return $this->fetch(); } //提现实时异步 public function drawcashNotify() { $param = Request::instance()->param(); Log::write('notify begin', 'fuyou'); Log::write($param, 'fuyou'); Log::write('end', 'fuyou'); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('提现验证失败', 'fuyou'); } $finance = new Finance(); $finance->userDrawcash_notify($msg, $param['mchnt_txn_ssn'], $param['amt'], $param['login_id']); Log::write($msg, 'fuyou'); } //交易接口通知,2分钟之后调用 public function trade() { /*Log::info(request()); $param = Request::instance()->param(); Log::write('notify begin', 'fuyou'); Log::write($param, 'fuyou'); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['amt'].'|'.$param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'], $param['signature']); if(!$check) { Log::write('验证失败', 'fuyou'); } $finance = new Finance(); //传入第三方订单号 $result = $finance->userRecharge_notify($msg, $param['mchnt_txn_ssn']); Log::write($msg, 'fuyou'); if(!$result) { $str = ''. ''.'1111'.''. ''.$gold->getMchID().''. ''.$param['mchnt_txn_ssn'].''. ''; Log::write($str, 'fuyou'); $sign = $gold->rsaSign($str); Log::write('end', 'fuyou'); return ''. ''. $str. ''.$sign.''. ''; } $str = ''. ''.'0000'.''. ''.$gold->getMchID().''. ''.$param['mchnt_txn_ssn'].''. ''; Log::write($str, 'fuyou'); $sign = $gold->rsaSign($str); Log::write('end', 'fuyou'); return ''. ''. $str. ''.$sign.''. '';*/ } //退票接口通知,2分钟之后调用 public function refundTicket() { Log::info(request()); } //修改用户信息接口通知,2分钟之后调用 public function updateUser() { Log::info(request()); } //注销用户实时同步 public function cancelUser() { $param = Request::instance()->param(); $this->assign('from', isset($param['from']) ? $param['from'] : ''); Log::write('canceluser notify begin', 'fuyou'); Log::write($param, 'fuyou'); Log::write('end', 'fuyou'); vendor('fuyou.Gold'); $gold = new \Gold(); $check = $gold->rsaVerify($param['login_id'].'|'.$param['mchnt_cd'].'|'.$param['mchnt_txn_ssn'].'|'.$param['resp_code'].'|'.$param['resp_desc'], $param['signature']); if(!$check) { $this->assign('icon', 2); return $this->fetch(); } if($param['resp_code'] != '0000') { $this->assign('msg', $param['resp_desc']); $this->assign('icon', 2); return $this->fetch(); } $userCancelLog = UserCancelLog::get([ 'outerNumber'=>$param['mchnt_txn_ssn'] ]); if(!$userCancelLog) { $this->assign('icon', 2); return $this->fetch(); } $userCancelLog['status'] = UserCancelLog::STATUS_SUCCESS; $userCancelLog['resultTime'] = THINK_START_TIME; $userCancelLog->save(); User::update([ 'status'=>User::STATUS_UNBANDING, 'token'=>'', 'tokenOverTime'=>0 ], [ 'userID'=>$userCancelLog['userID'] ]); $this->assign('icon', 1); return $this->fetch(); } }