Sha256: eb6a2c6bf506308022b0d36c3f41aaa7097aa0a61c1e4be2e568c73dd31d9d58

Contents?: true

Size: 1 KB

Versions: 6

Compression:

Stored size: 1 KB

Contents

module ActiveMerchant
  module Billing
    class CyberSourceGateway

      # See https://github.com/killbill/killbill-cybersource-plugin/issues/4
      def commit(request, options)
        request = build_request(request, options)
        begin
          raw_response = ssl_post(test? ? self.test_url : self.live_url, request)
        rescue ResponseError => e
          raw_response = e.response.body
        end
        response = parse(raw_response)

        success = response[:decision] == 'ACCEPT'
        message = @@response_codes[('r' + response[:reasonCode]).to_sym] rescue response[:message]
        authorization = success ? [options[:order_id], response[:requestID], response[:requestToken]].compact.join(";") : nil

        Response.new(success, message, response,
                     :test => test?,
                     :authorization => authorization,
                     :avs_result => {:code => response[:avsCode]},
                     :cvv_result => response[:cvCode]
        )
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
killbill-cybersource-4.0.0 lib/cybersource/ext/active_merchant/active_merchant.rb
killbill-cybersource-3.3.0 lib/cybersource/ext/active_merchant/active_merchant.rb
killbill-cybersource-3.2.0 lib/cybersource/ext/active_merchant/active_merchant.rb
killbill-cybersource-3.1.0 lib/cybersource/ext/active_merchant/active_merchant.rb
killbill-cybersource-3.0.0 lib/cybersource/ext/active_merchant/active_merchant.rb
killbill-cybersource-2.0.0 lib/cybersource/ext/active_merchant/active_merchant.rb