spree_pxpay_paymentmethod 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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