spree_pxpay_paymentmethod 2.0.0 → 2.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7f645e0b00d472f1025931be9f2c0ca76db24920
4
- data.tar.gz: 486c54536cca522fb8c59e0c3509f945f387c953
3
+ metadata.gz: d0ed69196f2d762ffc7af8d7713c2ccff87f75ea
4
+ data.tar.gz: 41b316335c8dc8c4d0d291b31b35fd84154a0845
5
5
  SHA512:
6
- metadata.gz: 7ab938e559ca0d1c01fb4f78855bab6de175350855a79245d611b4ffb9ad8ec5c3effe439c06a1928a819554a2e11deafddc0630ea8bbef86de6c5ba9753b185
7
- data.tar.gz: c40baf3343672e169ee7d9c85a1b58e99e2a1c0724a84b3afb5b359b7fde33928f2907929d092df662edb842a4d7ea64e53a957d0f152a94ea0cfc394c54c5e2
6
+ metadata.gz: 94100f96e04359d35946de612f7bf6f0fc3e1d46ae39386ec9c116977479be9161e1859bf0ffa48d39e9ceac1ed4c0cdaa8ac976615764b5365caab9ac52cdf1
7
+ data.tar.gz: 9e480e8474e2423f4074d99ca9eb4fb4986126871c5868b33d4a52e1897d37ef20b5e7bcddfd17e3414e30443ac8eaa95839f3ad8bb53d3724ba630e6fab725c
data/README.md CHANGED
@@ -34,6 +34,7 @@ Inspired by the [spree-hosted-gateway gem](https://github.com/joshmcarthur/spree
34
34
 
35
35
  ## CONTRIBUTORS
36
36
 
37
- @jstirk
38
- @Michael1969
39
- @lukes
37
+ * @tuttinator
38
+ * @jstirk
39
+ * @Michael1969
40
+ * @lukes
@@ -1,51 +1,5 @@
1
1
  Spree::CheckoutController.class_eval do
2
2
 
3
- skip_before_filter :verify_authenticity_token, :only => [:dps_callback]
4
- skip_before_filter :load_order, :only => :px_pay_callback
5
- skip_before_filter :ensure_order_not_completed, :only => :px_pay_callback
6
- skip_before_filter :ensure_checkout_allowed , :only => :px_pay_callback
7
- skip_before_filter :ensure_sufficient_stock_lines, :only => :px_pay_callback
8
- skip_before_filter :ensure_valid_state , :only => :px_pay_callback
9
-
10
- skip_before_filter :associate_user , :only => :px_pay_callback
11
- skip_before_filter :check_authorization , :only => :px_pay_callback
12
- skip_before_filter :apply_coupon_code , :only => :px_pay_callback
13
- skip_before_filter :setup_for_current_state , :only => :px_pay_callback
14
-
15
- # Handles the response from PxPay (success or failure) and updates the
16
- # relevant Payment record. works with spree 2.1.7
17
- def px_pay_callback
18
- response = Pxpay::Response.new(params).response.to_hash
19
-
20
- payment = Spree::Payment.find(response[:merchant_reference])
21
- if payment
22
-
23
- if response[:success] == '1'
24
- payment.process!
25
- payment.response_code = response[:auth_code]
26
- payment.save
27
- payment.complete
28
-
29
- order = payment.order
30
- order.state = 'complete'
31
- order.completed_at = Time.now
32
- order.save
33
-
34
- order.deliver_order_confirmation_email
35
-
36
- flash.notice = Spree.t(:order_processed_successfully)
37
- redirect_to order_path(order, :token => order.token)
38
- else
39
- payment.void
40
- redirect_to cart_path, :notice => 'Your credit card details were declined. Please check your details and try again.'
41
- end
42
-
43
- else
44
- raise Spree::Core::GatewayError, "Unknown merchant_reference: #{response[:merchant_reference]}"
45
- end
46
- end
47
-
48
-
49
3
  private
50
4
 
51
5
  alias :before_payment_without_px_pay_redirection :before_payment
@@ -0,0 +1,39 @@
1
+ class PxPayGatewayCallbackController < ActionController::Base
2
+
3
+ include Spree::Core::Engine.routes.url_helpers
4
+
5
+ # Handles the response from PxPay (success or failure) and updates the
6
+ # relevant Payment record. works with spree 2.1.7
7
+ def callback
8
+ response = Pxpay::Response.new(params).response.to_hash
9
+
10
+ payment = Spree::Payment.find(response[:merchant_reference])
11
+ order = payment.order
12
+
13
+ if payment.checkout?
14
+
15
+ if response[:success] == '1'
16
+ payment.process!
17
+ payment.response_code = response[:auth_code]
18
+ payment.save
19
+ payment.complete
20
+
21
+ order.state = 'complete'
22
+ order.completed_at = Time.now
23
+ order.save
24
+
25
+ order.deliver_order_confirmation_email
26
+ else
27
+ payment.void
28
+ redirect_to cart_path, :notice => 'Your credit card details were declined. Please check your details and try again.'
29
+ return
30
+ end
31
+
32
+ end
33
+
34
+ flash.notice = Spree.t(:order_processed_successfully)
35
+ redirect_to order_path(order, :token => order.token)
36
+ end
37
+
38
+
39
+ end
@@ -57,7 +57,7 @@ private
57
57
 
58
58
  # Calculates the url to return to after the PxPay process completes
59
59
  def callback_url(host, protocol, port)
60
- url_for(:controller => 'spree/checkout', :action => 'px_pay_callback', :only_path => false, :host => host, :protocol => protocol, :port => port)
60
+ url_for(:controller => 'px_pay_gateway_callback', :action => 'callback', :only_path => false, :host => host, :protocol => protocol, :port => port)
61
61
  end
62
62
  end
63
63
  end
data/config/routes.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  Rails.application.routes.draw do
2
- get '/checkout/pay/callback' => 'spree/checkout#px_pay_callback'
2
+ get '/checkout/pay/callback' => 'px_pay_gateway_callback#callback'
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module SpreePxpayPaymentmethod
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -5,7 +5,7 @@ require 'spree_pxpay_paymentmethod/version'
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'spree_pxpay_paymentmethod'
7
7
  s.version = SpreePxpayPaymentmethod::VERSION
8
- s.authors = ['tuttinator']
8
+ s.authors = ['The Foundry']
9
9
  s.email = ['gems@foundryhq.com']
10
10
  s.homepage = 'https://github.com/localist/spree_pxpay_paymentmethod'
11
11
  s.summary = 'Spree PXPay payment method'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_pxpay_paymentmethod
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - tuttinator
7
+ - The Foundry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-18 00:00:00.000000000 Z
11
+ date: 2015-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -51,6 +51,7 @@ files:
51
51
  - README.md
52
52
  - Rakefile
53
53
  - app/controllers/checkout_controller_decorator.rb
54
+ - app/controllers/px_pay_gateway_callback_controller.rb
54
55
  - app/models/spree/gateway/px_pay.rb
55
56
  - app/views/spree/admin/payments/source_views/_pxpay.html.erb
56
57
  - config/routes.rb