Module: RobokassaHelper
- Includes:
- ActionView::Helpers::CaptureHelper, ActionView::Helpers::FormTagHelper, ActionView::Helpers::TagHelper
- Defined in:
- app/helpers/robokassa_helper.rb
Constant Summary collapse
- PAYMENT_SYSTEMS =
{ :bank_card => 'BANKOCEANMR', # Банковской картой :platezh_ru => 'OceanBankOceanR', # Банковской картой через Platezh.ru :qiwi => 'QiwiR', # QIWI Кошелек :yandex => 'PCR', # Яндекс.Деньги :wmr => 'WMRM', # WMR :wmz => 'WMZM', # WMZ :wme => 'WMEM', # WME :wmu => 'WMUM', # WMU :wmb => 'WMBM', # WMB :wmg => 'WMGM', # WMG :money_mail_ru => 'MoneyMailR', # RUR MoneyMail :rur_rbk_money => 'RuPayR', # RUR RBK Money :w1r => 'W1R', # RUR Единый Кошелек :easy_pay => 'EasyPayB', # EasyPay :liq_pay_usd => 'LiqPayZ', # USD LiqPay :money_mail_ru => 'MailRuR', # Деньги@Mail.Ru :z_payment => 'ZPaymentR', # RUR Z-Payment :tele_money => 'TeleMoneyR', # RUR TeleMoney :alfabank => 'AlfaBankR', # Альфа-Клик :pskbr => 'PSKBR', # Промсвязьбанк :handy_bank => 'HandyBankMerchantR', # HandyBank :innivation => 'BSSFederalBankForInnovationAndDevelopmentR', # АК ФБ Инноваций и Развития (ЗАО) :energobank => 'BSSMezhtopenergobankR', # Межтопэнергобанк :svyaznoy => 'RapidaOceanSvyaznoyR', # Через Связной :euroset => 'RapidaOceanEurosetR', # Через Евросеть :elecsnet_r => 'ElecsnetR', # Элекснет :kassira_net => 'TerminalsUnikassaR', # Кассира.нет :mobil_element => 'TerminalsMElementR', # Мобил Элемент :baltika => 'TerminalsNovoplatR', # Банк Балтика :absolut_plat => 'TerminalsAbsolutplatR', # Absolutplat :pinpay => 'TerminalsPinpayR', # Pinpay :money_money => 'TerminalsMoneyMoneyR', # Money-Money :petrocommerce => 'TerminalsPkbR', # Петрокоммерц :vtb24 => 'VTB24R', # ВТБ24 :mts => 'MtsR', # МТС :megafon => 'MegafonR', # Мегафон :iphone => 'BANKOCEANCHECKR', # Через iPhone :contact => 'ContactR', # Переводом по системе Контакт :online_credit => 'OnlineCreditR' }
Instance Method Summary collapse
- #payment_form(interface, invoice_id, amount, description, custom_options = {}) ⇒ Object
- #robokassa_currency_rate ⇒ Object
- #robokassa_payment_block(currency) {|currency_rate| ... } ⇒ Object
- #robokassa_payment_link(*args) ⇒ Object
- #robokassa_rates_hash ⇒ Object
Instance Method Details
#payment_form(interface, invoice_id, amount, description, custom_options = {}) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/helpers/robokassa_helper.rb', line 48 def payment_form(interface, invoice_id, amount, description, = {}) payment_base_url = interface.init_payment_base_url = interface.(invoice_id, amount, description, ) @__robokassa_vars = { :interface => interface, :invoice_id => invoice_id, :amount => amount, :description => description, :custom_options => , :payment_base_url => payment_base_url, :payment_options => } if block_given? yield payment_base_url, else render 'payment_method/robokassa/init', :interface => interface, :invoice_id => invoice_id, :amount => amount, :description => description, :custom_options => , :payment_base_url => payment_base_url, :payment_options => end @__robokassa_vars = nil end |
#robokassa_currency_rate ⇒ Object
126 127 128 129 |
# File 'app/helpers/robokassa_helper.rb', line 126 def robokassa_currency_rate raise "robokassa_currency_rate helper should be called inside of robokassa_payment_block." if @__robokassa_vars.blank? || @__robokassa_vars[:currency_rate].blank? @__robokassa_vars[:currency_rate] end |
#robokassa_payment_block(currency) {|currency_rate| ... } ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'app/helpers/robokassa_helper.rb', line 83 def robokassa_payment_block currency raise "payment_block should be called inside of payment_form." if @__robokassa_vars.blank? currency = RobokassaHelper::PAYMENT_SYSTEMS[currency] raise "wrong currency" unless currency kept_rate = @__robokassa_vars[:currency_rate] currency_rate = robokassa_rates_hash[currency] return "" unless currency_rate @__robokassa_vars[:currency_rate] = currency_rate yield currency_rate @__robokassa_vars[:currency_rate] = kept_rate end |
#robokassa_payment_link(*args) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'app/helpers/robokassa_helper.rb', line 98 def robokassa_payment_link *args raise "payment_link should be called inside of payment_form." if @__robokassa_vars.blank? = args. currency = .delete(:currency) if currency return robokassa_currency currency do payment_link args end end payment_url = "#{ robokassa_payment_base_url }?#{ robokassa_payment_options.merge('IncCurrLabel' => robokassa_currency_rate[:name]).to_query}" if block_given? link_to payment_url, *args, do yield robokassa_currency_rate end else title = args.shift link_to title, payment_url, *args, end end |
#robokassa_rates_hash ⇒ Object
78 79 80 81 |
# File 'app/helpers/robokassa_helper.rb', line 78 def robokassa_rates_hash raise "rates_hash helper should be called inside of payment_form." if @__robokassa_vars.blank? @__robokassa_vars[:rates_hash] ||= robokassa_interface.rates_linear(robokassa_amount) end |