Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1); namespace App\Controllers\Admin; use App\Controllers\Bas..
Decoded Output download
<?php
declare(strict_types=1);
namespace App\Controllers\Admin;
use App\Controllers\BaseController;
use App\Models\Invoice;
use App\Models\Order;
use App\Utils\Tools;
use Exception;
use Psr\Http\Message\ResponseInterface;
use Slim\Http\Response;
use Slim\Http\ServerRequest;
use function in_array;
use function json_decode;
use function time;
final class OrderController extends BaseController
{
private static array $details = [
'field' => [
'op' => '',
'id' => 'ID',
'user_id' => '',
'product_id' => 'ID',
'product_type' => '',
'product_name' => '',
'coupon' => '',
'price' => '',
'status' => '',
'create_time' => '',
'update_time' => '',
],
];
/**
* @throws Exception
*/
public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
{
return $response->write(
$this->view()
->assign('details', self::$details)
->fetch('admin/order/index.tpl')
);
}
/**
* @throws Exception
*/
public function detail(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$id = $args['id'];
$order = (new Order())->find($id);
if ($order === null) {
return $response->withStatus(301)->withHeader('Location', '/admin/order');
}
$order->product_type_text = $order->productType();
$order->status_text = $order->status();
$order->create_time = Tools::toDateTime($order->create_time);
$order->update_time = Tools::toDateTime($order->update_time);
$order->content = json_decode($order->product_content);
$invoice = (new Invoice())->where('order_id', $id)->first();
$invoice->status = $invoice->status();
$invoice->create_time = Tools::toDateTime($invoice->create_time);
$invoice->update_time = Tools::toDateTime($invoice->update_time);
$invoice->pay_time = Tools::toDateTime($invoice->pay_time);
$invoice->content = json_decode($invoice->content);
return $response->write(
$this->view()
->assign('order', $order)
->assign('invoice', $invoice)
->fetch('admin/order/view.tpl')
);
}
public function cancel(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$order_id = $args['id'];
$order = (new Order())->find($order_id);
if ($order === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
if (in_array($order->status, ['activated', 'expired', 'cancelled'])) {
return $response->withJson([
'ret' => 0,
'msg' => ' ' . $order->status() . ' ',
]);
}
$invoice = (new Invoice())->where('order_id', $order_id)->first();
if ($invoice === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
if ($invoice->status === 'partially_paid') {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
$order->update_time = time();
$order->status = 'cancelled';
$order->save();
if (in_array($invoice->status, ['paid_gateway', 'paid_balance', 'paid_admin'])) {
$invoice->refundToBalance();
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
$invoice->update_time = time();
$invoice->status = 'cancelled';
$invoice->save();
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
public function delete(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$order_id = $args['id'];
$order = (new Order())->find($order_id);
if ($order === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
$invoice = (new Invoice())->where('order_id', $order_id)->first();
if ($order->delete() && $invoice->delete()) {
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
public function ajax(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$orders = (new Order())->orderBy('id', 'desc')->get();
foreach ($orders as $order) {
$order->op = '<button class="btn btn-red" id="delete-order-' . $order->id . '"
onclick="deleteOrder(' . $order->id . ')"></button>';
if (in_array($order->status, ['pending_payment', 'pending_activation'])) {
$order->op .= '
<button class="btn btn-orange" id="cancel-order-' . $order->id . '"
onclick="cancelOrder(' . $order->id . ')"></button>';
}
$order->op .= '
<a class="btn btn-primary" href="/admin/order/' . $order->id . '/view"></a>';
$order->product_type = $order->productType();
$order->status = $order->status();
$order->create_time = Tools::toDateTime($order->create_time);
$order->update_time = Tools::toDateTime($order->update_time);
}
return $response->withJson([
'orders' => $orders,
]);
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace App\Controllers\Admin;
use App\Controllers\BaseController;
use App\Models\Invoice;
use App\Models\Order;
use App\Utils\Tools;
use Exception;
use Psr\Http\Message\ResponseInterface;
use Slim\Http\Response;
use Slim\Http\ServerRequest;
use function in_array;
use function json_decode;
use function time;
final class OrderController extends BaseController
{
private static array $details = [
'field' => [
'op' => '',
'id' => 'ID',
'user_id' => '',
'product_id' => 'ID',
'product_type' => '',
'product_name' => '',
'coupon' => '',
'price' => '',
'status' => '',
'create_time' => '',
'update_time' => '',
],
];
/**
* @throws Exception
*/
public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
{
return $response->write(
$this->view()
->assign('details', self::$details)
->fetch('admin/order/index.tpl')
);
}
/**
* @throws Exception
*/
public function detail(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$id = $args['id'];
$order = (new Order())->find($id);
if ($order === null) {
return $response->withStatus(301)->withHeader('Location', '/admin/order');
}
$order->product_type_text = $order->productType();
$order->status_text = $order->status();
$order->create_time = Tools::toDateTime($order->create_time);
$order->update_time = Tools::toDateTime($order->update_time);
$order->content = json_decode($order->product_content);
$invoice = (new Invoice())->where('order_id', $id)->first();
$invoice->status = $invoice->status();
$invoice->create_time = Tools::toDateTime($invoice->create_time);
$invoice->update_time = Tools::toDateTime($invoice->update_time);
$invoice->pay_time = Tools::toDateTime($invoice->pay_time);
$invoice->content = json_decode($invoice->content);
return $response->write(
$this->view()
->assign('order', $order)
->assign('invoice', $invoice)
->fetch('admin/order/view.tpl')
);
}
public function cancel(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$order_id = $args['id'];
$order = (new Order())->find($order_id);
if ($order === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
if (in_array($order->status, ['activated', 'expired', 'cancelled'])) {
return $response->withJson([
'ret' => 0,
'msg' => ' ' . $order->status() . ' ',
]);
}
$invoice = (new Invoice())->where('order_id', $order_id)->first();
if ($invoice === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
if ($invoice->status === 'partially_paid') {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
$order->update_time = time();
$order->status = 'cancelled';
$order->save();
if (in_array($invoice->status, ['paid_gateway', 'paid_balance', 'paid_admin'])) {
$invoice->refundToBalance();
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
$invoice->update_time = time();
$invoice->status = 'cancelled';
$invoice->save();
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
public function delete(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$order_id = $args['id'];
$order = (new Order())->find($order_id);
if ($order === null) {
return $response->withJson([
'ret' => 0,
'msg' => '',
]);
}
$invoice = (new Invoice())->where('order_id', $order_id)->first();
if ($order->delete() && $invoice->delete()) {
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
return $response->withJson([
'ret' => 1,
'msg' => '',
]);
}
public function ajax(ServerRequest $request, Response $response, array $args): ResponseInterface
{
$orders = (new Order())->orderBy('id', 'desc')->get();
foreach ($orders as $order) {
$order->op = '<button class="btn btn-red" id="delete-order-' . $order->id . '"
onclick="deleteOrder(' . $order->id . ')"></button>';
if (in_array($order->status, ['pending_payment', 'pending_activation'])) {
$order->op .= '
<button class="btn btn-orange" id="cancel-order-' . $order->id . '"
onclick="cancelOrder(' . $order->id . ')"></button>';
}
$order->op .= '
<a class="btn btn-primary" href="/admin/order/' . $order->id . '/view"></a>';
$order->product_type = $order->productType();
$order->status = $order->status();
$order->create_time = Tools::toDateTime($order->create_time);
$order->update_time = Tools::toDateTime($order->update_time);
}
return $response->withJson([
'orders' => $orders,
]);
}
}
Function Calls
None |
Stats
MD5 | 736f37c80b5d8e258c6e37aff3950497 |
Eval Count | 0 |
Decode Time | 116 ms |