Exemplo n.º 1
0
 public function actionDorecharge()
 {
     $uid = Yii::$app->user->id;
     if ($_POST) {
         //用户充值操作
         if (isset($_POST['code']) && isset($_POST['ticket']) && isset($_POST['out_trade_no'])) {
             $validate_code = $_POST['code'];
             $out_trade_no = $_POST['out_trade_no'];
             $ticket = $_POST['ticket'];
             try {
                 $info = sinapay::rechargeComfirm($out_trade_no, $ticket, $validate_code);
                 if ($info['errorNum'] == 0) {
                     echo "充值成功";
                     exit;
                 } elseif ($info['errorNum'] != 0) {
                     echo $info['errorMsg'];
                     exit;
                 }
             } catch (ErrorException $e) {
                 echo $e->getMessage();
                 exit;
             }
         } elseif (isset($_POST['money'])) {
             $phone = Info::find()->andWhere(['member_id' => $uid])->one()->bank_card_phone;
             //60秒发送一次验证码
             $time = time() - 60;
             $count = VerifyCode::find()->andWhere(['type' => 1, 'field' => $phone, 'status' => -1])->orderBy('b_time desc')->one();
             if ($time < $count['b_time']) {
                 $return = array('errorNum' => '1', 'errorMsg' => '请勿重复点击', 'data' => null);
                 echo json_encode($return);
                 exit;
             }
             $money = $_POST['money'];
             //充值金额
             try {
                 $info = sinapay::recharge($uid, $money);
                 echo json_encode($info);
                 exit;
             } catch (ErrorException $e) {
                 echo $e->getMessage();
                 exit;
             }
         } else {
             echo '您提交的信息不完整';
             exit;
         }
     }
 }
Exemplo n.º 2
0
 /**
  * 用户充值短信确认
  * @return array|mixed|string
  */
 public function actionRechargeconfirm()
 {
     $result = App::AppGet();
     try {
         if ($result['errorNum']) {
             $result = array('errorNum' => $result['errorNum'], 'errorMsg' => $result['errorMsg'], 'data' => null);
         } else {
             $data = $result['data'];
             if (array_key_exists('out_trade_no', $data) && array_key_exists('ticket', $data) && array_key_exists('validate_code', $data)) {
                 $out_trade_no = $data['out_trade_no'];
                 $ticket = $data['ticket'];
                 $validate_code = $data['validate_code'];
                 $result = sinapay::rechargeComfirm($out_trade_no, $ticket, $validate_code);
                 if ($result['errorNum'] == '0') {
                     $cinfirm = SinaDeposit::find()->where(['out_trade_no' => $out_trade_no, 'ticket' => $ticket])->one();
                     $uid = $cinfirm->uid;
                     $result = (new sinapay())->findDepositResult($out_trade_no, $uid);
                     $count = 30;
                     while ($result['errorNum'] == '2' && $count--) {
                         sleep(1);
                         $result = (new sinapay())->findDepositResult($out_trade_no, $uid);
                     }
                 }
             } else {
                 $result = array('errorNum' => '1', 'errorMsg' => '参数错误', 'data' => null);
             }
         }
     } catch (ErrorException $e) {
         Yii::error("用户充值短信确认---异常 方法:actionRechargeconfirm 参数:" . json_encode($result['data']), "app");
         Yii::trace($e->getMessage(), "app");
         $result = array('errorNum' => '7', 'errorMsg' => '服务器异常,请联系管理员', 'data' => null);
     }
     $result = App::AppReturn($result);
     return $result;
 }
Exemplo n.º 3
0
 public function actionRecharge()
 {
     $model = UcenterMember::find()->where('id=' . Yii::$app->user->id)->one();
     $uid = Yii::$app->user->id;
     //判断用户是否实名认证
     if (!member::isAuthentic($uid)) {
         header("Content-type: text/html; charset=utf-8");
         echo "<script>alert('您还没有实名制认证');</script>";
         echo "<script>location.href='" . \yii\helpers\Url::to(['setting/setting']) . "'</script>";
         exit;
     } else {
         $result = member::isAuthentic($uid);
     }
     //判断用户是否绑定银行卡
     $is_bind = sinapay::isBinding($uid);
     if ($is_bind['errorNum'] != 0) {
         header("Content-type: text/html; charset=utf-8");
         echo "<script>alert('您还没有绑定银行卡');</script>";
         echo "<script>location.href='" . \yii\helpers\Url::to(['money/bindcard']) . "'</script>";
         exit;
     } elseif ($is_bind['errorNum'] == 0) {
         $result_bind = $is_bind['data'];
         $logo_bind = self::BankInfos();
     }
     //最大提现限额——(后台设置里取值)
     $limitConfig = sinapay::getsiteConfig();
     $deposit_max = 10000;
     $deposit_min = 5;
     $deposit_times = 3;
     if ($limitConfig) {
         $deposit_max = $limitConfig->deposit_max;
         $deposit_min = $limitConfig->deposit_min;
         $deposit_times = $limitConfig->deposit_num;
         //当日充值次数
         $today_num = Log::find()->where('member_id = ' . $uid . '  AND create_at > ' . strtotime(date("Y-m-d")) . ' AND status=1')->count();
     }
     //用户充值操作
     if (isset($_POST['code']) && isset($_POST['ticket']) && isset($_POST['out_trade_no'])) {
         $validate_code = $_POST['code'];
         $out_trade_no = $_POST['out_trade_no'];
         $ticket = $_POST['ticket'];
         try {
             $info = sinapay::rechargeComfirm($out_trade_no, $ticket, $validate_code);
             if ($info['errorNum'] == 0) {
                 echo "充值成功";
                 exit;
             } elseif ($info['errorNum'] != 0) {
                 echo $info['errorMsg'];
                 exit;
             }
         } catch (ErrorException $e) {
             echo $e->getMessage();
             exit;
         }
     } elseif (isset($_POST['money'])) {
         $money = $_POST['money'];
         //充值金额
         try {
             $info = sinapay::recharge($uid, $money);
             echo json_encode($info);
             exit;
         } catch (ErrorException $e) {
             echo $e->getMessage();
             exit;
         }
     }
     $infos_rar = $this->Ucenter();
     //用户数据包
     return $this->render('recharge', compact("today_num", "infos_rar", "result", "result_bind", "model", "logo_bind", "deposit_times", "deposit_min", "deposit_max"));
 }