active_paypal_adaptive_payment 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        data/README.md
    CHANGED
    
    | @@ -12,6 +12,9 @@ This library is meant to interface with PayPal's Adaptive Payment Gateway. | |
| 12 12 | 
             
            * Peapprovals
         | 
| 13 13 | 
             
            * Refunds
         | 
| 14 14 | 
             
            * Currency conversions
         | 
| 15 | 
            +
            * getting/setting payment options
         | 
| 16 | 
            +
            * getting shipping addresses
         | 
| 17 | 
            +
            * getting a redirect for the embedded pay flow
         | 
| 15 18 | 
             
            * More soon!
         | 
| 16 19 |  | 
| 17 20 | 
             
            ## Installation
         | 
| @@ -28,24 +31,23 @@ See [iAuction: An Adaptive Payments Tutorial Featuring Parallel Payments](https: | |
| 28 31 |  | 
| 29 32 | 
             
            ### Init
         | 
| 30 33 |  | 
| 31 | 
            -
                gateway =
         | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
                         :appid => "APP-80W284485P519543T" )
         | 
| 34 | 
            +
                gateway =  ActiveMerchant::Billing::PaypalAdaptivePayment.new(
         | 
| 35 | 
            +
                  :login => "acutio_1313133342_biz_api1.gmail.com",
         | 
| 36 | 
            +
                  :password => "1255043567",
         | 
| 37 | 
            +
                  :signature => "Abg0gYcQlsdkls2HDJkKtA-p6pqhA1k-KTYE0Gcy1diujFio4io5Vqjf",
         | 
| 38 | 
            +
                  :appid => "APP-80W284485P519543T" )
         | 
| 37 39 |  | 
| 38 40 | 
             
            ### Pre-approved paymen
         | 
| 39 41 |  | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 42 | 
            +
                gateway.preapprove_payment (
         | 
| 43 | 
            +
                  :return_url => "returnURL",
         | 
| 44 | 
            +
                  :cancel_url => "cancelURL",
         | 
| 45 | 
            +
                  :senderEmail =>"email address of sender",
         | 
| 46 | 
            +
                  :start_date => Time.now,
         | 
| 47 | 
            +
                  :end_date => Time.now + (60*60*24) * 30,
         | 
| 48 | 
            +
                  :currency_code =>"currency code",
         | 
| 49 | 
            +
                  :max_amount => "maxTotalAmountOfAllPayments",
         | 
| 50 | 
            +
                  :maxNumberOfPayments => "maxNumberOfPayments" )
         | 
| 49 51 |  | 
| 50 52 | 
             
            ### Cancel pre-approved payment
         | 
| 51 53 |  | 
| @@ -69,7 +71,7 @@ See [iAuction: An Adaptive Payments Tutorial Featuring Parallel Payments](https: | |
| 69 71 | 
             
                  )
         | 
| 70 72 |  | 
| 71 73 | 
             
                  # for redirecting the customer to the actual paypal site to finish the payment.
         | 
| 72 | 
            -
             | 
| 74 | 
            +
                  redirect_to (gateway.redirect_url_for(response["payKey"]))
         | 
| 73 75 | 
             
                end
         | 
| 74 76 |  | 
| 75 77 | 
             
            Set the `:primary` flag to `false` for each recipient for a split payment.
         | 
| @@ -78,9 +80,12 @@ Maybe also check the tests for a sample implementation. | |
| 78 80 |  | 
| 79 81 | 
             
            ## Testing
         | 
| 80 82 |  | 
| 81 | 
            -
            First modify the  | 
| 83 | 
            +
            First modify the `test/fixtures.yml` to fit your app credentials (You
         | 
| 84 | 
            +
            will need at least a PayPal developer account).
         | 
| 82 85 |  | 
| 83 | 
            -
            After that you can  | 
| 86 | 
            +
            After that you can run them like this:
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                $ ruby -Ilib test/test_paypal_adaptive_payment.rb
         | 
| 84 89 |  | 
| 85 90 | 
             
            ## Debugging
         | 
| 86 91 |  | 
| @@ -96,8 +101,12 @@ xml request, raw json response and the URL of the endpoint. | |
| 96 101 |  | 
| 97 102 | 
             
            ## TODO
         | 
| 98 103 |  | 
| 99 | 
            -
            * Documentation
         | 
| 100 | 
            -
            *  | 
| 104 | 
            +
            * More/better Documentation.
         | 
| 105 | 
            +
            * Improve/change the tests implementation by maybe run them off
         | 
| 106 | 
            +
              fixture data and use a separate script/test for actually invoking
         | 
| 107 | 
            +
              requests to PayPal. This will allow other developers to implement
         | 
| 108 | 
            +
              the without being required to set and request the credentials from
         | 
| 109 | 
            +
              PayPal process.
         | 
| 101 110 |  | 
| 102 111 | 
             
            ## Contributors
         | 
