From 9407594419dd03dfbe105980635c7bc22d56a728 Mon Sep 17 00:00:00 2001 From: Tristan McHardie Date: Fri, 14 Mar 2014 14:06:55 +1300 Subject: [PATCH 1/3] Allow per-transaction setting of user id and key --- lib/pxpay/request.rb | 12 +++++------- lib/pxpay/response.rb | 8 +++++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/pxpay/request.rb b/lib/pxpay/request.rb index 2073cd5..a5da2d1 100644 --- a/lib/pxpay/request.rb +++ b/lib/pxpay/request.rb @@ -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. @@ -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 @@ -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" diff --git a/lib/pxpay/response.rb b/lib/pxpay/response.rb index 37f2375..dde450f 100644 --- a/lib/pxpay/response.rb +++ b/lib/pxpay/response.rb @@ -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 @@ -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 From 0bbe1cf83a9081abb0db20c67370909a46f92e02 Mon Sep 17 00:00:00 2001 From: Tristan McHardie Date: Mon, 20 Jul 2015 09:26:00 +1200 Subject: [PATCH 2/3] Modernized gemspec --- pxpay.gemspec | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/pxpay.gemspec b/pxpay.gemspec index dea48d7..ba9f3e0 100644 --- a/pxpay.gemspec +++ b/pxpay.gemspec @@ -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, [">= 0"]) - s.add_development_dependency(%q, ["~> 1.0.0"]) - s.add_development_dependency(%q, ["~> 1.6"]) - s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, [">= 0"]) - s.add_development_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, [">= 0"]) - s.add_runtime_dependency(%q, [">= 0"]) - else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 1.0.0"]) - s.add_dependency(%q, ["~> 1.6"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - end - else - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, ["~> 1.0.0"]) - s.add_dependency(%q, ["~> 1.6"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) - end + s.add_development_dependency('shoulda', '~> 0') + s.add_development_dependency('bundler', '~> 1.0') + s.add_development_dependency('jeweler', '~> 1.6') + s.add_development_dependency('rcov', '~> 0') + s.add_runtime_dependency('nokogiri', '~> 0') + s.add_runtime_dependency('rest-client', '~> 0') + s.add_runtime_dependency('builder', '~> 0') end From 7f497b7250fe49431092d0f74ef69f106ba833e8 Mon Sep 17 00:00:00 2001 From: Tristan McHardie Date: Mon, 20 Jul 2015 09:30:00 +1200 Subject: [PATCH 3/3] Modernized gemspec --- pxpay.gemspec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pxpay.gemspec b/pxpay.gemspec index ba9f3e0..7999e1e 100644 --- a/pxpay.gemspec +++ b/pxpay.gemspec @@ -46,12 +46,12 @@ Gem::Specification.new do |s| s.specification_version = 3 - s.add_development_dependency('shoulda', '~> 0') + s.add_development_dependency('shoulda') s.add_development_dependency('bundler', '~> 1.0') s.add_development_dependency('jeweler', '~> 1.6') - s.add_development_dependency('rcov', '~> 0') - s.add_runtime_dependency('nokogiri', '~> 0') - s.add_runtime_dependency('rest-client', '~> 0') - s.add_runtime_dependency('builder', '~> 0') + s.add_development_dependency('rcov') + s.add_runtime_dependency('nokogiri') + s.add_runtime_dependency('rest-client') + s.add_runtime_dependency('builder') end