diff --git a/payment/Robokassa/Robokassa.php b/payment/Robokassa/Robokassa.php index cf8ddcf..79945f8 100755 --- a/payment/Robokassa/Robokassa.php +++ b/payment/Robokassa/Robokassa.php @@ -1,63 +1,84 @@ -orders->get_order((int)$order_id); - $payment_method = $this->payment->get_payment_method($order->payment_method_id); - $payment_settings = $this->payment->get_payment_settings($payment_method->id); - - $price = $this->money->convert($order->total_price, $payment_method->currency_id, false); - - $success_url = $this->config->root_url.'/order/'.$order->url; - - $fail_url = $this->config->root_url.'/order/'.$order->url; - - // регистрационная информация (логин, пароль #1) - // registration info (login, password #1) - $mrh_login = $payment_settings['login']; - $mrh_pass1 = $payment_settings['password1']; - - // номер заказа - // number of order - $inv_id = $order->id; - - // описание заказа - // order description - $inv_desc = 'Оплата заказа №'.$inv_id; - - // метод оплаты - текущий - $shp_item = $payment_method->id; - - // предлагаемая валюта платежа - // default payment e-currency - $in_curr = "PCR"; - - // язык - // language - $culture = $payment_settings['language']; - - // формирование подписи - // generate signature - $crc = md5("$mrh_login:$price:$inv_id:$mrh_pass1"); - - $button = "
". - "". - "". - "". - "". - "". - "". - "". - "". - "
"; - return $button; - } - -} \ No newline at end of file +orders->get_order((int)$order_id); + $payment_method = $this->payment->get_payment_method($order->payment_method_id); + $payment_settings = $this->payment->get_payment_settings($payment_method->id); + $purchases = $this->orders->get_purchases(['order_id' => $order->id]); + + $price = $this->money->convert($order->total_price, $payment_method->currency_id, false); + + $success_url = $this->config->root_url.'/order/'.$order->url; + + $fail_url = $this->config->root_url.'/order/'.$order->url; + + // регистрационная информация (логин, пароль #1) + // registration info (login, password #1) + $mrh_login = $payment_settings['login']; + $mrh_pass1 = $payment_settings['password1']; + + // номер заказа + // number of order + $inv_id = $order->id; + + // описание заказа + // order description + $inv_desc = 'Оплата заказа №'.$inv_id; + + // метод оплаты - текущий + $shp_item = $payment_method->id; + + // предлагаемая валюта платежа + // default payment e-currency + $in_curr = "PCR"; + + // язык + // language + $culture = $payment_settings['language']; + + // Информация о товарах для чека + $receipt = [ + "sho" => $payment_settings['sno'], + ]; + + foreach($purchases as $purchase) { + $receipt['items'][] = [ + "name" => $purchase->product_name, + "quantity" => $purchase->amount, + "sum" => $purchase->price * $purchase->amount, + "payment_method" => "full_payment", + "payment_object" => "commodity", + "tax" => ($payment_settings['sno'] == 'osn') ? $payment_settings['tax'] : 'none' + ]; + } + + $receipt = json_encode($receipt); + + // формирование подписи + // generate signature + $crc = md5("$mrh_login:$price:$inv_id:$receipt:$mrh_pass1"); + + $button = "
". + "". + "". + "". + "". + "". + "". + "". + "". + "". + "
"; + return $button; + } + +} diff --git a/payment/Robokassa/settings.xml b/payment/Robokassa/settings.xml index 0427e65..8a1d33c 100755 --- a/payment/Robokassa/settings.xml +++ b/payment/Robokassa/settings.xml @@ -27,4 +27,70 @@ en + + + sno + Система налогообложения. + + общая СН + osn + + + упрощенная СН (доходы) + usn_income + + + упрощенная СН (доходы минус расходы) + usn_income_outcome + + + единый налог на вмененный доход + envd + + + единый сельскохозяйственный налог + esn + + + патентная СН + patent + + + + + tax + НДС + + без НДС + none + + + НДС по ставке 0% + vat0 + + + НДС чека по ставке 10% + vat10 + + + НДС чека по ставке 18% + vat18 + + + НДС чека по расчетной ставке 10/110 + vat110 + + + НДС чека по расчетной ставке 18/118 + vat118 + + + НДС чека по ставке 20% + vat20 + + + НДС чека по расчетной ставке 20/120 + vat120 + + \ No newline at end of file