| 103 112 |  | 
| @@ -106,6 +115,7 @@ xml request, raw json response and the URL of the endpoint. | |
| 106 115 | 
             
            * LeviRosol (<https://github.com/LeviRosol>)
         | 
| 107 116 | 
             
            * Florian95 (<https://github.com/Florian95>)
         | 
| 108 117 | 
             
            * akichatov (<https://github.com/akichatov>)
         | 
| 118 | 
            +
            * Patrick Sinclair (<https://github.com/metade>)
         | 
| 109 119 |  | 
| 110 120 | 
             
            ## Other previous contributors where some code was taken from.
         | 
| 111 121 |  | 
| @@ -47,6 +47,18 @@ module ActiveMerchant #:nodoc: | |
| 47 47 | 
             
                    commit('PaymentDetails', build_adaptive_payment_details_request(options))
         | 
| 48 48 | 
             
                  end
         | 
| 49 49 |  | 
| 50 | 
            +
                  def get_shipping_addresses(options)
         | 
| 51 | 
            +
                    commit('GetShippingAddresses', build_adaptive_get_shipping_addresses_request(options))
         | 
| 52 | 
            +
                  end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                  def get_payment_options(options)
         | 
| 55 | 
            +
                    commit('GetPaymentOptions', build_adaptive_get_payment_options_request(options))
         | 
| 56 | 
            +
                  end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  def set_payment_options(options)
         | 
| 59 | 
            +
                    commit('SetPaymentOptions', build_adaptive_set_payment_options_request(options))
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
             | 
| 50 62 | 
             
                  def refund(options)
         | 
| 51 63 | 
             
                    commit('Refund', build_adaptive_refund_details(options))
         | 
| 52 64 | 
             
                  end
         | 
| @@ -75,6 +87,10 @@ module ActiveMerchant #:nodoc: | |
| 75 87 | 
             
                    test? ? EMBEDDED_FLOW_TEST_URL : EMBEDDED_FLOW_LIVE_URL
         | 
| 76 88 | 
             
                  end
         | 
| 77 89 |  | 
| 90 | 
            +
                  def embedded_flow_url_for(token)
         | 
| 91 | 
            +
                    "#{embedded_flow_url}?paykey=#{token}"
         | 
| 92 | 
            +
                  end
         | 
| 93 | 
            +
             | 
| 78 94 | 
             
                  def debug
         | 
| 79 95 | 
             
                    "Url: #{@url}\n\n Request: #{@xml} \n\n Response: #{@response.json}"
         | 
| 80 96 | 
             
                  end
         | 
| @@ -148,6 +164,52 @@ module ActiveMerchant #:nodoc: | |
| 148 164 | 
             
                    end
         | 
| 149 165 | 
             
                  end
         | 
| 150 166 |  | 
| 167 | 
            +
                  def build_adaptive_get_shipping_addresses_request(opts)
         | 
| 168 | 
            +
                    @xml = ''
         | 
| 169 | 
            +
                    xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
         | 
| 170 | 
            +
                    xml.instruct!
         | 
| 171 | 
            +
                    xml.GetShippingAddressesRequest do |x|
         | 
| 172 | 
            +
                      x.requestEnvelope do |x|
         | 
| 173 | 
            +
                        x.detailLevel 'ReturnAll'
         | 
| 174 | 
            +
                        x.errorLanguage opts[:error_language] ||= 'en_US'
         | 
| 175 | 
            +
                      end
         | 
| 176 | 
            +
                      x.key opts[:pay_key]
         | 
| 177 | 
            +
                    end
         | 
| 178 | 
            +
                  end
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                  def build_adaptive_get_payment_options_request(opts)
         | 
| 181 | 
            +
                    @xml = ''
         | 
| 182 | 
            +
                    xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
         | 
| 183 | 
            +
                    xml.instruct!
         | 
| 184 | 
            +
                    xml.GetPaymentOptionsRequest do |x|
         | 
| 185 | 
            +
                      x.requestEnvelope do |x|
         | 
| 186 | 
            +
                        x.detailLevel 'ReturnAll'
         | 
| 187 | 
            +
                        x.errorLanguage opts[:error_language] ||= 'en_US'
         | 
| 188 | 
            +
                      end
         | 
| 189 | 
            +
                      x.payKey opts[:pay_key]
         | 
| 190 | 
            +
                    end
         | 
| 191 | 
            +
                  end
         | 
| 192 | 
            +
             | 
| 193 | 
            +
                  def build_adaptive_set_payment_options_request(opts)
         | 
| 194 | 
            +
                    opts[:sender] ||= {}
         | 
| 195 | 
            +
                    
         | 
| 196 | 
            +
                    @xml = ''
         | 
| 197 | 
            +
                    xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
         | 
| 198 | 
            +
                    xml.instruct!
         | 
| 199 | 
            +
                    xml.SetPaymentOptionsRequest do |x|
         | 
| 200 | 
            +
                      x.requestEnvelope do |x|
         | 
| 201 | 
            +
                        x.detailLevel 'ReturnAll'
         | 
| 202 | 
            +
                        x.errorLanguage opts[:error_language] ||= 'en_US'
         | 
| 203 | 
            +
                      end
         | 
| 204 | 
            +
                      x.senderOptions do |x|
         | 
| 205 | 
            +
                        x.shareAddress opts[:sender][:share_address] if opts[:sender][:share_address]
         | 
| 206 | 
            +
                        x.sharePhoneNumber opts[:sender][:share_phone_number] if opts[:sender][:share_phone_number]
         | 
| 207 | 
            +
                        x.requireShippingAddressSelection opts[:sender][:require_shipping_address_selection] if opts[:sender][:require_shipping_address_selection]
         | 
| 208 | 
            +
                      end
         | 
| 209 | 
            +
                      x.payKey opts[:pay_key]
         | 
| 210 | 
            +
                    end
         | 
| 211 | 
            +
                  end
         | 
| 212 | 
            +
             | 
| 151 213 | 
             
                  def build_adaptive_refund_details(options)
         | 
| 152 214 | 
             
                    @xml = ''
         | 
| 153 215 | 
             
                    xml = Builder::XmlMarkup.new :target => @xml, :indent => 2
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: active_paypal_adaptive_payment
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.6
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011-11- | 
| 12 | 
            +
            date: 2011-11-23 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activemerchant
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &80394670 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: 1.5.1
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *80394670
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: multi_json
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &80394430 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: 1.0.0
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *80394430
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: hashie
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &80394190 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,10 +43,10 @@ dependencies: | |
| 43 43 | 
             
                    version: 1.2.0
         | 
| 44 44 | 
             
              type: :runtime
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *80394190
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 48 | 
             
              name: money
         | 
| 49 | 
            -
              requirement: & | 
| 49 | 
            +
              requirement: &80393950 !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - ! '>='
         | 
| @@ -54,10 +54,10 @@ dependencies: | |
| 54 54 | 
             
                    version: 3.6.0
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements: * | 
| 57 | 
            +
              version_requirements: *80393950
         | 
| 58 58 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 59 | 
             
              name: mocha
         | 
| 60 | 
            -
              requirement: & | 
| 60 | 
            +
              requirement: &80393710 !ruby/object:Gem::Requirement
         | 
| 61 61 | 
             
                none: false
         | 
| 62 62 | 
             
                requirements:
         | 
| 63 63 | 
             
                - - ! '>='
         | 
| @@ -65,7 +65,7 @@ dependencies: | |
| 65 65 | 
             
                    version: 0.10.0
         | 
| 66 66 | 
             
              type: :runtime
         | 
| 67 67 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements: * | 
| 68 | 
            +
              version_requirements: *80393710
         | 
| 69 69 | 
             
            description: ! '    This library is meant to interface with PayPal''s Adaptive Payment
         | 
| 70 70 | 
             
              Gateway.
         | 
| 71 71 |  | 
| @@ -76,17 +76,17 @@ executables: [] | |
| 76 76 | 
             
            extensions: []
         | 
| 77 77 | 
             
            extra_rdoc_files: []
         | 
| 78 78 | 
             
            files:
         | 
| 79 | 
            -
            - lib/active_paypal_adaptive_payment.rb
         | 
| 80 | 
            -
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment.rb
         | 
| 81 | 
            -
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment/helper.rb
         | 
| 82 79 | 
             
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment/return.rb
         | 
| 83 80 | 
             
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment/notification.rb
         | 
| 81 | 
            +
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment/helper.rb
         | 
| 82 | 
            +
            - lib/active_merchant/billing/integrations/paypal_adaptive_payment.rb
         | 
| 84 83 | 
             
            - lib/active_merchant/billing/integrations/notification.rb
         | 
| 85 | 
            -
            - lib/active_merchant/billing/gateways/paypal_adaptive_payment.rb
         | 
| 86 | 
            -
            - lib/active_merchant/billing/gateways/paypal_adaptive_payments/ext.rb
         | 
| 87 84 | 
             
            - lib/active_merchant/billing/gateways/paypal_adaptive_payments/exceptions.rb
         | 
| 85 | 
            +
            - lib/active_merchant/billing/gateways/paypal_adaptive_payments/ext.rb
         | 
| 88 86 | 
             
            - lib/active_merchant/billing/gateways/paypal_adaptive_payments/adaptive_payment_response.rb
         | 
| 89 87 | 
             
            - lib/active_merchant/billing/gateways/paypal_adaptive_payment_common.rb
         | 
| 88 | 
            +
            - lib/active_merchant/billing/gateways/paypal_adaptive_payment.rb
         | 
| 89 | 
            +
            - lib/active_paypal_adaptive_payment.rb
         | 
| 90 90 | 
             
            - MIT-LICENSE
         | 
| 91 91 | 
             
            - README.md
         | 
| 92 92 | 
             
            - CHANGELOG.md
         |