Showing
1 changed file
with
43 additions
and
53 deletions
... | @@ -12,10 +12,11 @@ module Var | ... | @@ -12,10 +12,11 @@ module Var |
12 | end | 12 | end |
13 | 13 | ||
14 | def self.create_charge(service, object, options = {}) | 14 | def self.create_charge(service, object, options = {}) |
15 | - binding.pry | ||
16 | return { error_message: 'Service is not supported' } unless VALID_SERVICES.include? service | 15 | return { error_message: 'Service is not supported' } unless VALID_SERVICES.include? service |
17 | return { error_message: "#{object.class.to_s} doesn't support charges"} unless object.respond_to?(:charge_with) | 16 | return { error_message: "#{object.class.to_s} doesn't support charges"} unless object.respond_to?(:charge_with) |
18 | - object.charge_with(service, options) | 17 | + charge = object.charge_with(service, options) |
18 | + object.update_columns(var_status: 'payed') unless charge.include? :error_message | ||
19 | + return charge | ||
19 | end | 20 | end |
20 | end | 21 | end |
21 | 22 | ||
... | @@ -37,24 +38,19 @@ module ActsAsChargeable | ... | @@ -37,24 +38,19 @@ module ActsAsChargeable |
37 | " charges with #{service.to_s}" | 38 | " charges with #{service.to_s}" |
38 | return { error_message: error_message} | 39 | return { error_message: error_message} |
39 | end | 40 | end |
40 | - begin | ||
41 | self.send("charge_with_#{service.to_s}", options) | 41 | self.send("charge_with_#{service.to_s}", options) |
42 | - rescue => exception | 42 | + rescue Exception => exception |
43 | - return { error_message: exception.message } | 43 | + { error_message: exception.message } |
44 | - end | ||
45 | end | 44 | end |
46 | 45 | ||
47 | def charge_with_conekta(options) | 46 | def charge_with_conekta(options) |
48 | - binding.pry | ||
49 | if(!options.include? :card_token) | 47 | if(!options.include? :card_token) |
50 | error_message = "Conekta needs a card token sent as a third paramater" | 48 | error_message = "Conekta needs a card token sent as a third paramater" |
51 | return { error_message: error_message} | 49 | return { error_message: error_message} |
52 | end | 50 | end |
53 | - begin | ||
54 | @charge ||= Conekta::Charge.create({ | 51 | @charge ||= Conekta::Charge.create({ |
55 | description: self.sync(:conekta, 'description'), | 52 | description: self.sync(:conekta, 'description'), |
56 | - amount: self.sync(:conekta, 'amount'), | 53 | + amount: self.sync(:conekta, 'amount'), currency: "MXN", |
57 | - currency: "MXN", | ||
58 | reference_id: self.sync(:conekta, 'reference_id'), | 54 | reference_id: self.sync(:conekta, 'reference_id'), |
59 | card: options[:card_token], | 55 | card: options[:card_token], |
60 | details: { | 56 | details: { |
... | @@ -63,60 +59,56 @@ module ActsAsChargeable | ... | @@ -63,60 +59,56 @@ module ActsAsChargeable |
63 | line_items: [{ | 59 | line_items: [{ |
64 | name: self.sync(:conekta, 'name'), | 60 | name: self.sync(:conekta, 'name'), |
65 | description: self.sync(:conekta, 'description'), | 61 | description: self.sync(:conekta, 'description'), |
66 | - unit_price: self.sync(:conekta, 'amount'), | 62 | + unit_price: self.sync(:conekta, 'amount'), quantity: 1, |
67 | - quantity: 1, | ||
68 | }] | 63 | }] |
69 | } | 64 | } |
70 | }) | 65 | }) |
71 | - rescue => exception | 66 | + rescue Conekta::ParameterValidationError, Conekta::ProcessingError, Conekta::Error => e |
72 | self.update_columns(var_status: 'failed') | 67 | self.update_columns(var_status: 'failed') |
73 | - return { error_message: exception.message } | 68 | + { error_message: e.message } |
74 | - end | ||
75 | end | 69 | end |
76 | 70 | ||
77 | - def charge_with_paypal(options) | 71 | + # def charge_with_paypal(options) |
78 | - if(!options.include? :card) | 72 | + # if(!options.include? :card) |
79 | - error_message = "Paypal needs a card sent as a third paramater" | 73 | + # error_message = "Paypal needs a card sent as a third paramater" |
80 | - return { error_message: error_message} | 74 | + # return { error_message: error_message} |
81 | - end | 75 | + # end |
82 | - @payment = PayPal::SDK::REST::Payment.new({ | 76 | + # @payment = PayPal::SDK::REST::Payment.new({ |
83 | - intent: "sale", | 77 | + # intent: "sale", |
84 | - payer: { | 78 | + # payer: { |
85 | - payer_info: { | 79 | + # payer_info: { |
86 | - email: self.sync(:paypal, 'email')}, | 80 | + # email: self.sync(:paypal, 'email')}, |
87 | - payment_method: "credit_card", | 81 | + # payment_method: "credit_card", |
88 | - funding_instruments: [{ | 82 | + # funding_instruments: [{ |
89 | - credit_card: { | 83 | + # credit_card: { |
90 | - type: options[:card][:type], | 84 | + # type: options[:card][:type], |
91 | - number: options[:card][:number], | 85 | + # number: options[:card][:number], |
92 | - expire_month: options[:card][:expire_month], | 86 | + # expire_month: options[:card][:expire_month], |
93 | - expire_year: options[:card][:expire_year], | 87 | + # expire_year: options[:card][:expire_year], |
94 | - cvv2: options[:card][:cvv2]}}]}, | 88 | + # cvv2: options[:card][:cvv2]}}]}, |
95 | - transactions: [{ | 89 | + # transactions: [{ |
96 | - item_list: { | 90 | + # item_list: { |
97 | - items: [{ | 91 | + # items: [{ |
98 | - name: self.sync(:paypal, 'name'), | 92 | + # name: self.sync(:paypal, 'name'), |
99 | - sku: self.sync(:paypal, 'sku'), | 93 | + # sku: self.sync(:paypal, 'sku'), |
100 | - price: self.sync(:paypal, 'price'), | 94 | + # price: self.sync(:paypal, 'price'), |
101 | - currency: "MXN", | 95 | + # currency: "MXN", |
102 | - quantity: 1 }]}, | 96 | + # quantity: 1 }]}, |
103 | - amount: { | 97 | + # amount: { |
104 | - total: self.sync(:paypal, 'price'), | 98 | + # total: self.sync(:paypal, 'price'), |
105 | - currency: "MXN" }, | 99 | + # currency: "MXN" }, |
106 | - description: self.sync(:paypal, 'description') }]}) | 100 | + # description: self.sync(:paypal, 'description') }]}) |
107 | - end | 101 | + # end |
108 | 102 | ||
109 | def find_charge(service) | 103 | def find_charge(service) |
110 | - begin | ||
111 | if !instance_support?(service) | 104 | if !instance_support?(service) |
112 | error_message = "#{self.class.to_s} doesn't support" \ | 105 | error_message = "#{self.class.to_s} doesn't support" \ |
113 | " charges with #{service.to_s}" | 106 | " charges with #{service.to_s}" |
114 | return { error_message: error_message} | 107 | return { error_message: error_message} |
115 | end | 108 | end |
116 | self.send("find_#{service.to_s}_charge") | 109 | self.send("find_#{service.to_s}_charge") |
117 | - rescue => exception | 110 | + rescue Exception => exception |
118 | - return { error_message: exception.message } | 111 | + { error_message: exception.message } |
119 | - end | ||
120 | end | 112 | end |
121 | 113 | ||
122 | def charged?(service) | 114 | def charged?(service) |
... | @@ -135,9 +127,7 @@ module ActsAsChargeable | ... | @@ -135,9 +127,7 @@ module ActsAsChargeable |
135 | 127 | ||
136 | def sync(service, key) | 128 | def sync(service, key) |
137 | service_attributes = self.send("#{service.to_s}_attributes") | 129 | service_attributes = self.send("#{service.to_s}_attributes") |
138 | - if !service_attributes.include? key.to_sym | 130 | + return self.send(key) if !service_attributes.include? key.to_sym |
139 | - return self.send(key) | ||
140 | - end | ||
141 | self.send(service_attributes[key.to_sym]) | 131 | self.send(service_attributes[key.to_sym]) |
142 | end | 132 | end |
143 | 133 | ... | ... |
-
Please register or login to post a comment