wepay-rails 0.1.43 → 0.1.44

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.rdoc CHANGED
@@ -45,7 +45,7 @@ Finally, your checkout controller (or some controller that will interact with th
45
45
  if current_user.has_wepay_auth_code?
46
46
  if wepay_access_token_exists?
47
47
  # Send payment off to wepay or get the user or something else
48
- render :json => gateway.wepay_user
48
+ render :json => wepay_gateway.wepay_user
49
49
  return
50
50
  else
51
51
  initialize_wepay_access_token(current_user.wepay_auth_code)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.43
1
+ 0.1.44
@@ -2,11 +2,17 @@ module WepayRails
2
2
  module Helpers
3
3
  module ControllerHelpers
4
4
 
5
- def redirect_to_wepay_for_auth(scope=gateway.scope)
6
- redirect_to gateway.auth_code_url(scope)
5
+ def redirect_to_wepay_for_auth(scope=wepay_gateway.scope)
6
+ redirect_to wepay_gateway.auth_code_url(scope)
7
7
  end
8
8
 
9
+ # @deprecated Use wepay_gateway instead of gateway
9
10
  def gateway
11
+ warn "[DEPRECATION] Use wepay_gateway instead of gateway"
12
+ wepay_gateway
13
+ end
14
+
15
+ def wepay_gateway
10
16
  @gateway ||= WepayRails::Payments::Gateway.new(wepay_access_token)
11
17
  end
12
18
 
@@ -21,10 +27,10 @@ module WepayRails
21
27
  # Response
22
28
  # {"user_id":"123456","access_token":"1337h4x0rzabcd12345","token_type":"BEARER"} Example
23
29
  def initialize_wepay_access_token(auth_code)
24
- session[unique_wepay_access_token_key] = gateway.access_token(auth_code)
30
+ session[unique_wepay_access_token_key] = wepay_gateway.access_token(auth_code)
25
31
  return
26
32
  rescue WepayRails::Exceptions::ExpiredTokenError => e
27
- redirect_to_wepay_for_auth(gateway.scope) and return
33
+ redirect_to_wepay_for_auth(wepay_gateway.scope) and return
28
34
  end
29
35
 
30
36
  # Since we are saving the access token in the session,
@@ -43,6 +49,48 @@ module WepayRails
43
49
  def wepay_access_token_exists?
44
50
  @access_token_exists ||= wepay_access_token.present?
45
51
  end
52
+
53
+ # Many of the settings you pass in here are already factored in from
54
+ # the wepay.yml file and only need to be overridden if you insist on doing
55
+ # so when this method is called. The following list of key values are pulled
56
+ # in for you from your wepay.yml file:
57
+ #
58
+ # Note: @config is your wepay.yml as a Hash
59
+ # :callback_uri => @config[:ipn_callback_uri],
60
+ # :redirect_uri => @config[:checkout_redirect_uri],
61
+ # :fee_payer => @config[:fee_payer],
62
+ # :type => @config[:checkout_type],
63
+ # :charge_tax => @config[:charge_tax] ? 1 : 0,
64
+ # :app_fee => @config[:app_fee],
65
+ # :auto_capture => @config[:auto_capture] ? 1 : 0,
66
+ # :require_shipping => @config[:require_shipping] ? 1 : 0,
67
+ # :shipping_fee => @config[:shipping_fee],
68
+ # :charge_tax => @config[:charge_tax],
69
+ # :account_id => wepay_user['account_id'] # wepay-rails goes and gets this for you, but you can override it if you want to.
70
+ #
71
+ #
72
+ # params hash key values possibilities are:
73
+ # Parameter: Required: Description:
74
+ # :account_id Yes The unique ID of the account you want to create a checkout for.
75
+ # :short_description Yes A short description of what is being paid for.
76
+ # :long_description No A long description of what is being paid for.
77
+ # :type Yes The the checkout type (one of the following: GOODS, SERVICE, DONATION, or PERSONAL)
78
+ # :reference_id No The unique reference id of the checkout (set by the application in /checkout/create
79
+ # :amount Yes The amount that the payer will pay.
80
+ # :app_fee No The amount that the application will receive in fees.
81
+ # :fee_payer No Who will pay the fees (WePay's fees and any app fees). Set to "Payer" to charge fees to the person paying (Payer will pay amount + fees, payee will receive amount). Set to "Payee" to charge fees to the person receiving money (Payer will pay amount, Payee will receive amount - fees). Defaults to "Payer".
82
+ # :redirect_uri No The uri the payer will be redirected to after paying.
83
+ # :callback_uri No The uri that will receive any Instant Payment Notifications sent. Needs to be a full uri (ex https://www.wepay.com )
84
+ # :auto_capture No A boolean value (0 or 1). Default is 1. If set to 0 then the payment will not automatically be released to the account and will be held by WePay in payment state 'reserved'. To release funds to the account you must call /checkout/capture
85
+ # :require_shipping No A boolean value (0 or 1). If set to 1 then the payer will be asked to enter a shipping address when they pay. After payment you can retrieve this shipping address by calling /checkout
86
+ # :shipping_fee No The amount that you want to charge for shipping.
87
+ # :charge_tax No A boolean value (0 or 1). If set to 1 and the account has a relevant tax entry (see /account/set_tax), then tax will be charged.
88
+ def init_checkout_and_send_user_to_wepay(params)
89
+ create_checkout = wepay_gateway.perform_checkout(params)
90
+ response = JSON.parse(create_checkout.body)
91
+ raise WepayRails::Exceptions::InitializeCheckoutError.new("A problem occurred while trying to checkout. Wepay didn't send us back a checkout uri") unless response && response.has_key?('checkout_uri')
92
+ redirect_to response['checkout_uri'] and return
93
+ end
46
94
  end
47
95
  end
48
96
  end
data/lib/wepay-rails.rb CHANGED
@@ -6,6 +6,7 @@ module WepayRails
6
6
  module Exceptions
7
7
  class AccessTokenError < StandardError; end
8
8
  class ExpiredTokenError < StandardError; end
9
+ class InitializeCheckoutError < StandardError; end
9
10
  end
10
11
 
11
12
  module Payments
@@ -80,10 +81,72 @@ module WepayRails
80
81
  {'Authorization' => "Bearer: #{@wepay_access_token}"}
81
82
  end
82
83
 
84
+ # Make a call to wepay to get the user info. This will only make one call
85
+ # per request. Any subsequent calls to wepay_user will return the data
86
+ # retrieved from the first call.
83
87
  def wepay_user
84
- response = self.class.get("#{@base_uri}/user", {:headers => wepay_auth_header})
88
+ user_api = lambda {
89
+ response = self.class.get("#{@base_uri}/v2/user", {:headers => wepay_auth_header})
90
+ JSON.parse(response.body)
91
+ }
92
+
93
+ @wepay_user ||= user_api.call
94
+ end
95
+
96
+ # Many of the settings you pass in here are already factored in from
97
+ # the wepay.yml file and only need to be overridden if you insist on doing
98
+ # so when this method is called. The following list of key values are pulled
99
+ # in for you from your wepay.yml file:
100
+ #
101
+ # Note: @config is your wepay.yml as a Hash
102
+ # :callback_uri => @config[:ipn_callback_uri],
103
+ # :redirect_uri => @config[:checkout_redirect_uri],
104
+ # :fee_payer => @config[:fee_payer],
105
+ # :type => @config[:checkout_type],
106
+ # :charge_tax => @config[:charge_tax] ? 1 : 0,
107
+ # :app_fee => @config[:app_fee],
108
+ # :auto_capture => @config[:auto_capture] ? 1 : 0,
109
+ # :require_shipping => @config[:require_shipping] ? 1 : 0,
110
+ # :shipping_fee => @config[:shipping_fee],
111
+ # :charge_tax => @config[:charge_tax],
112
+ # :account_id => wepay_user['account_id'] # wepay-rails goes and gets this for you, but you can override it if you want to.
113
+ #
114
+ #
115
+ # params hash key values possibilities are:
116
+ # Parameter: Required: Description:
117
+ # :account_id Yes The unique ID of the account you want to create a checkout for.
118
+ # :short_description Yes A short description of what is being paid for.
119
+ # :long_description No A long description of what is being paid for.
120
+ # :type Yes The the checkout type (one of the following: GOODS, SERVICE, DONATION, or PERSONAL)
121
+ # :reference_id No The unique reference id of the checkout (set by the application in /checkout/create
122
+ # :amount Yes The amount that the payer will pay.
123
+ # :app_fee No The amount that the application will receive in fees.
124
+ # :fee_payer No Who will pay the fees (WePay's fees and any app fees). Set to "Payer" to charge fees to the person paying (Payer will pay amount + fees, payee will receive amount). Set to "Payee" to charge fees to the person receiving money (Payer will pay amount, Payee will receive amount - fees). Defaults to "Payer".
125
+ # :redirect_uri No The uri the payer will be redirected to after paying.
126
+ # :callback_uri No The uri that will receive any Instant Payment Notifications sent. Needs to be a full uri (ex https://www.wepay.com )
127
+ # :auto_capture No A boolean value (0 or 1). Default is 1. If set to 0 then the payment will not automatically be released to the account and will be held by WePay in payment state 'reserved'. To release funds to the account you must call /checkout/capture
128
+ # :require_shipping No A boolean value (0 or 1). If set to 1 then the payer will be asked to enter a shipping address when they pay. After payment you can retrieve this shipping address by calling /checkout
129
+ # :shipping_fee No The amount that you want to charge for shipping.
130
+ # :charge_tax No A boolean value (0 or 1). If set to 1 and the account has a relevant tax entry (see /account/set_tax), then tax will be charged.
131
+ def perform_checkout(params)
132
+ defaults = {
133
+ :callback_uri => @config[:ipn_callback_uri],
134
+ :redirect_uri => @config[:checkout_redirect_uri],
135
+ :fee_payer => @config[:fee_payer],
136
+ :type => @config[:checkout_type],
137
+ :charge_tax => @config[:charge_tax] ? 1 : 0,
138
+ :app_fee => @config[:app_fee],
139
+ :auto_capture => @config[:auto_capture] ? 1 : 0,
140
+ :require_shipping => @config[:require_shipping] ? 1 : 0,
141
+ :shipping_fee => @config[:shipping_fee],
142
+ :charge_tax => @config[:charge_tax],
143
+ :account_id => wepay_user['account_id']
144
+ }.merge(params)
145
+
146
+ response = self.class.get("#{@base_uri}/v2/checkout/create", {:headers => wepay_auth_header}.merge!(defaults))
85
147
  JSON.parse(response.body)
86
148
  end
149
+
87
150
  end
88
151
 
89
152
  include WepayRails::Exceptions
data/wepay-rails.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{wepay-rails}
8
- s.version = "0.1.43"
8
+ s.version = "0.1.44"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Adam Medeiros"]
12
- s.date = %q{2011-07-22}
11
+ s.authors = [%q{Adam Medeiros}]
12
+ s.date = %q{2011-08-14}
13
13
  s.description = %q{Rails gem that interfaces with the WePay API}
14
14
  s.email = %q{adammede@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -35,9 +35,9 @@ Gem::Specification.new do |s|
35
35
  "wepay-rails.gemspec"
36
36
  ]
37
37
  s.homepage = %q{http://github.com/adamthedeveloper/wepay-rails}
38
- s.licenses = ["MIT"]
39
- s.require_paths = ["lib"]
40
- s.rubygems_version = %q{1.6.2}
38
+ s.licenses = [%q{MIT}]
39
+ s.require_paths = [%q{lib}]
40
+ s.rubygems_version = %q{1.8.6}
41
41
  s.summary = %q{Rails gem that interfaces with the WePay API}
42
42
 
43
43
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wepay-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.43
4
+ version: 0.1.44
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-22 00:00:00.000000000 -07:00
13
- default_executable:
12
+ date: 2011-08-14 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: httparty
17
- requirement: &2151867560 !ruby/object:Gem::Requirement
16
+ requirement: &12465740 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
19
  - - ! '>='
@@ -22,10 +21,10 @@ dependencies:
22
21
  version: '0'
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *2151867560
24
+ version_requirements: *12465740
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: shoulda
28
- requirement: &2151865880 !ruby/object:Gem::Requirement
27
+ requirement: &12464560 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ! '>='
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: *2151865880
35
+ version_requirements: *12464560
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: bundler
39
- requirement: &2151864520 !ruby/object:Gem::Requirement
38
+ requirement: &12463340 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ~>
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: 1.0.0
45
44
  type: :development
46
45
  prerelease: false
47
- version_requirements: *2151864520
46
+ version_requirements: *12463340
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: jeweler
50
- requirement: &2151862840 !ruby/object:Gem::Requirement
49
+ requirement: &12462100 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ~>
@@ -55,10 +54,10 @@ dependencies:
55
54
  version: 1.6.4
56
55
  type: :development
57
56
  prerelease: false
58
- version_requirements: *2151862840
57
+ version_requirements: *12462100
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: rcov
61
- requirement: &2151860140 !ruby/object:Gem::Requirement
60
+ requirement: &12461120 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ! '>='
@@ -66,7 +65,7 @@ dependencies:
66
65
  version: '0'
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *2151860140
68
+ version_requirements: *12461120
70
69
  description: Rails gem that interfaces with the WePay API
71
70
  email: adammede@gmail.com
72
71
  executables: []
@@ -91,7 +90,6 @@ files:
91
90
  - test/helper.rb
92
91
  - test/test_wepay-rails.rb
93
92
  - wepay-rails.gemspec
94
- has_rdoc: true
95
93
  homepage: http://github.com/adamthedeveloper/wepay-rails
96
94
  licenses:
97
95
  - MIT
@@ -107,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
105
  version: '0'
108
106
  segments:
109
107
  - 0
110
- hash: -4268076542232812393
108
+ hash: -744223484762769908
111
109
  required_rubygems_version: !ruby/object:Gem::Requirement
112
110
  none: false
113
111
  requirements:
@@ -116,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
114
  version: '0'
117
115
  requirements: []
118
116
  rubyforge_project:
119
- rubygems_version: 1.6.2
117
+ rubygems_version: 1.8.6
120
118
  signing_key:
121
119
  specification_version: 3
122
120
  summary: Rails gem that interfaces with the WePay API