152 lines
6.6 KiB
PHP
152 lines
6.6 KiB
PHP
<?php
|
|
|
|
namespace AhmadFatoni\ApiGenerator\Controllers\API;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use LaravelSmpp\SmppServiceInterface;
|
|
use TPS\Birzha\Classes\SMPP as SMPPV2;
|
|
use TPS\Birzha\Classes\SMS;
|
|
|
|
class SmsController extends KabinetAPIController
|
|
{
|
|
public function index(SmppServiceInterface $smpp) {
|
|
// $smpp->sendOne(99363432211, 'Hi, this SMS was send via SMPP protocol');
|
|
$tx=new SMPPV2('217.174.228.218', 5019); // make sure the port is integer
|
|
// $tx->debug=true;
|
|
$tx->bindTransmitter("birja","Birj@1");
|
|
// dump('bind transmitter');
|
|
$result = $tx->sendSMS("0773",'99363432211','message');
|
|
// dump('send sms attempt');
|
|
// echo $tx->getStatusMessage($result);
|
|
$tx->close();
|
|
unset($tx);
|
|
return $result;
|
|
|
|
}
|
|
|
|
public function sendSmsCode()
|
|
{
|
|
if($this->user->dial_code != '+993') {
|
|
return response()->json([
|
|
'dial_code' => $this->user->dial_code,
|
|
'result' => 1,
|
|
'message' => [
|
|
'ru' => trans('validation.api.user_not_tm_resident', [], 'ru'),
|
|
'en' => trans('validation.api.user_not_tm_resident', [], 'en'),
|
|
'tm' => trans('validation.api.user_not_tm_resident', [], 'tm'),
|
|
]
|
|
], 400);
|
|
}
|
|
|
|
if($this->user->phone_verified && $this->user->dial_code == '+993') {
|
|
return response()->json([
|
|
'result' => 1,
|
|
'message' => [
|
|
'ru' => trans('validation.api.phone_already_verified', [], 'ru'),
|
|
'en' => trans('validation.api.phone_already_verified', [], 'en'),
|
|
'tm' => trans('validation.api.phone_already_verified', [], 'tm'),
|
|
]
|
|
], 200);
|
|
}
|
|
|
|
$code = random_int(1000, 9999);
|
|
|
|
$result = SMS::send(str_replace(array('+', ' ', '(' , ')', '-'), '', $this->user->username), $code);
|
|
// $result = 0;
|
|
|
|
switch ($result) {
|
|
case 0:
|
|
$this->user->phone_activation_code = $code;
|
|
$this->user->save();
|
|
return response()->json([
|
|
'result' => $result,
|
|
'message' => [
|
|
'ru' => trans('validation.api.sms_sent', [], 'ru'),
|
|
'en' => trans('validation.api.sms_sent', [], 'en'),
|
|
'tm' => trans('validation.api.sms_sent', [], 'tm'),
|
|
]
|
|
], 201);
|
|
break;
|
|
|
|
case 1:
|
|
return response()->json([
|
|
'result' => $result,
|
|
'message' => [
|
|
'ru' => trans('validation.api.sms_not_sent_error', [], 'ru'),
|
|
'en' => trans('validation.api.sms_not_sent_error', [], 'en'),
|
|
'tm' => trans('validation.api.sms_not_sent_error', [], 'tm'),
|
|
]
|
|
], 500);
|
|
break;
|
|
|
|
default:
|
|
return response()->json([
|
|
'result' => $result,
|
|
'message' => [
|
|
'ru' => trans('validation.api.sms_not_sent_error', [], 'ru'),
|
|
'en' => trans('validation.api.sms_not_sent_error', [], 'en'),
|
|
'tm' => trans('validation.api.sms_not_sent_error', [], 'tm'),
|
|
]
|
|
], 500);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public function checkSmsCode(Request $request)
|
|
{
|
|
if($this->user->dial_code != '+993') {
|
|
return response()->json([
|
|
'dial_code' => $this->user->dial_code,
|
|
'status' => false,
|
|
'message' => [
|
|
'ru' => trans('validation.api.user_not_tm_resident', [], 'ru'),
|
|
'en' => trans('validation.api.user_not_tm_resident', [], 'en'),
|
|
'tm' => trans('validation.api.user_not_tm_resident', [], 'tm'),
|
|
]
|
|
], 400);
|
|
}
|
|
|
|
if($this->user->phone_verified && $this->user->dial_code == '+993') {
|
|
return response()->json([
|
|
'status' => false,
|
|
'message' => [
|
|
'ru' => trans('validation.api.phone_already_verified', [], 'ru'),
|
|
'en' => trans('validation.api.phone_already_verified', [], 'en'),
|
|
'tm' => trans('validation.api.phone_already_verified', [], 'tm'),
|
|
]
|
|
], 200);
|
|
}
|
|
|
|
$validator = Validator::make($request->all(), [
|
|
'sms_code' => 'required|digits:4',
|
|
]);
|
|
if($validator->fails()) {
|
|
return response()->json($validator->errors(), 400);
|
|
}
|
|
|
|
if($this->user->phone_activation_code == $request->get('sms_code')) {
|
|
$this->user->phone_verified = true;
|
|
$this->user->phone_activation_code = null;
|
|
$this->user->save();
|
|
return response()->json([
|
|
'status' => true,
|
|
'message' => [
|
|
'ru' => trans('validation.api.phone_verified_message', [], 'ru'),
|
|
'en' => trans('validation.api.phone_verified_message', [], 'en'),
|
|
'tm' => trans('validation.api.phone_verified_message', [], 'tm'),
|
|
]
|
|
], 201);
|
|
} else {
|
|
return response()->json([
|
|
'status' => false,
|
|
'message' => [
|
|
'ru' => trans('validation.api.phone_verification_code_invalid', [], 'ru'),
|
|
'en' => trans('validation.api.phone_verification_code_invalid', [], 'en'),
|
|
'tm' => trans('validation.api.phone_verification_code_invalid', [], 'tm'),
|
|
]
|
|
], 400);
|
|
}
|
|
}
|
|
}
|