Skip to content
This repository was archived by the owner on Apr 17, 2018. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions lib/pxpay/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ class Request
# Create a new instance of Pxpay::Request
# Pxpay::Request.new( id, amount, options = {} )
# Current available options are:
# :pxpay_user_id, your Pxpay UserID, optionally used for overriding Pxpay::Base.pxpay_user_id.
# :pxpay_key, your Pxpay Key, optionally used for overriding Pxpay::Base.pxpay_key.
# :currency_input, currency for transaction, default is NZD, can be any of Pxpay::Base.currency_types
# :merchant_reference, a reference field, default is the id.
# :email_address, email address of user, optional.
Expand All @@ -37,11 +39,7 @@ def url
if response_text.at_css("Request").attributes["valid"].value == "1"
url = response_text.at_css("URI").inner_html
else
if Pxpay::Base.pxpay_user_id && Pxpay::Base.pxpay_key
raise Pxpay::Error, response_text.at_css("Request").inner_html
else
raise Pxpay::MissingKey, "Your Pxpay config is not set up properly, run rails generate pxpay:install"
end
raise Pxpay::Error, response_text.at_css("Request").inner_html
end
return URI::extract(url).first.gsub("&", "&")
end
Expand All @@ -51,8 +49,8 @@ def url
def build_xml( id, price, options )
xml = ::Builder::XmlMarkup.new
xml.GenerateRequest do
xml.PxPayUserId ::Pxpay::Base.pxpay_user_id
xml.PxPayKey ::Pxpay::Base.pxpay_key
xml.PxPayUserId options[:pxpay_user_id] || ::Pxpay::Base.pxpay_user_id
xml.PxPayKey options[:pxpay_key] || ::Pxpay::Base.pxpay_key
xml.AmountInput sprintf("%.2f", price)
xml.TxnId id
xml.TxnType options[:txn_type] ? options[:txn_type].to_s.capitalize : "Purchase"
Expand Down
8 changes: 5 additions & 3 deletions lib/pxpay/response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ class Response

# Create a new Payment Express response object by passing in the return parameters provided to the success/failure URL

def initialize(params)
def initialize(params, px_pay_user_id = nil, px_pay_key = nil)
@result = params[:result]
@user_id = params[:userid]
@px_pay_user_id = px_pay_user_id
@px_pay_key = px_pay_key
@post = build_xml( params[:result] )
end

Expand All @@ -25,8 +27,8 @@ 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.PxPayUserId @px_pay_user_id || ::Pxpay::Base.pxpay_user_id
xml.PxPayKey @px_pay_key || ::Pxpay::Base.pxpay_key
xml.Response result
end
end
Expand Down
45 changes: 8 additions & 37 deletions pxpay.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -44,43 +44,14 @@ Gem::Specification.new do |s|
s.rubygems_version = "1.8.10"
s.summary = "Ruby wrapper for the Payment Express' PxPay API"

if s.respond_to? :specification_version then
s.specification_version = 3
s.specification_version = 3

if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
s.add_development_dependency(%q<shoulda>, [">= 0"])
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_development_dependency(%q<jeweler>, ["~> 1.6"])
s.add_development_dependency(%q<rcov>, [">= 0"])
s.add_development_dependency(%q<builder>, [">= 0"])
s.add_development_dependency(%q<nokogiri>, [">= 0"])
s.add_development_dependency(%q<rest-client>, [">= 0"])
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
s.add_runtime_dependency(%q<builder>, [">= 0"])
else
s.add_dependency(%q<shoulda>, [">= 0"])
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_dependency(%q<jeweler>, ["~> 1.6"])
s.add_dependency(%q<rcov>, [">= 0"])
s.add_dependency(%q<builder>, [">= 0"])
s.add_dependency(%q<nokogiri>, [">= 0"])
s.add_dependency(%q<rest-client>, [">= 0"])
s.add_dependency(%q<nokogiri>, [">= 0"])
s.add_dependency(%q<rest-client>, [">= 0"])
s.add_dependency(%q<builder>, [">= 0"])
end
else
s.add_dependency(%q<shoulda>, [">= 0"])
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
s.add_dependency(%q<jeweler>, ["~> 1.6"])
s.add_dependency(%q<rcov>, [">= 0"])
s.add_dependency(%q<builder>, [">= 0"])
s.add_dependency(%q<nokogiri>, [">= 0"])
s.add_dependency(%q<rest-client>, [">= 0"])
s.add_dependency(%q<nokogiri>, [">= 0"])
s.add_dependency(%q<rest-client>, [">= 0"])
s.add_dependency(%q<builder>, [">= 0"])
end
s.add_development_dependency('shoulda')
s.add_development_dependency('bundler', '~> 1.0')
s.add_development_dependency('jeweler', '~> 1.6')
s.add_development_dependency('rcov')
s.add_runtime_dependency('nokogiri')
s.add_runtime_dependency('rest-client')
s.add_runtime_dependency('builder')
end