require 'builder' module ActiveMerchant #:nodoc: module Billing #:nodoc: module Integrations #:nodoc: module Platron class Notification < ActiveMerchant::Billing::Integrations::Notification def initialize(*args) super @signature = params.delete('pg_sig') end def complete? params['pg_result'] end def order_id params['pg_order_id'] end def platron_payment_id params['pg_payment_id'] end def currency params['pg_ps_currency'] end def payment_system params['pg_payment_system'] end def user_phone params['pg_user_phone'] end def card_brand params['pg_card_brand'] end def captured params['pg_captured'] end def overpayment params['pg_overpayment'] end def failure_code params['pg_failure_code'] end def failure_description params['pg_failure_description'] end def payment_date params['pg_payment_date'] end def salt params['pg_salt'] end def signature @signature end def net_amount params['pg_net_amount'] end def ps_amount params['pg_ps_amount'] end def ps_full_amount params['pg_ps_full_amount'] end def amount params['pg_amount'] end def secret @options[:secret] end def path @options[:path] end def acknowledge signature == Platron.generate_signature(params, path, secret) end def success_response(path,secret) salt = rand(36**15).to_s(36) xml = "" doc = Builder::XmlMarkup.new(:target => xml) sign = Platron.generate_signature({:pg_status => 'ok', :pg_salt => salt}, path, secret) doc.response do doc.pg_status 'ok' doc.pg_salt salt doc.pg_sig sign end xml end end end end end end