/** * @param Order $order * @return QrCode|null * @throws \ErrorException */ public function renderQRCodeForOrder(Order $order) { if (!$order->loaded()) { throw new \ErrorException("Invalid order"); } $df = RUtils::dt(); $date = new \DateTime($order->created_at); $purpose = "Оплата по счету №" . $order->uid . " от " . $df->ruStrFTime(['format' => 'j F Y', 'monthInflected' => true, 'date' => $date]); return $this->renderQRCode($this->generateStringForQRCode($order->amount, $purpose)); }
/** * @param Order $order * @return Payment */ public function createOrderPayment(Order $order) { if (!$order->loaded()) { throw new \InvalidArgumentException("Order must be persistent. Fresh one given."); } $payment = new Payment($this->pixie); $payment->amount = $order->amount; $payment->order_number = $order->uid; $payment->currency = $this->currency; $payment->type = Payment::TYPE_IMMEDIATE; $payment->status = Payment::STATUS_NEW; $payment->order_id = $order->id(); $payment->provider = 'Life'; $payment->save(); return $payment; }