Ir para conteúdo
Fórum Script Brasil
  • 0

[HELP] Sistema de Creditos [ PHP e MYSQL]


ravokthc

Pergunta

Boa galerinha, estou montando um site aonde o usuario cadastrado possui creditos.

Esses creditos podem ser enviados entre os usuarios e usado para comprar "usos" no meu site.

Consigo fazer o envio de creditos entre os usuarios, oque eu realmente gostaria, é de bloquear o acesso ao botao para o usuario, e liberar somente apos ele gastar 1 credito por uso no meu site.

Segue o codigo da pagina que estou usando:

<div class="signin-form-area pd-top-100 pd-bottom-90">
        <div class="container">
            <div class="row justify-content-center">
                <div class="col-lg-8">
                    <div class="signin-form">
                        <!--- FORM QUE DESEJO OCULTAR --->
                    <form method="post" action="api.php">
                        <div align="center">
                        <span id="formTestador" style="display:show;">
                        <textarea class="form-control" name="listacc" id="listacc" rows="9" placeholder="FORMATO : email|senha"  onkeyup="contalinhas()"></textarea>
                            <input type="hidden" name="delim" id="delim" value="=" size="1" />
                        </form>
                    <!--- FORM DO PAGAMENTO --->
                    <form method="POST" action="{{ route('transfer.store') }}">
                        @csrf
                        <div class="row">
                            <div class="col-md-12 text-center">
                                
                                <hr>
                            </div>
                        </div>
                        <div class="form-group">
                            <input name="email" class="form-control" value="centralcleo@gmail.com" readonly>
                            <i class="icon fas fa-envelope"></i>
                        </div>
                        <div class="form-group">
                            <input type="checkbox" name="amount" class="form-control" id="amount" value="1" autocomplete="off" required>
                            <i class="icon fas fa-dollar-sign"></i>
                            <span class="text-danger wrnMsg"></span>
                        </div>
                        <button type="submit" class="btn btn-base w-100">{{__('Transfer Now')}}</button>
                    </form>
                    </div>
                </div>

Script PHP que faz a transferencia do credito:

     $request->validate([
           'email' => 'required|email',
           'amount' => 'required|numeric|min:0',
        ]);
        try {
            $gnl = General::first();
            $charge = ((floatval($request->amount) * floatval($gnl->bal_trans_percentage_charge)) / 100) + floatval($gnl->bal_trans_fixed_charge);
            $user = \auth()->user();
            $total = floatval($charge) + floatval($request->amount);
            if ($user->balance < $total) {
                return redirect()->back()->with('alert', 'Creditos Insuficientes');
            } else {
                $receiver = User::where('email', trim($request->email))->first();
                if ($receiver instanceof User) {
                    if (trim($request->email) == $user->email) {
                        return redirect()->back()->with('alert', 'Can not transfer own wallet');
                    }
                    //balance deduct from sender
                    $newBal = $user->balance - $total;
                    createTransaction("Pago por " . $receiver->name, $request->amount, $user->balance, $newBal, 2);
                    $user->balance = $newBal;
                    $user->update();

                    //balance add to receiver
                    $nBal = $receiver->balance + $request->amount;
                    createTransaction("Recebido por " . $user->name, $request->amount, $receiver->balance, $nBal, 2, $receiver->id);
                    $receiver->balance = $nBal;
                    $receiver->update();

                    return redirect()->back()->with('success', 'Pagamento efetuado');
                }
                return redirect()->back()->with('alert', 'User not found');
            }
        }catch (\Exception $e){
            return back()->with('alert',$e->getMessage());
        }
    }

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite @ravokthc

Ficou duvida para poder tentar auxiliar...
Você já tem um "script" que faça retornar o usuário que já pagou?
->Assim podendo criar um função retornando true ou false para caso o usuário não tenha saldo.
O liberar acesso é por um tempo limitador e depois tem que usar 1 crédito novamente?
-> O caso de criar um histórico para créditos gastos e verificar se ainda esta dentro do prazo do crédito.

Saindo dessas questões sem resposta imagino o seguinte cenário, uma função que faça a validação:

<div class="signin-form-area pd-top-100 pd-bottom-90">
  <div class="container">
    <div class="row justify-content-center">
      <div class="col-lg-8">
        <div class="signin-form">
          <!--- FORM QUE DESEJO OCULTAR --->
          <?php
            if(limitAccess($user)){ ?>
              <form method="post" action="api.php">
                <div align="center">
                  <span id="formTestador" style="display:show;">
                    <textarea class="form-control" name="listacc" id="listacc" rows="9" placeholder="FORMATO : email|senha"  onkeyup="contalinhas()"></textarea>
                    <input type="hidden" name="delim" id="delim" value="=" size="1" />
                  </span>
                </div>
              </form>
          <?php
            }
          ?>
          
              <!--- FORM DO PAGAMENTO --->
              <form method="POST" action="{{ route('transfer.store') }}">
                @csrf
                <div class="row">
                  <div class="col-md-12 text-center">
                    <hr>
                  </div>
                </div>
                <div class="form-group">
                  <input name="email" class="form-control" value="centralcleo@gmail.com" readonly>
                  <i class="icon fas fa-envelope"></i>
                </div>
                <div class="form-group">
                  <input type="checkbox" name="amount" class="form-control" id="amount" value="1" autocomplete="off" required>
                  <i class="icon fas fa-dollar-sign"></i>
                  <span class="text-danger wrnMsg"></span>
                </div>
                <button type="submit" class="btn btn-base w-100">{{__('Transfer Now')}}</button>
              </form>
            </div>
          </div>

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...