Mehmet Aydoğdu hace 2 años
padre
commit
e8003edab6
Se han modificado 3 ficheros con 8 adiciones y 10 borrados
  1. 3 5
      lib/payment/base.rb
  2. 1 1
      lib/payment/test_cards.rb
  3. 4 4
      lib/payment/test_gateway.rb

+ 3 - 5
lib/payment/base.rb

@@ -3,10 +3,8 @@ module Payment
     def self.charge_from_card(payment, customer, card, pre_auth, saved_card = true)
       amount = pre_auth ? 0 : payment[:amount]
       event_type = pre_auth ? "pre_authorization" : "credit_card_payment"
-      id = {id: "c-#{Billing::WalletTransaction.id_generator}"}
-      payment.merge!(id)
       request, response = default_gateway.charge_from_card(payment, customer, card, pre_auth, saved_card)
-      {event_type: event_type, amount: amount, currency: payment[:currency], metadata: {response: response, request: request, external_id: payment[:id], gateway: default_gateway.to_s, refunded: false}, success: response[:success]}
+      {event_type: event_type, amount: amount, currency: payment[:currency], response: response, request: request, external_id: payment[:id], gateway: default_gateway.to_s, refunded: false, success: response[:success]}
     end
 
     def self.cancel_transaction(refundable, pre_auth)
@@ -14,12 +12,12 @@ module Payment
       amount = pre_auth ? 0 : -(refundable[:amount])
       request, response = default_gateway.cancel_transaction(refundable)
       request.merge!({amount: -refundable[:amount]}) if pre_auth
-      {event_type: event_type, amount: amount, currency: refundable[:currency], metadata: {"request" => request, "response" => response, external_id: refundable[:id] , gateway: default_gateway.to_s}, success: response[:success]}
+      {event_type: event_type, amount: amount, currency: refundable[:currency], "request" => request, "response" => response, external_id: refundable[:id] , gateway: default_gateway.to_s, success: response[:success]}
     end
 
     def self.refund_money(refundable)
       request, response = default_gateway.refund_money(refundable)
-      {event_type: "credit_card_refund", amount: -(refundable[:amount]), currency: refundable[:currency], metadata: {"request" => request, "response" => response, external_id: refundable[:id], gateway: default_gateway.to_s}, success: response[:success]}
+      {event_type: "credit_card_refund", amount: -(refundable[:amount]), currency: refundable[:currency], "request" => request, "response" => response, external_id: refundable[:id], gateway: default_gateway.to_s, success: response[:success]}
     end
 
     def self.query_saved_cards(customer)

+ 1 - 1
lib/payment/test_cards.rb

@@ -5,7 +5,7 @@ class Payment::TestCards
 
   def join_path(*args)
     if defined?(Rails) && defined?(Rails.root)
-      Rails.root.join(*args)
+      Rails.root.join(*args.prepend("payment"))
     else
       File.join(Dir.pwd, *args)
     end

+ 4 - 4
lib/payment/test_gateway.rb

@@ -25,12 +25,12 @@ class Payment::TestGateway
     {}
   end
 
-  def self.dummy_api(amount, currency, from = nil, card = nil)
+  def self.dummy_api(amount, currency, from = nil, card = nil, refund = nil)
     if card
       success = card[:token] || Payment::TestCards.get(:test_gateway).map{ |c| c[:number] }.include?(card[:number])
       card_token = card[:token] || rand(2).to_s + SecureRandom.urlsafe_base64(23)
     end
-    h = success || from ? { success: true, amount: amount, currency: currency, card_token: card_token, pg_tran_date: Time.now.to_i } : FAILED_RESPONSE_EXAMPLE
+    h = success || from || refund ? { success: true, amount: amount, currency: currency, card_token: card_token, pg_tran_date: Time.now.to_i } : FAILED_RESPONSE_EXAMPLE
     h = h.merge({ from_currency: from, to_currency: currency, converted_amount: amount }) if from
     h
   end
@@ -46,7 +46,7 @@ class Payment::TestGateway
 
   def self.cancel_transaction(payment)
     request = self.request.merge({payment: payment})
-    response = dummy_api(payment[:amount], payment[:currency])
+    response = dummy_api(payment[:amount], payment[:currency], nil, nil, true)
     [request, response]
   rescue => e
     Payment.debug_message(request, response, e)
@@ -54,7 +54,7 @@ class Payment::TestGateway
 
   def self.refund_money(payment)
     request = self.request.merge({payment: payment})
-    response = dummy_api(payment[:amount], payment[:currency])
+    response = dummy_api(payment[:amount], payment[:currency], nil, nil, true)
     [request, response]
   rescue => e
     Payment.debug_message(request, response, e)