Sha256: 74891a6ffbafa8a7eddfc56d7f56e234476cb5f98c4160fab67b3d2380825eff

Contents?: true

Size: 1.02 KB

Versions: 5

Compression:

Stored size: 1.02 KB

Contents

module Pxpay
  # The response object received from Payment Express
  class Response
    require 'rest_client'
    require 'builder'
    attr_accessor :post
    
    # Create a new Payment Express response object by passing in the return parameters provided to the success/failure URL
    
    def initialize(params)
      @result = params[:result]
      @user_id = params[:userid]
      @post = build_xml( params[:result] )
    end
    
    # Retrieving the transaction details from Payment Express as an instance of Pxpay::Notification
    def response
      response = ::RestClient.post( 'https://www.paymentexpress.com/pxpay/pxaccess.aspx',  self.post )
      return ::Pxpay::Notification.new( response )
    end
  
    private
    # Internal method to build the xml to send to Payment Express
    def build_xml( result )
      xml = ::Builder::XmlMarkup.new
    
      xml.ProcessResponse do 
        xml.PxPayUserId ::Pxpay::Base.pxpay_user_id
        xml.PxPayKey ::Pxpay::Base.pxpay_key
        xml.Response result
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pxpay-0.2.4 lib/pxpay/response.rb
pxpay-0.2.3 lib/pxpay/response.rb
pxpay-0.2.2 lib/pxpay/response.rb
pxpay-0.2.1 lib/pxpay/response.rb
pxpay-0.2.0 lib/pxpay/response.rb