Files
getgreen-backend/app/Http/Controllers/Apelsin/Controller.php

209 lines
5.9 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\Apelsin;
use App\Api\Sms;
use App\Models\Billing;
use App\Models\CommentBank;
use App\Models\Order;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller as ExController;
class Controller extends ExController
{
public function paymentOrder(Billing $billing)
{
return view('apelsin', compact('billing'));
}
public function payment(Request $request)
{
Log::info($request->all());
if ($request->post('orderId')) {
$billing = Billing::find($request->post('orderId'));
if ($billing->status != 'payed') {
if (!empty($billing)) {
$amount = (int) $request->post('amount');
$amount = $amount / 100;
if ($amount == $billing->amount) {
$order = Order::find($billing->order->id);
$order->update([
'payment_status' => 'payed'
]);
$billing->update([
'status' => 'payed',
'payment_system' => 'apelsin',
'transaction_id' => $request->post('transactionId')
]);
$sms = new Sms();
$message = "Quyoshli vash zakaz: {$order->id} uspeshno oplachen!";
$sms->send($order->user->phone, $message);
return response()->json([
'status' => true
]);
}
}
}
}
return response()->json([
'status' => false
]);
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function confirm(Request $request)
{
$sign_key = md5($request->order_number . '7Yyh5weu7zhYEbNr');
if ($sign_key == $request->sign_key) {
// Activity::create([
// 'log_name' => 'orders',
// 'description'
// ]);
$order = Order::find($request->order_number);
if (!empty($order)) {
$order->update([
'payment_status' => 'review'
]);
}
return response()->json([
'status' => true,
'back_url' => env('APP_URL') . '?order=credit'
]);
} else {
return response()->json([
'status' => false,
'message' => 'Error Sign Key'
], 403);
}
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function status(Request $request)
{
$sign_key = md5($request->order_number . '7Yyh5weu7zhYEbNr');
if ($sign_key === $request->sign_key) {
$order = Order::find($request->order_number);
if (!empty($order)) {
if ($request->result) {
if ($order->status == 'cancelled') {
$order->update([
'payment_status' => 'payed',
'status' => 'processing',
'archived' => false,
]);
} else {
$order->update([
'payment_status' => 'payed',
]);
}
} else {
$order->update([
'apelsin_data' => [
'status' => false,
'body' => $request->all()
],
'status' => 'cancelled',
'payment_status' => 'cancelled'
]);
}
}
return response()->json([
'status' => true,
]);
} else {
return response()->json([
'status' => false,
'message' => 'Error Sign Key'
], 403);
}
}
/**
* @param $id
* @return array
*/
public function delivered($id)
{
try {
$response = Http::withBasicAuth('AVtO_L0aN_8f234_Ssmeiq', '&*sk92jf8.1521aydd3810bx742n54kiygh2')
->post('https://alistoreback.apelsin.uz/api/loan-application/external/verdict', [
'order_number' => $id,
'status' => true
]);
} catch (\Exception $exception) {
return [
'status' => false,
'body' => $exception
];
}
$body = json_decode($response->body(), true);
if ($body['errorMessage']) {
return [
'status' => false,
'body' => $body
];
}
return [
'status' => true,
'body' => $body
];
}
/**
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function comment(Request $request)
{
$sign_key = md5($request->order_number . '7Yyh5weu7zhYEbNr');
if ($sign_key == $request->sign_key) {
$order = Order::find($request->order_number);
if (!empty($order) && $order->payment_type == 'credit') {
$comment = $request->comment;
CommentBank::create([
'order_id' => $order->id,
'comment' => $comment
]);
}
return response()->json([
'status' => true,
], 201);
}
return response()->json([
'status' => false,
'message' => 'Error Sign Key'
], 403);
}
}