123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- <?php
- namespace app\notify\controller;
- use app\core\model\Bank;
- use app\core\model\User;
- use app\core\model\UserCancelLog;
- use app\core\model\UserDrawcash;
- use app\core\model\UserRecharge;
- use app\core\service\Finance;
- use think\Controller;
- use think\Log;
- use think\Request;
- use tool\Common;
- class Fuyou extends Controller
- {
- //充值接口通知,2分钟之后调用
- public function recharge() {
- /*$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'], $param['amt'], $param['login_id']);//消息提示,流水号,金额,手机号
- Log::write($msg, 'fuyou');
- if(!$result) {
- $str = '<plain>'.
- '<resp_code>'.'1111'.'</resp_code>'.
- '<mchnt_cd>'.$gold->getMchID().'</mchnt_cd>'.
- '<mchnt_txn_ssn>'.$param['mchnt_txn_ssn'].'</mchnt_txn_ssn>'.
- '</plain>';
- Log::write($str, 'fuyou');
- $sign = $gold->rsaSign($str);
- Log::write('end', 'fuyou');
- return '<ap>'.
- '<plain>'.
- $str.
- '<signature>'.$sign.'</signature>'.
- '</ap>';
- }
- $str = '<plain>'.
- '<resp_code>'.'0000'.'</resp_code>'.
- '<mchnt_cd>'.$gold->getMchID().'</mchnt_cd>'.
- '<mchnt_txn_ssn>'.$param['mchnt_txn_ssn'].'</mchnt_txn_ssn>'.
- '</plain>';
- Log::write($str, 'fuyou');
- $sign = $gold->rsaSign($str);
- Log::write('end', 'fuyou');
- return '<ap>'.
- '<plain>'.
- $str.
- '<signature>'.$sign.'</signature>'.
- '</ap>';*/
- }
- //充值实时同步
- 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 = '<plain>'.
- '<resp_code>'.'1111'.'</resp_code>'.
- '<mchnt_cd>'.$gold->getMchID().'</mchnt_cd>'.
- '<mchnt_txn_ssn>'.$param['mchnt_txn_ssn'].'</mchnt_txn_ssn>'.
- '</plain>';
- Log::write($str, 'fuyou');
- $sign = $gold->rsaSign($str);
- Log::write('end', 'fuyou');
- return '<ap>'.
- '<plain>'.
- $str.
- '<signature>'.$sign.'</signature>'.
- '</ap>';
- }
- $str = '<plain>'.
- '<resp_code>'.'0000'.'</resp_code>'.
- '<mchnt_cd>'.$gold->getMchID().'</mchnt_cd>'.
- '<mchnt_txn_ssn>'.$param['mchnt_txn_ssn'].'</mchnt_txn_ssn>'.
- '</plain>';
- Log::write($str, 'fuyou');
- $sign = $gold->rsaSign($str);
- Log::write('end', 'fuyou');
- return '<ap>'.
- '<plain>'.
- $str.
- '<signature>'.$sign.'</signature>'.
- '</ap>';*/
- }
- //退票接口通知,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();
- }
- }
|