This helper allows the usage of different payment integrations through a single form helper. Payment integrations are the type of service where the user is redirected to the secure site of the service, like Paypal or Chronopay.
The helper creates a scope around a payment service helper which provides the specific mapping for that service.
<% payment_service_for 1000, 'paypalemail@mystore.com', :amount => 50.00, :currency => 'CAD', :service => :paypal, :html => { :id => 'payment-form' } do |service| %> <% service.customer :first_name => 'Cody', :last_name => 'Fauser', :phone => '(555)555-5555', :email => 'cody@example.com' %> <% service.billing_address :city => 'Ottawa', :address1 => '21 Snowy Brook Lane', :address2 => 'Apt. 36', :state => 'ON', :country => 'CA', :zip => 'K1J1E5' %> <% service.invoice '#1000' %> <% service.shipping '0.00' %> <% service.tax '0.00' %> <% service.notify_url url_for(:only_path => false, :action => 'notify') %> <% service.return_url url_for(:only_path => false, :action => 'done') %> <% service.cancel_return_url 'http://mystore.com' %> <% end %>
# File lib/active_merchant/billing/integrations/action_view_helper.rb, line 42 42: def payment_service_for(order, account, options = {}, &proc) 43: raise ArgumentError, "Missing block" unless block_given? 44: 45: integration_module = ActiveMerchant::Billing::Integrations.const_get(options.delete(:service).to_s.camelize) 46: 47: result = [] 48: result << form_tag(integration_module.service_url, options.delete(:html) || {}) 49: 50: service_class = integration_module.const_get('Helper') 51: service = service_class.new(order, account, options) 52: 53: result << capture(service, &proc) 54: 55: service.form_fields.each do |field, value| 56: result << hidden_field_tag(field, value) 57: end 58: 59: result << '</form>' 60: result= result.join("\n") 61: 62: concat(result.respond_to?(:html_safe) ? result.html_safe : result) 63: nil 64: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.