Open sidebar
<?php namespace App\Http\Controllers\Api\Payments; use App\Http\Requests\OrderRequest; use App\Models\Order; use App\Models\Product; use App\Models\Server; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Maksa988\UnitPay\UnitPay; use \Thedudeguy\Rcon; class UnitPayController extends Controller { public static function searchOrder(Request $request, $orderId) { $order = Order::join('products', 'products.id', '=','orders.product_id') ->join('servers', 'products.server_id', '=', 'servers.id') ->where( [ ['orders.id', '=', $orderId], //['orders.server_id', '=', $product->server_id], ['products.surcharge', '=', true], ['orders.paid', '=', false] ]) ->select( [ 'orders.product_id', 'products.server_id', 'products.title', 'products.surcharge', 'products.enabled', 'orders.paid', 'orders.cost' ]) ->first(); if($order !== null) { if($order['paid'] == false) { $order['cost'] = $request->get('params')['orderSum']; return $order; } } return false; } /** * When paymnet is check, you can paid your order * * @param Request $request * @param $order * @return bool */ public function paidOrder(Request $request, $order) { //Get object product $product = Product::find($order->product_id); //Get object server $server = Server::find($order->server_id); //dd($order); if( !is_object($product) || !is_object($server) ) return false; $rcon = new Rcon($server['rcon_ip'], $server['rcon_port'], $server['rcon_password'], 3); if ($rcon->connect()) { //Serialise cmd $cmd = str_replace('%nickname%', $order->nickname, $product['rcon_cmd']); //Send cmd $rcon->sendCommand($cmd); //Update status order $order->paid = true; $order->save(); //Status result for unitpay middleware return true; } } /** * Start handle process from route * * @param Request $request * @param UnitPay $unitPay * @return mixed * @throws \Maksa988\UnitPay\Exceptions\InvalidPaidOrder * @throws \Maksa988\UnitPay\Exceptions\InvalidSearchOrder */ public function handlePayment(Request $request, UnitPay $unitPay) { return $unitPay->handle($request); } }
Close sidebar
Back
Please note that all pasted data is publicly available.
X (fomerly Twitter)
GitHub
Use setting
Back
Please note that all pasted data is publicly available.
X (fomerly Twitter)
GitHub
Use setting