Class: Gateway::MidtransGateway

Inherits:
Gateway
  • Object
show all
Defined in:
app/models/spree/gateway/midtrans_gateway.rb

Instance Method Summary collapse

Instance Method Details

#auto_capture?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 24

def auto_capture?
  true
end

#charge(order) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 36

def charge(order)
  result = provider.charge(
    payment_type: "VTWEB",
    transaction_details: {
      order_id: order.number,
      gross_amount: order.total
    },
    # NOTE: items disabled because shipping and tax not provided by Midtrans
    # item_details: line_items(order),
    customer_details: customer(order)
  )

  order.payments.create!(
    amount: order.total,
    payment_method: self,
  )
  result
end

#method_typeObject



20
21
22
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 20

def method_type
  'midtrans'
end

#providerObject



12
13
14
15
16
17
18
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 12

def provider
  ::Midtrans.new(
    client_key: preferred_client_key,
    server_key: preferred_server_key,
    api_host: preferred_test_mode ? "https://api.sandbox.midtrans.com" : "https://api.midtrans.com"
  )
end

#provider_classObject



8
9
10
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 8

def provider_class
  ::Midtrans
end

#source_required?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 32

def source_required?
  false
end

#supports?(source) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/spree/gateway/midtrans_gateway.rb', line 28

def supports?(source)
  true
end