/** * 财付通充值回调 */ public function actionNotify() { $data = array(); $data['ver'] = Yii::app()->request->getParam('ver'); $data['charset'] = Yii::app()->request->getParam('charset'); $data['pay_result'] = Yii::app()->request->getParam('pay_result'); $data['pay_info'] = Yii::app()->request->getParam('pay_info'); $data['transaction_id'] = Yii::app()->request->getParam('transaction_id'); $data['sp_billno'] = Yii::app()->request->getParam('sp_billno'); $data['total_fee'] = Yii::app()->request->getParam('total_fee'); $data['fee_type'] = Yii::app()->request->getParam('fee_type'); $data['bargainor_id'] = Yii::app()->request->getParam('bargainor_id'); $data['attach'] = Yii::app()->request->getParam('attach'); $data['sign'] = Yii::app()->request->getParam('sign'); $data['bank_type'] = Yii::app()->request->getParam('bank_type'); $data['bank_billno'] = Yii::app()->request->getParam('bank_billno'); $data['time_end'] = Yii::app()->request->getParam('time_end'); $data['purchase_alias'] = Yii::app()->request->getParam('purchase_alias'); $data['key'] = "ab124def05mgh7839cd33befg632cg04"; $sign = PayOrder::model()->getSign($data); if ($sign != $data['sign']) { exit('fail'); } if ($data['pay_result'] == "0") { $data['sp_billno'] = $data['sp_billno'] - 100000000000; $rows = PayOrder::model()->getOrder($data['sp_billno']); //获取金额和金币 $uid = PayOrder::model()->getOrderUid($data['sp_billno']); //查询UID if ($rows['total_fee'] != $data['total_fee']) { PayOrder::model()->insertTenpayLog($uid, $data); //记录错误日志 exit('fail'); } $order = PayOrder::model()->updateOrder($data); //修改订单信息 $coins = PayOrder::model()->addCoins($uid, $rows['total_coins']); //更新用户账户金币 if ($coins) { Callhistory::model()->setCoinsHistory($uid, $rows['total_coins'], 12, 0); //更新推广员的收入 TgPremote::model()->insertTgIncome($uid, $rows['total_coins']); } if ($order && $coins) { exit('success'); } } }
/** * 充值callback处理 */ public function actionPayCallback() { $p2_Order = Yii::app()->request->getParam('p2_Order'); $p5_CardNo = Yii::app()->request->getParam('p5_CardNo'); $r1_Code = Yii::app()->request->getParam('r1_Code'); $p8_cardStatus = Yii::app()->request->getParam('p8_cardStatus'); $p3_Amt = Yii::app()->request->getParam('p3_Amt'); $paymodel = PayOrder::model()->findByPk($p2_Order - 200000000000); $result = $paymodel->pay_result; if (!$paymodel) { exit; } if ($result == 0) { $epay = new Epay(); if ($p3_Amt != $paymodel->total_fee) { $paymodel->remark = "回调金额与订单不符"; $paymodel->pay_result = -2; } else { if ($r1_Code == 1) { $paymodel->order_id = $p2_Order - 200000000000; $paymodel->pay_result = 1; } else { if ($p8_cardStatus == 1) { $paymodel->pay_result = -1; } else { $paymodel->pay_result = $p8_cardStatus; } $paymodel->remark = $epay->getError($p8_cardStatus); } } $paymodel->total_fee = $p3_Amt; $paymodel->time_update = time(); //获取对应用户的手机号 $mobile = User::model()->getUserMobile($paymodel->uid); if ($paymodel->save()) { //易付通支付详情记录 $epaymodel = $this->loadModel(array("p2_Order" => $p2_Order)); if ($r1_Code == 1) { $epaymodel->status = 1; //更新用户账户金币 $income = $p3_Amt * Yii::app()->params['coinratio']; $coins = PayOrder::model()->addCoins($paymodel->uid, $income); //更新推广员的收入 TgPremote::model()->insertTgIncome($paymodel->uid, $p3_Amt); //添加收入记录 $coinhistory = new Coinshistory(); $coinhistory->Uid = $paymodel->uid; $coinhistory->Coins = $income; $coinhistory->Type = 8; $coinhistory->CallId = 0; $coinhistory->datetime = time(); $coinhistory->save(); //短信通知用户充值结果 $this->sendSMS($mobile, "石榴裙温馨提醒:尊敬的" . $mobile . "用户,您好!您卡号为" . $p5_CardNo . "的充值卡充值成功!充值金额为" . $p3_Amt . "元。", 3); } else { $epaymodel->status = 2; $epaymodel->p8_cardStatus = $p8_cardStatus; $epaymodel->error = $epay->getError($p8_cardStatus); //短信通知用户充值结果 $this->sendSMS($mobile, "石榴裙温馨提醒:尊敬的" . $mobile . "用户,您好!您卡号为" . $p5_CardNo . "的充值卡充值失败,请重新充值。", 3); } $epaymodel->r1_Code = $r1_Code; $epaymodel->p7_realAmount = Yii::app()->request->getParam('p7_realAmount'); $epaymodel->pb_BalanceAmt = Yii::app()->request->getParam('pb_BalanceAmt'); $epaymodel->pc_BalanceAct = Yii::app()->request->getParam('pc_BalanceAct'); if ($coins) { echo "success"; } } else { print_r($paymodel->errors); } } }
/** * 添加推广号 */ public function actionAddPremote() { if (!isset($_POST['uid']) || !$_POST['uid']) { $this->_exit($this->_error['20007'], '20007'); } if (!isset($_POST['tuid']) || !$_POST['tuid']) { $this->_exit($this->_error['20063'], '20063'); } $params = array(); $params['tuid'] = intval($_POST['tuid']); $params['uid'] = trim($_POST['uid']); $tuid = $params['tuid'] - Yii::app()->params['tgbase']; $user = User::model()->findByPk($params['uid']); $params['regtime'] = $user['RegisterTime']; //判断推广号是否存在 $u = User::model()->findByPk($tuid); if (!$u) { $this->_exit($this->_error['20064'], '20064'); } //判断记录是否已存在 $pro = TgPremote::model()->findOne($params['uid'], $tuid); if (!empty($pro)) { $this->_exit($this->_error['20065'], '20065'); } if (TgPremote::model()->addPremote($params)) { //添加推广号的奖励(此处奖励新用户,推广员的奖励统一由推广员系统后台脚本发放) $incoins = Yii::app()->params['profl'] * Yii::app()->params['coinratio']; $usercoin = Usercoins::model()->findByPk($params['uid']); $usercoin->FreeCoins = $usercoin->FreeCoins + $incoins; $usercoin->save(); //添加收入记录 $inhistory = new Coinshistory(); $inhistory->Uid = $params['uid']; $inhistory->Coins = Yii::model()->params['profl']; $inhistory->Type = 2; $inhistory->CallId = 0; $inhistory->datetime = time(); $inhistory->save(); $this->_exit($this->_error['20000'], '20000'); } else { $this->_exit($this->_error['21000'], '21000'); } }