nikarayan and payment service
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Services\PaymentService;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Province;
|
||||
use App\Models\City;
|
||||
@@ -353,10 +354,10 @@ class ReceiptController extends Controller
|
||||
});
|
||||
}
|
||||
|
||||
public function invoiceBill(Request $request, Accident $accident)
|
||||
public function invoiceBill(Request $request, Accident $accident, PaymentService $paymentService)
|
||||
{
|
||||
try {
|
||||
DB::transaction(function () use ($request, $accident) {
|
||||
DB::transaction(function () use ($request, $accident, $paymentService) {
|
||||
|
||||
$final_amount = $accident->sum - ($accident->deposit_insurance_amount + $accident->deposit_daghi_amount);
|
||||
|
||||
@@ -366,7 +367,7 @@ class ReceiptController extends Controller
|
||||
|
||||
$accident->final_amount = $final_amount;
|
||||
|
||||
$accident->bill_code = $this->invoiceBillApi($accident->driver_national_code, $final_amount);
|
||||
$accident->bill_code = $paymentService->invoiceBillApi($accident->driver_national_code, $final_amount);
|
||||
|
||||
$accident->invoiceBill();
|
||||
|
||||
@@ -396,13 +397,13 @@ class ReceiptController extends Controller
|
||||
return $msg;
|
||||
}
|
||||
|
||||
public function callPaymentStatus(Request $request, Accident $accident)
|
||||
public function callPaymentStatus(Request $request, Accident $accident, PaymentService $paymentService)
|
||||
{
|
||||
try {
|
||||
DB::transaction(function () use ($request, $accident) {
|
||||
DB::transaction(function () use ($request, $accident, $paymentService) {
|
||||
if ($accident->final_amount > 0) {
|
||||
|
||||
$response = json_decode($this->callPaymentStatusBillApi(explode("/", $accident->bill_code)[0]));
|
||||
$response = json_decode($paymentService->callPaymentStatusBillApi(explode("/", $accident->bill_code)[0]));
|
||||
|
||||
if ($response->isPayed) {
|
||||
$accident->payBill();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\V2\Dashboard;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Services\NikarayanService;
|
||||
use Illuminate\Http\Request;
|
||||
use Hekmatinasser\Verta\Verta;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
@@ -425,7 +426,7 @@ class RoadObservationController extends Controller
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function handle(Request $request, RoadObserved $roadObserved)
|
||||
public function handle(Request $request, RoadObserved $roadObserved, NikarayanService $nikarayanService)
|
||||
{
|
||||
if (! auth()->user()->hasAnyPermission(['show-fast-react-edarate-shahri', 'show-fast-react-province', 'show-fast-react'])) {
|
||||
return response()->json([
|
||||
@@ -498,19 +499,9 @@ class RoadObservationController extends Controller
|
||||
// if ($file_index > 0) {
|
||||
// $roadObserved->files()->createMany($files_path);
|
||||
// }
|
||||
$url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl";
|
||||
// $url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl";
|
||||
try {
|
||||
$array = array('strUserName' => 'vaytelrop',
|
||||
'strPassword' => 'VaYtelROP*2024',
|
||||
'strAutoID' => $roadObserved->fk_RegisteredEventMessage,
|
||||
'strStateID' => ($request->input('rms-status') == 1) ? '2' : '3',
|
||||
'strDescription' => $request->input('rms-description') ?? $roadObserved->rms_description,
|
||||
'strPreviousImageLink' => "https://rms.rmto.ir/".$files,
|
||||
'strNextImageLink' => "https://rms.rmto.ir/".$files,
|
||||
'strRMSDateAndTime' => $roadObserved->updated_at
|
||||
);
|
||||
$soap_client = new SoapClient($url);
|
||||
$result = $soap_client->UpdateInfo_RoadObservedProblems($array);
|
||||
$result = $nikarayanService->updateRoadObservedInfoByNikarayan($request, $roadObserved, $files);
|
||||
} catch (SoapFault $e) {
|
||||
|
||||
$msg = "error in send to nikarayan at".date("Y-m-d H:i:s")."\n".'rms: error in get road observation webservice babe!!!!'."\n";
|
||||
|
||||
30
app/Providers/NikarayanServiceProvider.php
Normal file
30
app/Providers/NikarayanServiceProvider.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use App\Services\NikarayanService;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use SoapClient;
|
||||
|
||||
class NikarayanServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register services.
|
||||
*/
|
||||
public function register(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
$this->app->bind(NikarayanServiceProvider::class, function () {
|
||||
$url = "https://riws.rmto.ir/WebServices/NRPTrafficStatus.asmx?wsdl";
|
||||
$soapClient = new SoapClient($url);
|
||||
return new NikarayanService($soapClient);
|
||||
});
|
||||
}
|
||||
}
|
||||
37
app/Services/NikarayanService.php
Normal file
37
app/Services/NikarayanService.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\RoadObserved;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use SoapClient;
|
||||
|
||||
class NikarayanService
|
||||
{
|
||||
protected SoapClient $soapClient;
|
||||
|
||||
public function __construct(SoapClient $soapClient)
|
||||
{
|
||||
$this->soapClient = $soapClient;
|
||||
}
|
||||
|
||||
public function updateRoadObservedInfoByNikarayan(Request $request, RoadObserved $roadObserved, $files)
|
||||
{
|
||||
if (App::isProduction())
|
||||
{
|
||||
$array = array('strUserName' => 'vaytelrop',
|
||||
'strPassword' => 'VaYtelROP*2024',
|
||||
'strAutoID' => $roadObserved->fk_RegisteredEventMessage,
|
||||
'strStateID' => ($request->input('rms-status') == 1) ? '2' : '3',
|
||||
'strDescription' => $request->input('rms-description') ?? $roadObserved->rms_description,
|
||||
'strPreviousImageLink' => "https://rms.rmto.ir/".$files,
|
||||
'strNextImageLink' => "https://rms.rmto.ir/".$files,
|
||||
'strRMSDateAndTime' => $roadObserved->updated_at
|
||||
);
|
||||
return $this->soapClient->UpdateInfo_RoadObservedProblems($array);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
72
app/Services/PaymentService.php
Normal file
72
app/Services/PaymentService.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Illuminate\Support\Facades\App;
|
||||
|
||||
class PaymentService
|
||||
{
|
||||
public function invoiceBillApi($driver_national_code, $final_amount)
|
||||
{
|
||||
if (App::isProduction())
|
||||
{
|
||||
try {
|
||||
$post = array(
|
||||
'username' => env("PAYMENT_USERNAME"),
|
||||
'password' => env("PAYMENT_PASSWORD"),
|
||||
'amount' => $final_amount,
|
||||
'serial' => "12345",
|
||||
'type' => 1,
|
||||
'instanceid' => 123,
|
||||
'ownerid' => $driver_national_code,
|
||||
'calculationBox' => "{\"rows\":[{\"amount\":" . $final_amount . ",\"code\":\"7070021060000015\"}]}"
|
||||
);
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, "http://payment.rmto.ir/acc/rest/payid/gen");
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_POST, true);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
|
||||
$response = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
return $response;
|
||||
}
|
||||
catch (\Throwable $th) {
|
||||
abort(500);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function callPaymentStatusBillApi($bill_code)
|
||||
{
|
||||
if (App::isProduction())
|
||||
{
|
||||
try {
|
||||
$post = array(
|
||||
// 'username' => env("PAYMENT_USERNAME"),
|
||||
// 'password' => env("PAYMENT_PASSWORD"),
|
||||
// 'amount' => $final_amount,
|
||||
// 'serial' => "12345",
|
||||
// 'type' => 1,
|
||||
// 'instanceid' => 123,
|
||||
// 'ownerid' => $driver_national_code,
|
||||
// 'calculationBox' => "{\"rows\":[{\"amount\":". $final_amount .",\"code\":\"7070021060000015\"}]}"
|
||||
);
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, "http://payment.rmto.ir/acc/rest/payid/track2/" . env("PAYMENT_USERNAME") . "/" . env("PAYMENT_PASSWORD") . "/" . $bill_code);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
// curl_setopt($ch, CURLOPT_POST, true);
|
||||
// curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
|
||||
$response = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
return $response;
|
||||
} catch (\Throwable $th) {
|
||||
abort(500);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user