public function form(array $params) { $billingService = BOL_BillingService::getInstance(); $adapter = new BILLINGCCBILL_CLASS_CcbillAdapter(); $lang = OW::getLanguage(); $sale = $billingService->getSessionSale(); if (!$sale) { $url = $billingService->getSessionBackUrl(); if ($url != null) { OW::getFeedback()->warning($lang->text('base', 'billing_order_canceled')); $billingService->unsetSessionBackUrl(); $this->redirect($url); } else { $this->redirectToAction('select'); } } $formId = uniqid('order_form-'); $this->assign('formId', $formId); $js = '$("#' . $formId . '").submit()'; OW::getDocument()->addOnloadScript($js); $fieldsParams = array('formType' => isset($params['type']) ? $params['type'] : 'cc', 'pluginKey' => $sale->pluginKey, 'entityKey' => $sale->entityKey); $fields = $adapter->getFields($fieldsParams); $this->assign('fields', $fields); if ($billingService->prepareSale($adapter, $sale)) { $sale->totalAmount = sprintf("%01.2f", $sale->totalAmount); $sale->price = sprintf("%01.2f", $sale->price); if ($sale->recurring) { $rebills = 99; $digest = $adapter->generateRecurringTransactionDigest($sale->totalAmount, $sale->period, $sale->totalAmount, $sale->period, $rebills, $adapter->getActiveCurrencyCode()); $this->assign('rebills', $rebills); } else { $digest = $adapter->generateSingleTransactionDigest($sale->totalAmount, $sale->period, $adapter->getActiveCurrencyCode()); } $this->assign('formDigest', $digest); $this->assign('currencyCode', $adapter->getActiveCurrencyCode()); $this->assign('sale', $sale); $masterPageFileDir = OW::getThemeManager()->getMasterPageTemplate('blank'); OW::getDocument()->getMasterPage()->setTemplate($masterPageFileDir); $billingService->unsetSessionSale(); } else { $productAdapter = $billingService->getProductAdapter($sale->entityKey); if ($productAdapter) { $productUrl = $productAdapter->getProductOrderUrl(); } OW::getFeedback()->warning($lang->text('base', 'billing_order_init_failed')); $url = isset($productUrl) ? $productUrl : $billingService->getOrderFailedPageUrl(); $this->redirect($url); } }