File "CryptoWithdaw.php"
Full Path: /home/fundopuh/trader.fxex.org/app/Http/Livewire/User/CryptoWithdaw.php
File size: 4.5 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// this Code is Cracked by dharunMods-YouTube-Channel
namespace App\Http\Livewire\User;
use App\Mail\NewNotification;
use App\Models\BncTransaction;
use App\Models\Settings;
use App\Models\User;
use App\Models\Wdmethod;
use App\Traits\BinanceApi;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;
use Livewire\Component;
class CryptoWithdaw extends Component
{
use BinanceApi;
public $payment_mode;
public $otpCode;
public $amount;
public function render()
{
$settings = Settings::select('theme')->find(1);
return view("{$settings->theme}.livewire.user.crypto-withdaw");
}
public function requestOtp()
{
sleep(2);
$code = $this->RandomStringGenerator(5);
$user = Auth::user();
User::where('id', $user->id)->update([
'withdrawotp' => $code,
]);
$message = "You have initiated a withdrawal request, use the OTP: $code to complete your request.";
$subject = "OTP Request";
Mail::to($user->email)->send(new NewNotification($message, $subject, $user->name));
session()->flash('status', 'Action Successful!, OTP have been sent to your email');
}
public function withdraw()
{
$settings = Settings::where('id', '1')->first();
$method = Wdmethod::where('name', $this->payment_mode)->first();
//get user
$user = User::where('id', Auth::user()->id)->first();
if ($method->charges_type == 'percentage') {
$charges = $this->amount * $method->charges_amount / 100;
} else {
$charges = $method->charges_amount;
}
$to_withdraw = $this->amount + $charges;
if (Auth::user()->sendotpemail == "Yes" and $this->otpCode != Auth::user()->withdrawotp) {
session()->flash('error', 'OTP is incorrect, please recheck the code');
} elseif ($settings->enable_kyc == "yes" and Auth::user()->account_verify != "Verified") {
session()->flash('error', 'Your account must be verified before you can make withdrawal. please complete your KYC verification');
} elseif (Auth::user()->account_bal < $to_withdraw) {
session()->flash('error', 'Sorry, your account balance is insufficient for this request.');
} elseif ($this->amount < $method->minimum) {
session()->flash("error", "Sorry, The minimum amount you can withdraw is $settings->currency$method->minimum, please try another payment method.");
} else {
$http_response = $this->payout($this->amount, $this->RandomStringGenerator(10), $user->email);
$data = json_decode($http_response);
if ($data->status == "FAIL") {
session()->flash('error', 'Something went wrong, please contact our support team if problem persist');
// send mail to admin
Mail::to($settings->contact_email)->send(new NewNotification("There was a failed USDT withdrawal from your Binance account by $user->name, possible reasons maybe insufficient fund. Please login your binance account or your website to view more details and take neccesary action", "Failed USDT Withdrawal from your Binance account.", 'Admin'));
} else {
// get values from api.
$values = $data->data;
$brecord = new BncTransaction();
$brecord->user_id = Auth::user()->id;
$brecord->prepay_id = $values->requestId;
$brecord->type = 'Withrdawal';
$brecord->status = 'Pending';
$brecord->save();
//debit user
User::where('id', $user->id)->update([
'account_bal' => $user->account_bal - $to_withdraw,
'withdrawotp' => NULL,
]);
Mail::to($settings->contact_email)->send(new NewNotification("There was a successful USDT withdrawal from your Binance account by $user->name", "Successful USDT Withdrawal from your Binance account.", 'Admin'));
}
}
}
// for front end content management
function RandomStringGenerator($n)
{
$generated_string = "";
$domain = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$len = strlen($domain);
for ($i = 0; $i < $n; $i++) {
$index = rand(0, $len - 1);
$generated_string = $generated_string . $domain[$index];
}
// Return the random generated string
return $generated_string;
}
}