Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Ruby Gems
/
var
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Marcelo
2016-07-11 15:31:49 -0500
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
c7f11a36243f65fb49a5d525f73c0f7f7a866e15
c7f11a36
2 parents
7707c9c7
f599453a
fixed merge conflict due to rubocop
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
73 additions
and
29 deletions
.ruby-version
Gemfile
Guardfile
Rakefile
bin/console
lib/acts_as_chargeable.rb
lib/conekta_card_handler.rb
lib/conekta_handler.rb
lib/conekta_oxxo_handler.rb
lib/conekta_payout_handler.rb
lib/conekta_spei_handler.rb
lib/generators/var_model/var_model_generator.rb
lib/var.rb
lib/var/version.rb
spec/acts_as_chargeable_spec.rb
spec/conekta_handler_spec.rb
spec/mocks/var_database_mock.rb
spec/mocks/var_models_mock.rb
spec/mocks/webhooks_requests.rb
spec/spec_helper.rb
spec/var_spec.rb
var.gemspec
.ruby-version
0 → 100644
View file @
c7f11a3
2.3.1
Gemfile
View file @
c7f11a3
# frozen_string_literal: true
source
'https://rubygems.org'
group
:development
do
...
...
Guardfile
View file @
c7f11a3
# frozen_string_literal: true
# A sample Guardfile
# More info at https://github.com/guard/guard#readme
...
...
Rakefile
View file @
c7f11a3
# frozen_string_literal: true
require
'rspec/core/rake_task'
require
'bundler/gem_tasks'
...
...
bin/console
View file @
c7f11a3
#!/usr/bin/env ruby
# frozen_string_literal: true
require
'bundler/setup'
require
'active_record'
...
...
lib/acts_as_chargeable.rb
View file @
c7f11a3
# frozen_string_literal: true
module
ActsAsChargeable
extend
ActiveSupport
::
Concern
# Class Methods
...
...
lib/conekta_card_handler.rb
View file @
c7f11a3
# frozen_string_literal: true
module
Var
class
ConektaCardHandler
<
ConektaHandler
PAYMENT_METHOD_STRING
=
'Card'
.
freeze
PAYMENT_METHOD_STRING
=
'Card'
end
end
...
...
lib/conekta_handler.rb
View file @
c7f11a3
# frozen_string_literal: true
module
Var
class
ConektaHandler
PAYMENT_METHOD_STRING
=
'Conekta_payment'
.
freeze
PAYMENT_METHOD_STRING
=
'Conekta_payment'
class
<<
self
def
analyze
(
event
)
...
...
lib/conekta_oxxo_handler.rb
View file @
c7f11a3
# frozen_string_literal: true
module
Var
class
ConektaOxxoHandler
<
ConektaHandler
PAYMENT_METHOD_STRING
=
'OXXO'
.
freeze
PAYMENT_METHOD_STRING
=
'OXXO'
end
end
...
...
lib/conekta_payout_handler.rb
View file @
c7f11a3
# frozen_string_literal: true
module
Var
class
ConektaPayoutHandler
class
<<
self
...
...
lib/conekta_spei_handler.rb
View file @
c7f11a3
# frozen_string_literal: true
module
Var
class
ConektaSpeiHandler
<
ConektaHandler
PAYMENT_METHOD_STRING
=
'Bank Transfer'
.
freeze
PAYMENT_METHOD_STRING
=
'Bank Transfer'
end
end
...
...
lib/generators/var_model/var_model_generator.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'rails/generators'
# Generator for models
class
VarModelGenerator
<
Rails
::
Generators
::
NamedBase
...
...
lib/var.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'var/version'
require
'conekta'
require
'paypal-sdk-rest'
...
...
lib/var/version.rb
View file @
c7f11a3
# frozen_string_literal: true
# Var Version
module
Var
VERSION
=
'0.3.0'
.
freeze
VERSION
=
'0.3.0'
end
...
...
spec/acts_as_chargeable_spec.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'spec_helper'
describe
ActsAsChargeable
do
...
...
spec/conekta_handler_spec.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'spec_helper'
describe
Var
::
ConektaHandler
do
...
...
spec/mocks/var_database_mock.rb
View file @
c7f11a3
# frozen_string_literal: true
class
VarDatabaseMock
class
<<
self
def
setup_db
...
...
spec/mocks/var_models_mock.rb
View file @
c7f11a3
# frozen_string_literal: true
class
Product
<
ActiveRecord
::
Base
acts_as_chargeable
end
...
...
spec/mocks/webhooks_requests.rb
0 → 100644
View file @
c7f11a3
module
WebHookPostRequest
OXXO_CHARGE_CREATED
=
{
"data"
:
{
"object"
:
{
"id"
:"5514803f241229981e0022e6"
,
"livemode"
:false
,
"created_at"
:
1427406911
,
"status"
:"pending_payment"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:null
,
"fee"
:
812
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:
{
"barcode"
:"38100000000042290121213001160013"
,
"barcode_url"
:"http://s3.amazonaws.com/cash_payment_barcodes/"
\
"38100000000042290121213001160013.png"
,
"object"
:"cash_payment"
,
"type"
:"oxxo"
,
"expires_at"
:
1430006400
,
"store_name"
:"OXXO"
},
"details"
:
{
"name"
:"Wolverine"
,
"phone"
:"403-342-0642"
,
"email"
:"logan@x-men.org"
,
"line_items"
:[]
}
},
"previous_attributes"
:{}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"5514803f241229981e0022e9"
,
"object"
:"event"
,
"type"
:"charge.created"
,
"created_at"
:
1427406911
,
"webhook_logs"
:[
{
"id"
:"webhl_PBmYvkfdNDYKezJ"
,
"url"
:"http://requestb.in/u3n4ywu3"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
0
}]}
end
spec/spec_helper.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'pry'
require
'active_record'
require
'active_support'
...
...
spec/var_spec.rb
View file @
c7f11a3
# frozen_string_literal: true
require
'spec_helper'
describe
Var
do
...
...
@@ -45,12 +46,11 @@ describe Var do
end
context
'when receiving a webhook from conekta'
do
let!
(
:chargable_product
)
do
Product
.
new
# Weird hack to enable connection
instance_double
(
'Product'
)
end
it
'expects a Hash as an input'
do
[[],
''
,
nil
].
each
do
|
input
|
expect
do
...
...
@@ -62,58 +62,58 @@ describe Var do
it
'expects a {data: {object: ... }} as an input'
do
expect
do
Var
.
conekta_webhook
({})
end
.
to
raise_error
"Malformed hash received"
end
.
to
raise_error
'Malformed hash received'
end
it
'handles card charge creation'
do
params
=
{
"data"
:{
"object"
:{
"id"
:"5511d4ce2412294cf6000081"
,
"livemode"
:false
,
"created_at"
:
1427231950
,
"status"
:"pending_payment"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:nil
,
"failure_message"
:nil
,
"monthly_installments"
:nil
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:nil
,
"fee"
:
963
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"name"
:"Jorge Lopez"
,
"exp_month"
:"12"
,
"exp_year"
:"19"
,
"auth_code"
:nil
,
"object"
:"card_payment"
,
"last4"
:"4242"
,
"brand"
:"visa"
},
"details"
:{
"name"
:nil
,
"phone"
:nil
,
"email"
:nil
,
"line_items"
:[]
}},
"previous_attributes"
:{}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"5511d4ce2412294cf6000084"
,
"object"
:"event"
,
"type"
:"charge.created"
,
"created_at"
:
1427231950
,
"webhook_logs"
:[{
"id"
:"webhl_nPzGMBeQmMUu7aQ"
,
"url"
:"http://requestb.in/1em0jsx1"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
0
}]
}
cardHandler
=
class_double
(
"Var::ConektaCardHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'5511d4ce2412294cf6000081'
,
"livemode"
:
false
,
"created_at"
:
1_427_231_950
,
"status"
:
'pending_payment'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
nil
,
"failure_message"
:
nil
,
"monthly_installments"
:
nil
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
nil
,
"fee"
:
963
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"name"
:
'Jorge Lopez'
,
"exp_month"
:
'12'
,
"exp_year"
:
'19'
,
"auth_code"
:
nil
,
"object"
:
'card_payment'
,
"last4"
:
'4242'
,
"brand"
:
'visa'
},
"details"
:
{
"name"
:
nil
,
"phone"
:
nil
,
"email"
:
nil
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'5511d4ce2412294cf6000084'
,
"object"
:
'event'
,
"type"
:
'charge.created'
,
"created_at"
:
1_427_231_950
,
"webhook_logs"
:
[{
"id"
:
'webhl_nPzGMBeQmMUu7aQ'
,
"url"
:
'http://requestb.in/1em0jsx1'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
0
}]
}
cardHandler
=
class_double
(
'Var::ConektaCardHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
cardHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
end
it
'handles oxxo charge creation'
do
null
=
nil
params
=
{
"data"
:{
"object"
:{
"id"
:"5514803f241229981e0022e6"
,
"livemode"
:false
,
"created_at"
:
1427406911
,
"status"
:"pending_payment"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:null
,
"fee"
:
812
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"barcode"
:"38100000000042290121213001160013"
,
"barcode_url"
:"http://s3.amazonaws.com/cash_payment_barcodes/38100000000042290121213001160013.png"
,
"object"
:"cash_payment"
,
"type"
:"oxxo"
,
"expires_at"
:
1430006400
,
"store_name"
:"OXXO"
},
"details"
:{
"name"
:"Wolverine"
,
"phone"
:"403-342-0642"
,
"email"
:"logan@x-men.org"
,
"line_items"
:[]
}},
"previous_attributes"
:{}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"5514803f241229981e0022e9"
,
"object"
:"event"
,
"type"
:"charge.created"
,
"created_at"
:
1427406911
,
"webhook_logs"
:[{
"id"
:"webhl_PBmYvkfdNDYKezJ"
,
"url"
:"http://requestb.in/u3n4ywu3"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
0
}]
}
oxxoHandler
=
class_double
(
"Var::ConektaOxxoHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'5514803f241229981e0022e6'
,
"livemode"
:
false
,
"created_at"
:
1_427_406_911
,
"status"
:
'pending_payment'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
null
,
"failure_message"
:
null
,
"monthly_installments"
:
null
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
null
,
"fee"
:
812
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"barcode"
:
'38100000000042290121213001160013'
,
"barcode_url"
:
'http://s3.amazonaws.com/cash_payment_barcodes/38100000000042290121213001160013.png'
,
"object"
:
'cash_payment'
,
"type"
:
'oxxo'
,
"expires_at"
:
1_430_006_400
,
"store_name"
:
'OXXO'
},
"details"
:
{
"name"
:
'Wolverine'
,
"phone"
:
'403-342-0642'
,
"email"
:
'logan@x-men.org'
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'5514803f241229981e0022e9'
,
"object"
:
'event'
,
"type"
:
'charge.created'
,
"created_at"
:
1_427_406_911
,
"webhook_logs"
:
[{
"id"
:
'webhl_PBmYvkfdNDYKezJ'
,
"url"
:
'http://requestb.in/u3n4ywu3'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
0
}]
}
oxxoHandler
=
class_double
(
'Var::ConektaOxxoHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
oxxoHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
end
it
'handles SPEI charge creation'
do
null
=
nil
params
=
{
"data"
:{
"object"
:{
"id"
:"551499322412292eec002159"
,
"livemode"
:false
,
"created_at"
:
1427413298
,
"status"
:"pending_payment"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:null
,
"fee"
:
928
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"clabe"
:"646180111800012432"
,
"bank"
:"STP"
,
"issuing_account_holder"
:null
,
"issuing_account_tax_id"
:null
,
"issuing_account_bank"
:null
,
"issuing_account_number"
:null
,
"receiving_account_holder"
:null
,
"receiving_account_tax_id"
:null
,
"receiving_account_number"
:"646180111800012432"
,
"receiving_account_bank"
:"STP"
,
"reference_number"
:null
,
"description"
:null
,
"tracking_code"
:null
,
"executed_at"
:null
,
"object"
:"bank_transfer_payment"
,
"type"
:"spei"
,
"expires_at"
:
1435189298
},
"details"
:{
"name"
:"Wolverine"
,
"phone"
:"403-342-0642"
,
"email"
:"logan@x-men.org"
,
"line_items"
:[]
}},
"previous_attributes"
:{}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"551499322412292eec00215c"
,
"object"
:"event"
,
"type"
:"charge.created"
,
"created_at"
:
1427413298
,
"webhook_logs"
:[{
"id"
:"webhl_ENPXoFkKWyDqTAt"
,
"url"
:"http://requestb.in/151xj4r1"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
1427413285
}]
}
speiHandler
=
class_double
(
"Var::ConektaSpeiHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'551499322412292eec002159'
,
"livemode"
:
false
,
"created_at"
:
1_427_413_298
,
"status"
:
'pending_payment'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
null
,
"failure_message"
:
null
,
"monthly_installments"
:
null
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
null
,
"fee"
:
928
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"clabe"
:
'646180111800012432'
,
"bank"
:
'STP'
,
"issuing_account_holder"
:
null
,
"issuing_account_tax_id"
:
null
,
"issuing_account_bank"
:
null
,
"issuing_account_number"
:
null
,
"receiving_account_holder"
:
null
,
"receiving_account_tax_id"
:
null
,
"receiving_account_number"
:
'646180111800012432'
,
"receiving_account_bank"
:
'STP'
,
"reference_number"
:
null
,
"description"
:
null
,
"tracking_code"
:
null
,
"executed_at"
:
null
,
"object"
:
'bank_transfer_payment'
,
"type"
:
'spei'
,
"expires_at"
:
1_435_189_298
},
"details"
:
{
"name"
:
'Wolverine'
,
"phone"
:
'403-342-0642'
,
"email"
:
'logan@x-men.org'
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'551499322412292eec00215c'
,
"object"
:
'event'
,
"type"
:
'charge.created'
,
"created_at"
:
1_427_413_298
,
"webhook_logs"
:
[{
"id"
:
'webhl_ENPXoFkKWyDqTAt'
,
"url"
:
'http://requestb.in/151xj4r1'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
1_427_413_285
}]
}
speiHandler
=
class_double
(
'Var::ConektaSpeiHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
speiHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
end
it
'handles card payment'
do
null
=
nil
params
=
{
"data"
:{
"object"
:{
"id"
:"5511d4ce2412294cf6000081"
,
"livemode"
:false
,
"created_at"
:
1427231950
,
"status"
:"paid"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:
1427231952
,
"fee"
:
963
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"name"
:"Jorge Lopez"
,
"exp_month"
:"12"
,
"exp_year"
:"19"
,
"auth_code"
:"000000"
,
"object"
:"card_payment"
,
"last4"
:"4242"
,
"brand"
:"visa"
},
"details"
:{
"name"
:null
,
"phone"
:null
,
"email"
:null
,
"line_items"
:[]
}},
"previous_attributes"
:{
"payment_method"
:{}}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"5511d4d02412294cf6000088"
,
"object"
:"event"
,
"type"
:"charge.paid"
,
"created_at"
:
1427231952
,
"webhook_logs"
:[{
"id"
:"webhl_m5kgkhmgETe6Y4s"
,
"url"
:"http://requestb.in/1em0jsx1"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
0
}]
}
cardHandler
=
class_double
(
"Var::ConektaCardHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'5511d4ce2412294cf6000081'
,
"livemode"
:
false
,
"created_at"
:
1_427_231_950
,
"status"
:
'paid'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
null
,
"failure_message"
:
null
,
"monthly_installments"
:
null
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
1_427_231_952
,
"fee"
:
963
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"name"
:
'Jorge Lopez'
,
"exp_month"
:
'12'
,
"exp_year"
:
'19'
,
"auth_code"
:
'000000'
,
"object"
:
'card_payment'
,
"last4"
:
'4242'
,
"brand"
:
'visa'
},
"details"
:
{
"name"
:
null
,
"phone"
:
null
,
"email"
:
null
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{
"payment_method"
:
{}
}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'5511d4d02412294cf6000088'
,
"object"
:
'event'
,
"type"
:
'charge.paid'
,
"created_at"
:
1_427_231_952
,
"webhook_logs"
:
[{
"id"
:
'webhl_m5kgkhmgETe6Y4s'
,
"url"
:
'http://requestb.in/1em0jsx1'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
0
}]
}
cardHandler
=
class_double
(
'Var::ConektaCardHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
cardHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
end
it
'handles oxxo payment'
do
null
=
nil
params
=
{
"data"
:{
"object"
:{
"id"
:"5514803f241229981e0022e6"
,
"livemode"
:false
,
"created_at"
:
1427406911
,
"status"
:"paid"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:
1427406913
,
"fee"
:
812
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"barcode"
:"38100000000042290121213001160013"
,
"barcode_url"
:"http://s3.amazonaws.com/cash_payment_barcodes/38100000000042290121213001160013.png"
,
"object"
:"cash_payment"
,
"type"
:"oxxo"
,
"expires_at"
:
1430006400
,
"store_name"
:"OXXO"
},
"details"
:{
"name"
:"Wolverine"
,
"phone"
:"403-342-0642"
,
"email"
:"logan@x-men.org"
,
"line_items"
:[]
}},
"previous_attributes"
:{
"status"
:"pending_payment"
}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"55148042241229d4fb00b58a"
,
"object"
:"event"
,
"type"
:"charge.paid"
,
"created_at"
:
1427406914
,
"webhook_logs"
:[{
"id"
:"webhl_yYes9gx41vAj6ag"
,
"url"
:"http://requestb.in/151xj4r1"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
1427406984
}]
}
oxxoHandler
=
class_double
(
"Var::ConektaOxxoHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'5514803f241229981e0022e6'
,
"livemode"
:
false
,
"created_at"
:
1_427_406_911
,
"status"
:
'paid'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
null
,
"failure_message"
:
null
,
"monthly_installments"
:
null
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
1_427_406_913
,
"fee"
:
812
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"barcode"
:
'38100000000042290121213001160013'
,
"barcode_url"
:
'http://s3.amazonaws.com/cash_payment_barcodes/38100000000042290121213001160013.png'
,
"object"
:
'cash_payment'
,
"type"
:
'oxxo'
,
"expires_at"
:
1_430_006_400
,
"store_name"
:
'OXXO'
},
"details"
:
{
"name"
:
'Wolverine'
,
"phone"
:
'403-342-0642'
,
"email"
:
'logan@x-men.org'
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{
"status"
:
'pending_payment'
}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'55148042241229d4fb00b58a'
,
"object"
:
'event'
,
"type"
:
'charge.paid'
,
"created_at"
:
1_427_406_914
,
"webhook_logs"
:
[{
"id"
:
'webhl_yYes9gx41vAj6ag'
,
"url"
:
'http://requestb.in/151xj4r1'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
1_427_406_984
}]
}
oxxoHandler
=
class_double
(
'Var::ConektaOxxoHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
oxxoHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
Var
.
conekta_webhook
(
params
)
end
it
'handles SPEI payment'
do
null
=
nil
params
=
{
"data"
:{
"object"
:{
"id"
:"551499322412292eec002159"
,
"livemode"
:false
,
"created_at"
:
1427413298
,
"status"
:"pending_payment"
,
"currency"
:"MXN"
,
"description"
:"Stogies"
,
"reference_id"
:"9839-wolf_pack"
,
"failure_code"
:null
,
"failure_message"
:null
,
"monthly_installments"
:null
,
"object"
:"charge"
,
"amount"
:
20000
,
"paid_at"
:null
,
"fee"
:
928
,
"customer_id"
:""
,
"refunds"
:[]
,
"payment_method"
:{
"clabe"
:"646180111800012432"
,
"bank"
:"STP"
,
"issuing_account_holder"
:null
,
"issuing_account_tax_id"
:null
,
"issuing_account_bank"
:null
,
"issuing_account_number"
:null
,
"receiving_account_holder"
:null
,
"receiving_account_tax_id"
:null
,
"receiving_account_number"
:"646180111800012432"
,
"receiving_account_bank"
:"STP"
,
"reference_number"
:null
,
"description"
:null
,
"tracking_code"
:null
,
"executed_at"
:null
,
"object"
:"bank_transfer_payment"
,
"type"
:"spei"
,
"expires_at"
:
1435189298
},
"details"
:{
"name"
:"Wolverine"
,
"phone"
:"403-342-0642"
,
"email"
:"logan@x-men.org"
,
"line_items"
:[]
}},
"previous_attributes"
:{}},
"livemode"
:false
,
"webhook_status"
:"pending"
,
"id"
:"551499322412292eec00215c"
,
"object"
:"event"
,
"type"
:"charge.created"
,
"created_at"
:
1427413298
,
"webhook_logs"
:[{
"id"
:"webhl_ENPXoFkKWyDqTAt"
,
"url"
:"http://requestb.in/151xj4r1"
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:"webhook_log"
,
"last_attempted_at"
:
1427413285
}]
}
speiHandler
=
class_double
(
"Var::ConektaSpeiHandler"
).
as_stubbed_const
(
transfer_nested_constants:
true
)
params
=
{
"data"
:
{
"object"
:
{
"id"
:
'551499322412292eec002159'
,
"livemode"
:
false
,
"created_at"
:
1_427_413_298
,
"status"
:
'pending_payment'
,
"currency"
:
'MXN'
,
"description"
:
'Stogies'
,
"reference_id"
:
'9839-wolf_pack'
,
"failure_code"
:
null
,
"failure_message"
:
null
,
"monthly_installments"
:
null
,
"object"
:
'charge'
,
"amount"
:
20_000
,
"paid_at"
:
null
,
"fee"
:
928
,
"customer_id"
:
''
,
"refunds"
:
[],
"payment_method"
:
{
"clabe"
:
'646180111800012432'
,
"bank"
:
'STP'
,
"issuing_account_holder"
:
null
,
"issuing_account_tax_id"
:
null
,
"issuing_account_bank"
:
null
,
"issuing_account_number"
:
null
,
"receiving_account_holder"
:
null
,
"receiving_account_tax_id"
:
null
,
"receiving_account_number"
:
'646180111800012432'
,
"receiving_account_bank"
:
'STP'
,
"reference_number"
:
null
,
"description"
:
null
,
"tracking_code"
:
null
,
"executed_at"
:
null
,
"object"
:
'bank_transfer_payment'
,
"type"
:
'spei'
,
"expires_at"
:
1_435_189_298
},
"details"
:
{
"name"
:
'Wolverine'
,
"phone"
:
'403-342-0642'
,
"email"
:
'logan@x-men.org'
,
"line_items"
:
[]
}
},
"previous_attributes"
:
{}
},
"livemode"
:
false
,
"webhook_status"
:
'pending'
,
"id"
:
'551499322412292eec00215c'
,
"object"
:
'event'
,
"type"
:
'charge.created'
,
"created_at"
:
1_427_413_298
,
"webhook_logs"
:
[{
"id"
:
'webhl_ENPXoFkKWyDqTAt'
,
"url"
:
'http://requestb.in/151xj4r1'
,
"failed_attempts"
:
0
,
"last_http_response_status"
:
-
1
,
"object"
:
'webhook_log'
,
"last_attempted_at"
:
1_427_413_285
}]
}
speiHandler
=
class_double
(
'Var::ConektaSpeiHandler'
)
.
as_stubbed_const
(
transfer_nested_constants:
true
)
expect
(
speiHandler
).
to
receive
(
:analyze
).
with
(
params
)
Var
.
conekta_webhook
(
params
)
end
...
...
@@ -137,7 +137,6 @@ describe Var do
end
it
'processes card charge'
do
# allow(Var).to receive(:find_charge).and_return chargable_product
#
# allow(chargable_product).to receive(:update_columns).and_return true
...
...
@@ -146,7 +145,6 @@ describe Var do
# expect(result.var_id).to eq('5511d4ce2412294cf6000081')
# TODO: Define what is actually being teted
end
xit
'handles Plan creado'
do
...
...
var.gemspec
View file @
c7f11a3
# frozen_string_literal: true
lib
=
File
.
expand_path
(
'../lib'
,
__FILE__
)
$LOAD_PATH
.
unshift
(
lib
)
unless
$LOAD_PATH
.
include?
(
lib
)
require
'var/version'
...
...
Please
register
or
login
to post a comment