class OffsitePayments::Integrations::Paytm::Helper

Constants

CHECKSUM_FIELDS

Public Class Methods

new(order, account, options = {}) click to toggle source
Calls superclass method
# File lib/offsite_payments/integrations/paytm.rb, line 63
def initialize(order, account, options = {})
  super
  @options = options
  @timestamp = Time.now.strftime('%Y%m%d%H%M%S')

  add_field(mappings[:channel_id], "WEB")
  add_field 'ORDER_ID', "#{order}-#{@timestamp.to_i}"

  self.pg = 'CC'
end

Public Instance Methods

customer(options = {}) click to toggle source
# File lib/offsite_payments/integrations/paytm.rb, line 74
def customer(options = {})
  customer_id =
    if options[:email].present?
      sanitize_field(options[:email])
    else
      sanitize_field(options[:phone])
    end

  add_field('CUST_ID', customer_id)
end
encrypt_checksum() click to toggle source
# File lib/offsite_payments/integrations/paytm.rb, line 90
def encrypt_checksum
  payload_items = {}

  CHECKSUM_FIELDS.each do |field|
    payload_items[field] = @fields[field]
  end

  Paytm.encrypt(Paytm.checksum(payload_items), @options[:credential2])
end
form_fields() click to toggle source
# File lib/offsite_payments/integrations/paytm.rb, line 85
def form_fields
  sanitize_fields
  @fields.merge(mappings[:checksum] => encrypt_checksum)
end
sanitize_field(field) click to toggle source
# File lib/offsite_payments/integrations/paytm.rb, line 106
def sanitize_field(field)
  field.gsub(/[^a-zA-Z0-9\-_@\/\s.]/, '') if field
end
sanitize_fields() click to toggle source
# File lib/offsite_payments/integrations/paytm.rb, line 100
def sanitize_fields
  %w(email phone).each do |field|
    @fields[field] = sanitize_field(@fields[field])
  end
end