Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
WIKIPEDIA
/
imaliapi
/
app
/
Classes
:
SmsManager.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Classes; use App\Imali\ImaliAccount; use App\Store; use App\User; use Illuminate\Support\Facades\Http; class SmsManager { protected string $country_code; protected string $country_code_final; protected TransactionGeneration $token; protected SendSMSSislog $sislog; public function __construct() { $this->country_code = '258'; $this->country_code_final = '+258'; $this->token = new TransactionGeneration(); $this->sislog = new SendSMSSislog(); } public function sendSMSPurchaseCredelec($data, $phone): void { $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $phone); $data = [ // "content" => "iMali Credelec " . "\n" . $data . "\n" . trans('slogan'), "content" => $data, 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function smsVerifyUser($data): void { $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $data['phone']); $data = [ //"content" => "Codigo de Validacao: " . $data['codigo'] . "\n" . "Diferente, Como Tu!", "content" => "<#> Codigo de Validacao: " . $data['codigo'] . "\n" . "Diferente, Como Tu! " . $data['signature'], 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function smsVerifyUserDevice($data): void { $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $data['phone']); $data = [ // "content" => "Caro cliente ". $data['username']. ", valide a sua identidade atraves do seguinte codigo: " . $data['codigo'] . "\n" . "Diferente, Como Tu!", "content" => "Caro cliente " . $data['username'] . ", estas a tentar fazer login em outro dispositivo. Valide a sua identidade atraves do seguinte codigo: " . $data['codigo'], 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function tokenPayment($data): void { $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $data['phone']); $data = [ "content" => trans('token_payment') . $data['token'] . "\n" . trans("slogan"), 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendMessageToClientePayment($data): void { $payerUser = User::query()->where('id', $data['sender_id'])->first(); $comerciante = Store::query()->where('id', $data['store_id'])->first(); $imali = ImaliAccount::query()->where('user_id', $payerUser->id)->first(); $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $payerUser->phone); $data = [ "content" => trans("congrats") . " " . strtok($payerUser->name, " ") . "\n" . trans('confirmed') . " " . $data['transaction_id'] . "\n" . trans('at') . " " . $data['created_at'] . "\n" . trans('paid') . " " . $data['amount'] . "MT" . " " . trans('merchant') . " " . $comerciante->account_number . "-" . $comerciante->name . "\n" . trans('slogan'), 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendMessageToCustomerPayment($data, $payment): void { $payerUser = User::query()->where('id', $payment['sender_id'])->first(); $comerciante = Store::query()->where('id', $payment['store_id'])->first(); $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $payerUser->phone); $data = [ "content" => trans("congrats") . " " . strtok($payerUser->name, " ") . "\n" . trans('confirmed') . " " . $payment['transaction_id'] . "\n" . trans('at') . " " . $payment['created_at'] . "\n" . trans('received') . " " . $data['amount'] . "MT" . " " . trans('merchant') . " " . $comerciante->account_number . "-" . $comerciante->name . "\n" . trans('slogan'), 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendSMSForUserRecharge($data): void { if (User::is_subAccount($data['account_number'])) { $account = User::getAccount($data['account_number']); $user = User::getUserDetails($account->user_id); } else { $account = User::getAccount($data['account_number']); $user = User::getUserDetails($account->user_id); } //$user = ImaliAccount::query() // ->join('users', 'users.id', '=', 'imali_accounts.user_id') // ->where('imali_accounts.id', $data->imali_account_id) // ->first(); $finalPhone = preg_replace("/^\+?{$this->country_code}/", '', $user->phone); $data = [ "content" => trans('congrats') . " " . $user->name . "!" . "\n" . trans('confirmed') . " " . $data['transaction_id'] . "." . "\n" . trans('at') . " " . $data['created_at'] . "\n" . trans('recharged_with') . " " . $data['amount'] . "MT" . " " . trans('in_account') . " " . $account->account_number . "." . "\n" . trans('slogan'), 'phone' => $this->country_code_final . $finalPhone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendNotification($data) { $data = [ "content" => $data['message'] . "\n" . "iMali, diferente como tu!", 'phone' => $this->country_code_final . $data['phone'], 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendSMSToComerciante($data): void { $payerUser = User::query()->where('id', '=', $data['sender_id'])->first(); $store = Store::query()->where('id', '=', $data['store_id'])->first(); $imali = ImaliAccount::query()->where('user_id', '=', $payerUser->id)->first(); $data = [ "content" => "Parabens " . $store->name . "\n" . "Confirmado " . $data['transaction_id'] . "\n" . "Aos " . $data['created_at'] . "\n" . "Recebeste " . $data['amount'] . "MT do " . strtok($payerUser->name, " ") . "-" . $imali->account_number . "\n" . "iMali, diferente como tu!", 'phone' => $this->country_code_final . $store->mobile_phone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function sendSMSToClient($data): void { $payerUser = User::query() ->leftJoin('user_documents', 'user_documents.user_id', 'users.id') ->where('users.id', '=', $data['user_id'])->first(); $data = [ "content" => "Caro cliente " . $payerUser->name . " o teu " . $payerUser->document_type . " expirou. A tua conta encontra-se limitada a 300 MT por transacao.", 'phone' => $this->country_code_final . $payerUser->phone, // 'phone' => '842592349', 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function notifyAdminTopUpBalance($balance, $account, $service): void { $data = [ "content" => 'ALERTA iMali: saldo topup abaixo de ' . number_format($service->min_amount, 2, ",", ".") . "MT" . ' . Saldo actual: ' . number_format($balance, 2, ",", ".") . "MT" . ' Carregue a conta Topup.', 'phone' => $this->country_code_final . $account->phone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } public function notifyAdminSMSBalance($balance, $account, $service): void { $data = [ "content" => 'ALERTA iMali: saldo Sislog de sms abaixo de ' . number_format($service->min_amount, 2, ",", ".") . "MT" . ' . Saldo actual: ' . number_format($balance, 2, ",", ".") . "MT" . ' Carregue a conta Sislog SMS.', 'phone' => $this->country_code_final . $account->phone, 'transaction' => $this->token->generateMSID() ]; $this->sislog->sendSms($data); } }