From 8119ebd442888d3ea7b15889c85606fef64f3c05 Mon Sep 17 00:00:00 2001 From: codyfauser Date: Mon, 28 Jan 2008 20:25:13 +0000 Subject: [PATCH] Remove @response instance variable in PsigateGateway. Don't use billing address for shipping git-svn-id: https://activemerchant.googlecode.com/svn/trunk/active_merchant@622 6513ea26-6c20-0410-8a68-89cd7235086d --- CHANGELOG | 1 + .../billing/gateways/psigate.rb | 28 +++++++++---------- test/unit/gateways/psigate_test.rb | 18 ------------ 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 9f1a2284c64..865eb69b96d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ = ActiveMerchant CHANGELOG +* Remove @response instance variable in PsigateGateway. Don't use billing address for shipping [cody] * Remove @response instance variable in PaypalGateway. Don't use billing address for shipping. [cody] * Remove @response instance variable in PayflowGateway [cody] * Remove @response instance variable in MonerisGateway [cody] diff --git a/lib/active_merchant/billing/gateways/psigate.rb b/lib/active_merchant/billing/gateways/psigate.rb index c3f84529115..40864e6be53 100644 --- a/lib/active_merchant/billing/gateways/psigate.rb +++ b/lib/active_merchant/billing/gateways/psigate.rb @@ -86,21 +86,19 @@ def credit(money, authorization, options = {}) private def commit(money, creditcard, options = {}) - parameters = parameters(money, creditcard, options) - - url = test? ? TEST_URL : LIVE_URL - data = ssl_post(url, post_data(parameters)) - - @response = parse(data) - success = (@response[:approved] == "APPROVED") - - Response.new(success, message_from(@response), @response, + response = parse(ssl_post(test? ? TEST_URL : LIVE_URL, post_data(money, creditcard, options))) + + Response.new(successful?(response), message_from(response), response, :test => test?, - :authorization => @response[:orderid], - :avs_result => { :code => @response[:avsresult] }, - :cvv_result => @response[:cardidresult] + :authorization => response[:orderid], + :avs_result => { :code => response[:avsresult] }, + :cvv_result => response[:cardidresult] ) end + + def successful?(response) + response[:approved] == "APPROVED" + end def parse(xml) response = {:message => "Global Error Receipt", :complete => false} @@ -115,12 +113,12 @@ def parse(xml) response end - def post_data(parameters = {}) + def post_data(money, creditcard, options) xml = REXML::Document.new xml << REXML::XMLDecl.new root = xml.add_element("Order") - for key, value in parameters + for key, value in parameters(money, creditcard, options) root.add_element(key.to_s).text = value if value end @@ -178,7 +176,7 @@ def parameters(money, creditcard, options = {}) params[:Bcompany] = address[:company] unless address[:company].blank? end - if address = options[:shipping_address] || options[:address] + if address = options[:shipping_address] params[:Sname] = address[:name] || creditcard.name params[:Saddress1] = address[:address1] unless address[:address1].blank? params[:Saddress2] = address[:address2] unless address[:address2].blank? diff --git a/test/unit/gateways/psigate_test.rb b/test/unit/gateways/psigate_test.rb index afc3f5edcf2..3dcf541a1d8 100644 --- a/test/unit/gateways/psigate_test.rb +++ b/test/unit/gateways/psigate_test.rb @@ -45,24 +45,6 @@ def test_amount_style end end - def test_purchase_is_valid_xml - parameters = @gateway.send(:parameters, 2000, @credit_card, {:order_id => 1004, - :billing_address => address, - :email => 'jack@yahoo.com', - :CardAction => 0 } ) - assert data = @gateway.send(:post_data, parameters) - assert_nothing_raised{ REXML::Document.new(data) } - end - - def test_capture_is_valid_xml - parameters = @gateway.send(:parameters, 2000, CreditCard.new({}), {:order_id => 1004, - :CardAction => 2 } ) - - assert data = @gateway.send(:post_data, parameters) - assert REXML::Document.new(data) - assert_equal xml_capture_fixture.size, data.size - end - def test_supported_countries assert_equal ['CA'], PsigateGateway.supported_countries end