Class: Gateway::RazorpayGateway
- Inherits:
-
Gateway
- Object
- Gateway
- Gateway::RazorpayGateway
- Defined in:
- app/models/spree/gateway/razorpay_gateway.rb
Instance Method Summary collapse
- #actions ⇒ Object
- #auto_capture? ⇒ Boolean
- #can_capture?(payment) ⇒ Boolean
- #can_void?(payment) ⇒ Boolean
- #capture ⇒ Object
- #configuration_guide_partial_name ⇒ Object
- #credit(_credit_cents, _payment_id, _options) ⇒ Object
- #current_key_id ⇒ Object
- #current_key_secret ⇒ Object
- #description_partial_name ⇒ Object
- #method_type ⇒ Object
- #payment_icon_name ⇒ Object
- #payment_source_class ⇒ Object
- #provider ⇒ Object
- #provider_class ⇒ Object
- #purchase(_amount, _transaction_details, _gateway_options = {}) ⇒ Object
- #request_type ⇒ Object
- #source_required? ⇒ Boolean
- #supports?(_source) ⇒ Boolean
- #verify_and_capture_razorpay_payment(order, razorpay_payment_id) ⇒ Object
- #void ⇒ Object
Instance Method Details
#actions ⇒ Object
67 68 69 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 67 def actions %w[capture void] end |
#auto_capture? ⇒ Boolean
55 56 57 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 55 def auto_capture? true end |
#can_capture?(payment) ⇒ Boolean
71 72 73 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 71 def can_capture?(payment) %w[checkout pending].include?(payment.state) end |
#can_void?(payment) ⇒ Boolean
75 76 77 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 75 def can_void?(payment) payment.state != 'void' end |
#capture ⇒ Object
83 84 85 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 83 def capture(*) simulated_successful_billing_response end |
#configuration_guide_partial_name ⇒ Object
35 36 37 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 35 def configuration_guide_partial_name 'razorpay' end |
#credit(_credit_cents, _payment_id, _options) ⇒ Object
91 92 93 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 91 def credit(_credit_cents, _payment_id, ) ActiveMerchant::Billing::Response.new(true, 'Refund successful') end |
#current_key_id ⇒ Object
47 48 49 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 47 def current_key_id preferred_test_mode ? preferred_test_key_id : preferred_key_id end |
#current_key_secret ⇒ Object
51 52 53 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 51 def current_key_secret preferred_test_mode ? preferred_test_key_secret : preferred_key_secret end |
#description_partial_name ⇒ Object
31 32 33 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 31 def description_partial_name 'razorpay' end |
#method_type ⇒ Object
59 60 61 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 59 def method_type 'razorpay' end |
#payment_icon_name ⇒ Object
27 28 29 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 27 def payment_icon_name 'razorpay' end |
#payment_source_class ⇒ Object
23 24 25 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 23 def payment_source_class nil end |
#provider ⇒ Object
43 44 45 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 43 def provider Razorpay.setup(current_key_id, current_key_secret) end |
#provider_class ⇒ Object
39 40 41 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 39 def provider_class self end |
#purchase(_amount, _transaction_details, _gateway_options = {}) ⇒ Object
79 80 81 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 79 def purchase(_amount, _transaction_details, = {}) ActiveMerchant::Billing::Response.new(true, 'Razorpay success') end |
#request_type ⇒ Object
63 64 65 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 63 def request_type 'DEFAULT' end |
#source_required? ⇒ Boolean
19 20 21 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 19 def source_required? false end |
#supports?(_source) ⇒ Boolean
15 16 17 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 15 def supports?(_source) true end |
#verify_and_capture_razorpay_payment(order, razorpay_payment_id) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 95 def verify_and_capture_razorpay_payment(order, razorpay_payment_id) Razorpay.setup(current_key_id, current_key_secret) begin payment = Razorpay::Payment.fetch(razorpay_payment_id) unless payment.status == 'authorized' raise Spree::Core::GatewayError, 'Payment not authorized' end # Capture only if you're not using auto-capture (your setting says auto_capture = true) payment.capture(amount: (order.total * 100).to_i) payment rescue Razorpay::Error => e raise Spree::Core::GatewayError, "Razorpay error: #{e.}" end end |
#void ⇒ Object
87 88 89 |
# File 'app/models/spree/gateway/razorpay_gateway.rb', line 87 def void(*) simulated_successful_billing_response end |