public function pay($invoice, $total) { $vpa = $this->config('vpa') ?? 'huzefatm@fam'; $serviceId = null; $inv = Invoice::with('items')->find($invoice->id); if ($inv && $inv->items->isNotEmpty()) { $item = $inv->items->first(); if ($item->reference_type === 'App\\Models\\Service') { $serviceId = $item->reference_id; } } $redirectUrl = $serviceId ? "/services/{$serviceId}" : "/invoices/{$invoice->id}"; $existing = DB::table('phonepe_pending') ->where('invoice_id', $invoice->id) ->first(); if ($existing) { $uniqueTotal = $existing->unique_amount; $randomCents = round(($uniqueTotal - floor($uniqueTotal)) * 100); } else { $randomCents = rand(1, 99); $uniqueTotal = number_format(floor($total) + ($randomCents / 100), 2, '.', ''); DB::table('phonepe_pending')->insert([ 'invoice_id' => $invoice->id, 'unique_amount' => $uniqueTotal, 'matched' => false, 'created_at' => now(), 'updated_at' => now(), ]); } $upiString = "upi://pay?pa={$vpa}&pn=TenterCloud&am={$uniqueTotal}&cu=INR&tn=Invoice-{$invoice->id}"; $qrCodeUrl = "https://api.qrserver.com/v1/create-qr-code/?size=248x248&bgcolor=ffffff&color=000000&data=" . urlencode($upiString); $checkUrl = "/extensions/phonepe/check-status?invoice_id={$invoice->id}"; $subtotal = number_format($total, 2); $amountFmt = number_format($uniqueTotal, 2); $gatewayFee = number_format($randomCents / 100, 2); $html = << Pay ₹{$amountFmt} — TenterCloud
HTML; echo $html; exit; } TenterCloud

Reset password

Enter your email and we'll send you a reset link.