solidus_culqi 0.1.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +14 -29
- data/.travis.yml +6 -17
- data/Gemfile +2 -0
- data/app/models/concerns/solidus_culqi/inject_installments_concern.rb +1 -1
- data/app/models/payment_decorator.rb +3 -1
- data/app/models/permitted_attributes_decorator.rb +3 -1
- data/app/models/solidus/gateway/culqi_gateway.rb +11 -8
- data/bin/geckodriver +28 -0
- data/lib/solidus_culqi.rb +0 -1
- data/lib/solidus_culqi/version.rb +1 -1
- data/solidus_culqi.gemspec +0 -4
- data/spec/models/culqi_gateway.rb +3 -10
- data/spec/spec_helper.rb +0 -34
- metadata +4 -72
- data/app/views/spree/checkout/existing_payment/_culqi.html.erb +0 -3
- data/app/views/spree/checkout/payment/_culqi.html.erb +0 -79
- data/lib/solidus_culqi/gateway.rb +0 -31
- data/spec/cassettes/Culqi_checkout/with_logged_user/store_card_in_wallet.yml +0 -206
- data/spec/cassettes/Culqi_checkout/with_unlogged_user/with_process_checkout/capture_payment.yml +0 -207
- data/spec/cassettes/Culqi_checkout/with_unlogged_user/with_process_checkout/process_order.yml +0 -156
- data/spec/cassettes/Culqi_checkout/with_unlogged_user/with_process_checkout/voids_a_payment.yml +0 -207
- data/spec/cassettes/Culqi_checkout_autocapture/with_valid_credit_card/can_process_a_valid_payment.yml +0 -156
- data/spec/cassettes/Culqi_checkout_autocapture/with_valid_credit_card/refunds_a_payment.yml +0 -207
- data/spec/features/culqi_checkout_autocapture_spec.rb +0 -103
- data/spec/features/culqi_checkout_spec.rb +0 -96
- data/spec/support/culqi_helper.rb +0 -53
@@ -1,207 +0,0 @@
|
|
1
|
-
---
|
2
|
-
http_interactions:
|
3
|
-
- request:
|
4
|
-
method: get
|
5
|
-
uri: https://api.culqi.com/v2/customers/
|
6
|
-
body:
|
7
|
-
encoding: US-ASCII
|
8
|
-
string: ''
|
9
|
-
headers:
|
10
|
-
Accept-Encoding:
|
11
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
-
Accept:
|
13
|
-
- "*/*"
|
14
|
-
User-Agent:
|
15
|
-
- Ruby
|
16
|
-
Host:
|
17
|
-
- api.culqi.com
|
18
|
-
Authorization:
|
19
|
-
- Bearer sk_test_SpwICNI4YT0OSLHY
|
20
|
-
Content-Type:
|
21
|
-
- application/json
|
22
|
-
Cache-Control:
|
23
|
-
- no-cache
|
24
|
-
response:
|
25
|
-
status:
|
26
|
-
code: 200
|
27
|
-
message: OK
|
28
|
-
headers:
|
29
|
-
Server:
|
30
|
-
- ":"
|
31
|
-
- nginx
|
32
|
-
Date:
|
33
|
-
- Tue, 15 May 2018 05:09:03 GMT
|
34
|
-
Content-Type:
|
35
|
-
- application/json;charset=UTF-8
|
36
|
-
Transfer-Encoding:
|
37
|
-
- chunked
|
38
|
-
Connection:
|
39
|
-
- keep-alive
|
40
|
-
Set-Cookie:
|
41
|
-
- JSESSIONID=A90BC32CA727555EBB3D2ABD982A10F3; Path=/api/; HttpOnly
|
42
|
-
X-Culqi-Tracking-Id:
|
43
|
-
- '2572991'
|
44
|
-
X-Culqi-Environment:
|
45
|
-
- test
|
46
|
-
X-Culqi-Version:
|
47
|
-
- 2.0.0
|
48
|
-
body:
|
49
|
-
encoding: ASCII-8BIT
|
50
|
-
string: !binary |-
|
51
|
-
eyJkYXRhIjpbeyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfZXdDcVV2eUV4eE0wVVNqbyIsImNyZWF0aW9uX2RhdGUiOjE1MjYzNjA4NzMwMDAsImVtYWlsIjoiZW1haWwxQGV4YW1wbGUuY29tIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IkhhbiIsImxhc3RfbmFtZSI6IlNvbG8iLCJhZGRyZXNzIjoiWVQtMTMwMCIsImFkZHJlc3NfY2l0eSI6IkFsYWJhbWEiLCJjb3VudHJ5X2NvZGUiOiJVUyIsInBob25lIjoiNTU1NTU1NTU1NSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W3sib2JqZWN0IjoiY2FyZCIsImlkIjoiY3JkX3Rlc3RfeDhuQTlmQmJ6SmxGbHFNUSIsImFjdGl2ZSI6dHJ1ZSwiY3JlYXRpb25fZGF0ZSI6MTUyNjM2MDg3NzAwMCwiY3VzdG9tZXJfaWQiOiJjdXNfdGVzdF9ld0NxVXZ5RXh4TTBVU2pvIiwic291cmNlIjp7Im9iamVjdCI6InRva2VuIiwiaWQiOiJ0a25fdGVzdF9iQzB0V2xKRlVyVjB5SEFPIiwidHlwZSI6ImNhcmQiLCJjcmVhdGlvbl9kYXRlIjoxNTI2MzYwODY3MDAwLCJlbWFpbCI6ImVtYWlsMUBleGFtcGxlLmNvbSIsImNhcmRfbnVtYmVyIjoiNDExMTExKioqKioqMTExMSIsImxhc3RfZm91ciI6IjExMTEiLCJhY3RpdmUiOnRydWUsImlpbiI6eyJvYmplY3QiOiJpaW4iLCJiaW4iOiI0MTExMTEiLCJjYXJkX2JyYW5kIjoiVmlzYSIsImNhcmRfdHlwZSI6ImNyZWRpdG8iLCJjYXJkX2NhdGVnb3J5IjoiQ2zDoXNpY2EiLCJpc3N1ZXIiOnsibmFtZSI6IklOVEVSQkFOSyIsImNvdW50cnkiOiJQRVJVIiwiY291bnRyeV9jb2RlIjoiUEUiLCJ3ZWJzaXRlIjpudWxsLCJwaG9uZV9udW1iZXIiOm51bGx9LCJpbnN0YWxsbWVudHNfYWxsb3dlZCI6WzIsNCw2LDgsMTAsMTIsMyw1LDcsOSwyNCw0OF19LCJjbGllbnQiOnsiaXAiOiIxNzkuNy4xNTUuNjkiLCJpcF9jb3VudHJ5IjoiUGVyw7oiLCJpcF9jb3VudHJ5X2NvZGUiOiJQRSIsImJyb3dzZXIiOm51bGwsImRldmljZV9maW5nZXJwcmludCI6IjEzNDc0MDk5MzUiLCJkZXZpY2VfdHlwZSI6IkVzY3JpdG9yaW8ifSwibWV0YWRhdGEiOnsibWV0aG9kIjoianMiLCJjbGllbnRfaXAiOiIxNzkuNy4xNTUuNjkiLCJzZWN1cmUiOiJmYWxzZSIsInVybCI6Imh0dHA6Ly8xMjcuMC4wLjE6MzUyMDMvY2hlY2tvdXQvcGF5bWVudCJ9fSwibWV0YWRhdGEiOnt9fV0sIm1ldGFkYXRhIjp7fX0seyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfdnpzWkNZbmxkV1plT2JvZCIsImNyZWF0aW9uX2RhdGUiOjE1MDc4MjI4NTcwMDAsImVtYWlsIjoicm9sZkBtb3Jpc3NldHRlbHVib3dpdHouaW5mbyIsImFudGlmcmF1ZF9kZXRhaWxzIjp7ImZpcnN0X25hbWUiOiJIYW4iLCJsYXN0X25hbWUiOiJTb2xvIiwiYWRkcmVzcyI6IllULTEzMDAiLCJhZGRyZXNzX2NpdHkiOiJBbGFiYW1hIiwiY291bnRyeV9jb2RlIjoiVVMiLCJwaG9uZSI6IjU1NTU1NTU1NTUiLCJvYmplY3QiOiJjbGllbnQifSwiY2FyZHMiOlt7Im9iamVjdCI6ImNhcmQiLCJpZCI6ImNyZF90ZXN0X201UVhYN3R0QzNjMjFmc20iLCJhY3RpdmUiOnRydWUsImNyZWF0aW9uX2RhdGUiOjE1MDc4MjI4NjEwMDAsImN1c3RvbWVyX2lkIjoiY3VzX3Rlc3RfdnpzWkNZbmxkV1plT2JvZCIsInNvdXJjZSI6eyJvYmplY3QiOiJ0b2tlbiIsImlkIjoidGtuX3Rlc3RfMWxKMFhIa2lTeXNyVTk5TSIsInR5cGUiOiJjYXJkIiwiY3JlYXRpb25fZGF0ZSI6MTUwNzgyMjg1MTAwMCwiZW1haWwiOiJyb2xmQG1vcmlzc2V0dGVsdWJvd2l0ei5pbmZvIiwiY2FyZF9udW1iZXIiOiI0MTExMTEqKioqKioxMTExIiwibGFzdF9mb3VyIjoiMTExMSIsImFjdGl2ZSI6ZmFsc2UsImlpbiI6eyJvYmplY3QiOiJpaW4iLCJiaW4iOiI0MTExMTEiLCJjYXJkX2JyYW5kIjoiVmlzYSIsImNhcmRfdHlwZSI6ImNyZWRpdG8iLCJjYXJkX2NhdGVnb3J5IjoiQ2zDoXNpY2EiLCJpc3N1ZXIiOnsibmFtZSI6IklOVEVSQkFOSyIsImNvdW50cnkiOiJQRVJVIiwiY291bnRyeV9jb2RlIjoiUEUiLCJ3ZWJzaXRlIjpudWxsLCJwaG9uZV9udW1iZXIiOm51bGx9LCJpbnN0YWxsbWVudHNfYWxsb3dlZCI6WzIsNCw2LDgsMTAsMTIsMyw1LDcsOSwyNCw0OF19LCJjbGllbnQiOnsiaXAiOiIxNzkuNy4xNTMuMjI0IiwiaXBfY291bnRyeSI6IlBlcsO6IiwiaXBfY291bnRyeV9jb2RlIjoiUEUiLCJicm93c2VyIjpudWxsLCJkZXZpY2VfZmluZ2VycHJpbnQiOiIxMzQ3NDA5OTM1IiwiZGV2aWNlX3R5cGUiOiJFc2NyaXRvcmlvIn0sIm1ldGFkYXRhIjp7ImNsaWVudF9pcCI6IjE3OS43LjE1My4yMjQifX0sIm1ldGFkYXRhIjp7fX1dLCJtZXRhZGF0YSI6e319LHsib2JqZWN0IjoiY3VzdG9tZXIiLCJpZCI6ImN1c190ZXN0X0NBY1NyQ2tCbDhaUjlicFQiLCJjcmVhdGlvbl9kYXRlIjoxNTA3ODIxNTEzMDAwLCJlbWFpbCI6ImRhbmllbGVfaGVzc2VsQG1pbGxzLmNhIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IkhhbiIsImxhc3RfbmFtZSI6IlNvbG8iLCJhZGRyZXNzIjoiWVQtMTMwMCIsImFkZHJlc3NfY2l0eSI6IkFsYWJhbWEiLCJjb3VudHJ5X2NvZGUiOiJVUyIsInBob25lIjoiNTU1NTU1NTU1NSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W3sib2JqZWN0IjoiY2FyZCIsImlkIjoiY3JkX3Rlc3RfSVJoZkhubnZienBuMGVzMSIsImFjdGl2ZSI6dHJ1ZSwiY3JlYXRpb25fZGF0ZSI6MTUwNzgyMTUxNzAwMCwiY3VzdG9tZXJfaWQiOiJjdXNfdGVzdF9DQWNTckNrQmw4WlI5YnBUIiwic291cmNlIjp7Im9iamVjdCI6InRva2VuIiwiaWQiOiJ0a25fdGVzdF9iWktFTkV0eFBHcjF4TVJRIiwidHlwZSI6ImNhcmQiLCJjcmVhdGlvbl9kYXRlIjoxNTA3ODIxNTA3MDAwLCJlbWFpbCI6ImRhbmllbGVfaGVzc2VsQG1pbGxzLmNhIiwiY2FyZF9udW1iZXIiOiI0MTExMTEqKioqKioxMTExIiwibGFzdF9mb3VyIjoiMTExMSIsImFjdGl2ZSI6ZmFsc2UsImlpbiI6eyJvYmplY3QiOiJpaW4iLCJiaW4iOiI0MTExMTEiLCJjYXJkX2JyYW5kIjoiVmlzYSIsImNhcmRfdHlwZSI6ImNyZWRpdG8iLCJjYXJkX2NhdGVnb3J5IjoiQ2zDoXNpY2EiLCJpc3N1ZXIiOnsibmFtZSI6IklOVEVSQkFOSyIsImNvdW50cnkiOiJQRVJVIiwiY291bnRyeV9jb2RlIjoiUEUiLCJ3ZWJzaXRlIjpudWxsLCJwaG9uZV9udW1iZXIiOm51bGx9LCJpbnN0YWxsbWVudHNfYWxsb3dlZCI6WzIsNCw2LDgsMTAsMTIsMyw1LDcsOSwyNCw0OF19LCJjbGllbnQiOnsiaXAiOiIxNzkuNy4xNTMuMjI0IiwiaXBfY291bnRyeSI6IlBlcsO6IiwiaXBfY291bnRyeV9jb2RlIjoiUEUiLCJicm93c2VyIjpudWxsLCJkZXZpY2VfZmluZ2VycHJpbnQiOiIxMzQ3NDA5OTM1IiwiZGV2aWNlX3R5cGUiOiJFc2NyaXRvcmlvIn0sIm1ldGFkYXRhIjp7ImNsaWVudF9pcCI6IjE3OS43LjE1My4yMjQifX0sIm1ldGFkYXRhIjp7fX1dLCJtZXRhZGF0YSI6e319LHsib2JqZWN0IjoiY3VzdG9tZXIiLCJpZCI6ImN1c190ZXN0X3hVUzdsZ3FFNVk4eWVMQ24iLCJjcmVhdGlvbl9kYXRlIjoxNTA3ODIwOTg4MDAwLCJlbWFpbCI6ImhpZW4ua2lsYmFja0BicmF1bi5jby51ayIsImFudGlmcmF1ZF9kZXRhaWxzIjp7ImZpcnN0X25hbWUiOiJIYW4iLCJsYXN0X25hbWUiOiJTb2xvIiwiYWRkcmVzcyI6IllULTEzMDAiLCJhZGRyZXNzX2NpdHkiOiJBbGFiYW1hIiwiY291bnRyeV9jb2RlIjoiVVMiLCJwaG9uZSI6IjU1NTU1NTU1NTUiLCJvYmplY3QiOiJjbGllbnQifSwiY2FyZHMiOlt7Im9iamVjdCI6ImNhcmQiLCJpZCI6ImNyZF90ZXN0X3QzSVlZQzFERGV1bkEzUHgiLCJhY3RpdmUiOnRydWUsImNyZWF0aW9uX2RhdGUiOjE1MDc4MjA5OTIwMDAsImN1c3RvbWVyX2lkIjoiY3VzX3Rlc3RfeFVTN2xncUU1WTh5ZUxDbiIsInNvdXJjZSI6eyJvYmplY3QiOiJ0b2tlbiIsImlkIjoidGtuX3Rlc3RfT054VFRJV1Uzcnp3YnNaTiIsInR5cGUiOiJjYXJkIiwiY3JlYXRpb25fZGF0ZSI6MTUwNzgyMDk4MjAwMCwiZW1haWwiOiJoaWVuLmtpbGJhY2tAYnJhdW4uY28udWsiLCJjYXJkX251bWJlciI6IjQxMTExMSoqKioqKjExMTEiLCJsYXN0X2ZvdXIiOiIxMTExIiwiYWN0aXZlIjpmYWxzZSwiaWluIjp7Im9iamVjdCI6ImlpbiIsImJpbiI6IjQxMTExMSIsImNhcmRfYnJhbmQiOiJWaXNhIiwiY2FyZF90eXBlIjoiY3JlZGl0byIsImNhcmRfY2F0ZWdvcnkiOiJDbMOhc2ljYSIsImlzc3VlciI6eyJuYW1lIjoiSU5URVJCQU5LIiwiY291bnRyeSI6IlBFUlUiLCJjb3VudHJ5X2NvZGUiOiJQRSIsIndlYnNpdGUiOm51bGwsInBob25lX251bWJlciI6bnVsbH0sImluc3RhbGxtZW50c19hbGxvd2VkIjpbMiw0LDYsOCwxMCwxMiwzLDUsNyw5LDI0LDQ4XX0sImNsaWVudCI6eyJpcCI6IjE3OS43LjE1My4yMjQiLCJpcF9jb3VudHJ5IjoiUGVyw7oiLCJpcF9jb3VudHJ5X2NvZGUiOiJQRSIsImJyb3dzZXIiOm51bGwsImRldmljZV9maW5nZXJwcmludCI6IjEzNDc0MDk5MzUiLCJkZXZpY2VfdHlwZSI6IkVzY3JpdG9yaW8ifSwibWV0YWRhdGEiOnsiY2xpZW50X2lwIjoiMTc5LjcuMTUzLjIyNCJ9fSwibWV0YWRhdGEiOnt9fV0sIm1ldGFkYXRhIjp7fX0seyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfNUtla0hzdVNndUV6anpoOCIsImNyZWF0aW9uX2RhdGUiOjE1MDc3ODY0MjAwMDAsImVtYWlsIjoiaGFuQGV4YW1wbGUuY29tIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IkhhbiIsImxhc3RfbmFtZSI6IlNvbG8iLCJhZGRyZXNzIjoiWVQtMTMwMCIsImFkZHJlc3NfY2l0eSI6IkFsYWJhbWEiLCJjb3VudHJ5X2NvZGUiOiJVUyIsInBob25lIjoiNTU1NTU1NTU1NSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W3sib2JqZWN0IjoiY2FyZCIsImlkIjoiY3JkX3Rlc3RfTFlmUFprTlkwb0M5WlZ6NSIsImFjdGl2ZSI6dHJ1ZSwiY3JlYXRpb25fZGF0ZSI6MTUwNzc4OTMzMzAwMCwiY3VzdG9tZXJfaWQiOiJjdXNfdGVzdF81S2VrSHN1U2d1RXpqemg4Iiwic291cmNlIjp7Im9iamVjdCI6InRva2VuIiwiaWQiOiJ0a25fdGVzdF95blltVlZSTnNnaElzcHlNIiwidHlwZSI6ImNhcmQiLCJjcmVhdGlvbl9kYXRlIjoxNTI2MzYwODI2MDAwLCJlbWFpbCI6ImhhbkBleGFtcGxlLmNvbSIsImNhcmRfbnVtYmVyIjoiNDExMTExKioqKioqMTExMSIsImxhc3RfZm91ciI6IjExMTEiLCJhY3RpdmUiOnRydWUsImlpbiI6eyJvYmplY3QiOiJpaW4iLCJiaW4iOiI0MTExMTEiLCJjYXJkX2JyYW5kIjoiVmlzYSIsImNhcmRfdHlwZSI6ImNyZWRpdG8iLCJjYXJkX2NhdGVnb3J5IjoiQ2zDoXNpY2EiLCJpc3N1ZXIiOnsibmFtZSI6IklOVEVSQkFOSyIsImNvdW50cnkiOiJQRVJVIiwiY291bnRyeV9jb2RlIjoiUEUiLCJ3ZWJzaXRlIjpudWxsLCJwaG9uZV9udW1iZXIiOm51bGx9LCJpbnN0YWxsbWVudHNfYWxsb3dlZCI6WzIsNCw2LDgsMTAsMTIsMyw1LDcsOSwyNCw0OF19LCJjbGllbnQiOnsiaXAiOiIxNzkuNy4xNTUuNjkiLCJpcF9jb3VudHJ5IjoiUGVyw7oiLCJpcF9jb3VudHJ5X2NvZGUiOiJQRSIsImJyb3dzZXIiOm51bGwsImRldmljZV9maW5nZXJwcmludCI6IjEzNDc0MDk5MzUiLCJkZXZpY2VfdHlwZSI6IkVzY3JpdG9yaW8ifSwibWV0YWRhdGEiOnsibWV0aG9kIjoianMiLCJjbGllbnRfaXAiOiIxNzkuNy4xNTUuNjkiLCJzZWN1cmUiOiJmYWxzZSIsInVybCI6Imh0dHA6Ly8xMjcuMC4wLjE6MzUyMDMvY2hlY2tvdXQvcGF5bWVudCJ9fSwibWV0YWRhdGEiOnt9fV0sIm1ldGFkYXRhIjp7fX0seyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfaFN5M0N0UExHRnJUSDJIYiIsImNyZWF0aW9uX2RhdGUiOjE1MDQzNzE2OTgwMDAsImVtYWlsIjoidGVzdGVhZjEwMjNmLWQ2MDYtNDJlNS04YjY0LWYwOTBhY2FlN2E1MEBjdWxxaS5jb20iLCJhbnRpZnJhdWRfZGV0YWlscyI6eyJmaXJzdF9uYW1lIjoiV2lsbGlhbSIsImxhc3RfbmFtZSI6Ik11cm8iLCJhZGRyZXNzIjoiQXZlbmlkYSBMaW1hIDEyMzIxMyIsImFkZHJlc3NfY2l0eSI6IkxJTUEiLCJjb3VudHJ5X2NvZGUiOiJQRSIsInBob25lIjoiOTk4OTg5Nzg5Iiwib2JqZWN0IjoiY2xpZW50In0sImNhcmRzIjpbXSwibWV0YWRhdGEiOnsib3RoZXJfbnVtYmVyIjoiNzg5OTUzNjU1In19LHsib2JqZWN0IjoiY3VzdG9tZXIiLCJpZCI6ImN1c190ZXN0X2xkaXEyUjRka2xOdUdSSTQiLCJjcmVhdGlvbl9kYXRlIjoxNTA0MzcxNjk1MDAwLCJlbWFpbCI6InRlc3QxOTU1Njg1OC03MDU5LTQ5MjMtYjBhZS01MjViMWMxMTc4MzhAY3VscWkuY29tIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IldpbGxpYW0iLCJsYXN0X25hbWUiOiJNdXJvIiwiYWRkcmVzcyI6IkF2ZW5pZGEgTGltYSAxMjMyMTMiLCJhZGRyZXNzX2NpdHkiOiJMSU1BIiwiY291bnRyeV9jb2RlIjoiUEUiLCJwaG9uZSI6Ijk5ODk4OTc4OSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W10sIm1ldGFkYXRhIjp7Im90aGVyX251bWJlciI6Ijc4OTk1MzY1NSJ9fSx7Im9iamVjdCI6ImN1c3RvbWVyIiwiaWQiOiJjdXNfdGVzdF9vSnYyOFM5aVMxVkU1TVNlIiwiY3JlYXRpb25fZGF0ZSI6MTUwNDM3MTY5MTAwMCwiZW1haWwiOiJ0ZXN0NTE4ZjJlZWMtM2ZlMi00ZmQzLWI4YTgtODA4N2YzMmYxM2JhQGN1bHFpLmNvbSIsImFudGlmcmF1ZF9kZXRhaWxzIjp7ImZpcnN0X25hbWUiOiJXaWxsaWFtIiwibGFzdF9uYW1lIjoiTXVybyIsImFkZHJlc3MiOiJBdmVuaWRhIExpbWEgMTIzMjEzIiwiYWRkcmVzc19jaXR5IjoiTElNQSIsImNvdW50cnlfY29kZSI6IlBFIiwicGhvbmUiOiI5OTg5ODk3ODkiLCJvYmplY3QiOiJjbGllbnQifSwiY2FyZHMiOltdLCJtZXRhZGF0YSI6eyJvdGhlcl9udW1iZXIiOiI3ODk5NTM2NTUifX0seyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfZlRiTTRnTkM2UFg3VXFPSCIsImNyZWF0aW9uX2RhdGUiOjE1MDQzNzE2ODYwMDAsImVtYWlsIjoidGVzdGFhNzRiOWVkLTUxY2QtNGVkYS04OWZjLWZkZDc3MzEwM2I0M0BjdWxxaS5jb20iLCJhbnRpZnJhdWRfZGV0YWlscyI6eyJmaXJzdF9uYW1lIjoiV2lsbGlhbSIsImxhc3RfbmFtZSI6Ik11cm8iLCJhZGRyZXNzIjoiQXZlbmlkYSBMaW1hIDEyMzIxMyIsImFkZHJlc3NfY2l0eSI6IkxJTUEiLCJjb3VudHJ5X2NvZGUiOiJQRSIsInBob25lIjoiOTk4OTg5Nzg5Iiwib2JqZWN0IjoiY2xpZW50In0sImNhcmRzIjpbXSwibWV0YWRhdGEiOnsib3RoZXJfbnVtYmVyIjoiNzg5OTUzNjU1In19LHsib2JqZWN0IjoiY3VzdG9tZXIiLCJpZCI6ImN1c190ZXN0X0N3U2l6RVp2Wm51OW1EcFUiLCJjcmVhdGlvbl9kYXRlIjoxNTA0MzcxNjY4MDAwLCJlbWFpbCI6InRlc3Q2NzhkNDUxZC03ZjlmLTQ1YWItOTM5Ny1kNmNmYTQzODFkYjBAY3VscWkuY29tIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IldpbGxpYW0iLCJsYXN0X25hbWUiOiJNdXJvIiwiYWRkcmVzcyI6IkF2ZW5pZGEgTGltYSAxMjMyMTMiLCJhZGRyZXNzX2NpdHkiOiJMSU1BIiwiY291bnRyeV9jb2RlIjoiUEUiLCJwaG9uZSI6Ijk5ODk4OTc4OSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W10sIm1ldGFkYXRhIjp7Im90aGVyX251bWJlciI6Ijc4OTk1MzY1NSJ9fSx7Im9iamVjdCI6ImN1c3RvbWVyIiwiaWQiOiJjdXNfdGVzdF9FUk81eDRBSHRxU0lES0hzIiwiY3JlYXRpb25fZGF0ZSI6MTUwNDM3MTY2MjAwMCwiZW1haWwiOiJ0ZXN0YTE0OTc2YTctNTJhMi00MjFmLTgwODktZDM2MzllN2EyNDBhQGN1bHFpLmNvbSIsImFudGlmcmF1ZF9kZXRhaWxzIjp7ImZpcnN0X25hbWUiOiJXaWxsaWFtIiwibGFzdF9uYW1lIjoiTXVybyIsImFkZHJlc3MiOiJBdmVuaWRhIExpbWEgMTIzMjEzIiwiYWRkcmVzc19jaXR5IjoiTElNQSIsImNvdW50cnlfY29kZSI6IlBFIiwicGhvbmUiOiI5OTg5ODk3ODkiLCJvYmplY3QiOiJjbGllbnQifSwiY2FyZHMiOltdLCJtZXRhZGF0YSI6eyJvdGhlcl9udW1iZXIiOiI3ODk5NTM2NTUifX0seyJvYmplY3QiOiJjdXN0b21lciIsImlkIjoiY3VzX3Rlc3RfS2NpbWV1QTRmaGFpUlc3ViIsImNyZWF0aW9uX2RhdGUiOjE1MDQzNzE2NTkwMDAsImVtYWlsIjoidGVzdGZkMDJhMmUxLTkwYzktNDY2MC1hODdlLWUwMzkwN2U0MjIyYUBjdWxxaS5jb20iLCJhbnRpZnJhdWRfZGV0YWlscyI6eyJmaXJzdF9uYW1lIjoiV2lsbGlhbSIsImxhc3RfbmFtZSI6Ik11cm8iLCJhZGRyZXNzIjoiQXZlbmlkYSBMaW1hIDEyMzIxMyIsImFkZHJlc3NfY2l0eSI6IkxJTUEiLCJjb3VudHJ5X2NvZGUiOiJQRSIsInBob25lIjoiOTk4OTg5Nzg5Iiwib2JqZWN0IjoiY2xpZW50In0sImNhcmRzIjpbXSwibWV0YWRhdGEiOnsib3RoZXJfbnVtYmVyIjoiNzg5OTUzNjU1In19LHsib2JqZWN0IjoiY3VzdG9tZXIiLCJpZCI6ImN1c190ZXN0X2NTU3drTVR4Rnd4bFJESzciLCJjcmVhdGlvbl9kYXRlIjoxNTA0MzcxNjU3MDAwLCJlbWFpbCI6InRlc3RkYTYzZWJiOS1kMzUyLTQ1ZWItODcwMS1kODg2YzNlM2YzZGRAY3VscWkuY29tIiwiYW50aWZyYXVkX2RldGFpbHMiOnsiZmlyc3RfbmFtZSI6IldpbGxpYW0iLCJsYXN0X25hbWUiOiJNdXJvIiwiYWRkcmVzcyI6IkF2ZW5pZGEgTGltYSAxMjMyMTMiLCJhZGRyZXNzX2NpdHkiOiJMSU1BIiwiY291bnRyeV9jb2RlIjoiUEUiLCJwaG9uZSI6Ijk5ODk4OTc4OSIsIm9iamVjdCI6ImNsaWVudCJ9LCJjYXJkcyI6W10sIm1ldGFkYXRhIjp7Im90aGVyX251bWJlciI6Ijc4OTk1MzY1NSJ9fSx7Im9iamVjdCI6ImN1c3RvbWVyIiwiaWQiOiJjdXNfdGVzdF9obmZRRVhFTVhKblBaQTVVIiwiY3JlYXRpb25fZGF0ZSI6MTUwNDM3MTYyNjAwMCwiZW1haWwiOiJ0ZXN0M2QzOWY4ZTctYzQ4Mi00NzE0LThmZjEtNjc2Mjc5Yzg1ZjVkQGN1bHFpLmNvbSIsImFudGlmcmF1ZF9kZXRhaWxzIjp7ImZpcnN0X25hbWUiOiJXaWxsaWFtIiwibGFzdF9uYW1lIjoiTXVybyIsImFkZHJlc3MiOiJBdmVuaWRhIExpbWEgMTIzMjEzIiwiYWRkcmVzc19jaXR5IjoiTElNQSIsImNvdW50cnlfY29kZSI6IlBFIiwicGhvbmUiOiI5OTg5ODk3ODkiLCJvYmplY3QiOiJjbGllbnQifSwiY2FyZHMiOltdLCJtZXRhZGF0YSI6eyJvdGhlcl9udW1iZXIiOiI3ODk5NTM2NTUifX1dLCJwYWdpbmciOnsicHJldmlvdXMiOiJodHRwczovL2FwaS5jdWxxaS5jb20vdjIvY3VzdG9tZXJzP2xpbWl0PTUwJmJlZm9yZT1jdXNfdGVzdF9ld0NxVXZ5RXh4TTBVU2pvIiwibmV4dCI6Imh0dHBzOi8vYXBpLmN1bHFpLmNvbS92Mi9jdXN0b21lcnM/bGltaXQ9NTAmYWZ0ZXI9Y3VzX3Rlc3RfaG5mUUVYRU1YSm5QWkE1VSIsImN1cnNvcnMiOnsiYmVmb3JlIjoiY3VzX3Rlc3RfZXdDcVV2eUV4eE0wVVNqbyIsImFmdGVyIjoiY3VzX3Rlc3RfaG5mUUVYRU1YSm5QWkE1VSJ9fX0=
|
52
|
-
http_version:
|
53
|
-
recorded_at: Tue, 15 May 2018 05:09:03 GMT
|
54
|
-
- request:
|
55
|
-
method: post
|
56
|
-
uri: https://api.culqi.com/v2/cards/
|
57
|
-
body:
|
58
|
-
encoding: UTF-8
|
59
|
-
string: '{"customer_id":"cus_test_5KekHsuSguEzjzh8","token_id":"tkn_test_zRj2aPFMtA6ibl8M"}'
|
60
|
-
headers:
|
61
|
-
Accept-Encoding:
|
62
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
63
|
-
Accept:
|
64
|
-
- "*/*"
|
65
|
-
User-Agent:
|
66
|
-
- Ruby
|
67
|
-
Host:
|
68
|
-
- api.culqi.com
|
69
|
-
Authorization:
|
70
|
-
- Bearer sk_test_SpwICNI4YT0OSLHY
|
71
|
-
Content-Type:
|
72
|
-
- application/json
|
73
|
-
Cache-Control:
|
74
|
-
- no-cache
|
75
|
-
response:
|
76
|
-
status:
|
77
|
-
code: 201
|
78
|
-
message: Created
|
79
|
-
headers:
|
80
|
-
Server:
|
81
|
-
- ":"
|
82
|
-
- nginx
|
83
|
-
Date:
|
84
|
-
- Tue, 15 May 2018 05:09:08 GMT
|
85
|
-
Content-Type:
|
86
|
-
- application/json;charset=UTF-8
|
87
|
-
Transfer-Encoding:
|
88
|
-
- chunked
|
89
|
-
Connection:
|
90
|
-
- keep-alive
|
91
|
-
Set-Cookie:
|
92
|
-
- JSESSIONID=67CC5872313C09FEBDF8F1A2F7D3CB69; Path=/api/; HttpOnly
|
93
|
-
X-Culqi-Tracking-Id:
|
94
|
-
- '2572992'
|
95
|
-
X-Culqi-Environment:
|
96
|
-
- test
|
97
|
-
X-Culqi-Version:
|
98
|
-
- 2.0.0
|
99
|
-
body:
|
100
|
-
encoding: ASCII-8BIT
|
101
|
-
string: !binary |-
|
102
|
-
eyJvYmplY3QiOiJjYXJkIiwiaWQiOiJjcmRfdGVzdF9MWWZQWmtOWTBvQzlaVno1IiwiYWN0aXZlIjp0cnVlLCJjcmVhdGlvbl9kYXRlIjoxNTA3Nzg5MzMzMDAwLCJjdXN0b21lcl9pZCI6ImN1c190ZXN0XzVLZWtIc3VTZ3VFemp6aDgiLCJzb3VyY2UiOnsib2JqZWN0IjoidG9rZW4iLCJpZCI6InRrbl90ZXN0X3pSajJhUEZNdEE2aWJsOE0iLCJ0eXBlIjoiY2FyZCIsImNyZWF0aW9uX2RhdGUiOjE1MjYzNjA5MzgwMDAsImVtYWlsIjoiaGFuQGV4YW1wbGUuY29tIiwiY2FyZF9udW1iZXIiOiI0MTExMTEqKioqKioxMTExIiwibGFzdF9mb3VyIjoiMTExMSIsImFjdGl2ZSI6dHJ1ZSwiaWluIjp7Im9iamVjdCI6ImlpbiIsImJpbiI6IjQxMTExMSIsImNhcmRfYnJhbmQiOiJWaXNhIiwiY2FyZF90eXBlIjoiY3JlZGl0byIsImNhcmRfY2F0ZWdvcnkiOiJDbMOhc2ljYSIsImlzc3VlciI6eyJuYW1lIjoiSU5URVJCQU5LIiwiY291bnRyeSI6IlBFUlUiLCJjb3VudHJ5X2NvZGUiOiJQRSIsIndlYnNpdGUiOm51bGwsInBob25lX251bWJlciI6bnVsbH0sImluc3RhbGxtZW50c19hbGxvd2VkIjpbMiw0LDYsOCwxMCwxMiwzLDUsNyw5LDI0LDQ4XX0sImNsaWVudCI6eyJpcCI6IjE3OS43LjE1NS42OSIsImlwX2NvdW50cnkiOiJQZXLDuiIsImlwX2NvdW50cnlfY29kZSI6IlBFIiwiYnJvd3NlciI6bnVsbCwiZGV2aWNlX2ZpbmdlcnByaW50IjoiMTM0NzQwOTkzNSIsImRldmljZV90eXBlIjoiRXNjcml0b3JpbyJ9LCJtZXRhZGF0YSI6eyJtZXRob2QiOiJqcyIsImNsaWVudF9pcCI6IjE3OS43LjE1NS42OSIsInNlY3VyZSI6ImZhbHNlIiwidXJsIjoiaHR0cDovLzEyNy4wLjAuMTozNTIwMy9jaGVja291dC9wYXltZW50In19LCJtZXRhZGF0YSI6e319
|
103
|
-
http_version:
|
104
|
-
recorded_at: Tue, 15 May 2018 05:09:08 GMT
|
105
|
-
- request:
|
106
|
-
method: post
|
107
|
-
uri: https://api.culqi.com/v2/charges/
|
108
|
-
body:
|
109
|
-
encoding: UTF-8
|
110
|
-
string: '{"amount":1999,"capture":true,"currency_code":"PEN","description":null,"email":"han@example.com","installments":0,"source_id":"crd_test_LYfPZkNY0oC9ZVz5"}'
|
111
|
-
headers:
|
112
|
-
Accept-Encoding:
|
113
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
114
|
-
Accept:
|
115
|
-
- "*/*"
|
116
|
-
User-Agent:
|
117
|
-
- Ruby
|
118
|
-
Host:
|
119
|
-
- api.culqi.com
|
120
|
-
Authorization:
|
121
|
-
- Bearer sk_test_SpwICNI4YT0OSLHY
|
122
|
-
Content-Type:
|
123
|
-
- application/json
|
124
|
-
Cache-Control:
|
125
|
-
- no-cache
|
126
|
-
response:
|
127
|
-
status:
|
128
|
-
code: 201
|
129
|
-
message: Created
|
130
|
-
headers:
|
131
|
-
Server:
|
132
|
-
- ":"
|
133
|
-
- nginx
|
134
|
-
Date:
|
135
|
-
- Tue, 15 May 2018 05:09:13 GMT
|
136
|
-
Content-Type:
|
137
|
-
- application/json;charset=UTF-8
|
138
|
-
Transfer-Encoding:
|
139
|
-
- chunked
|
140
|
-
Connection:
|
141
|
-
- keep-alive
|
142
|
-
Set-Cookie:
|
143
|
-
- JSESSIONID=08F27CC5A1EEF7293C35400A6B639D05; Path=/api/; HttpOnly
|
144
|
-
X-Culqi-Tracking-Id:
|
145
|
-
- '2572995'
|
146
|
-
X-Culqi-Environment:
|
147
|
-
- test
|
148
|
-
X-Culqi-Version:
|
149
|
-
- 2.0.0
|
150
|
-
body:
|
151
|
-
encoding: ASCII-8BIT
|
152
|
-
string: !binary |-
|
153
|
-
eyJkdXBsaWNhdGVkIjpmYWxzZSwib2JqZWN0IjoiY2hhcmdlIiwiaWQiOiJjaHJfdGVzdF9mdlI1OUhGM1BRRnRSZ1RuIiwiY3JlYXRpb25fZGF0ZSI6MTUyNjM2MDk1MTAwMCwiYW1vdW50IjoxOTk5LCJhbW91bnRfcmVmdW5kZWQiOjAsImN1cnJlbnRfYW1vdW50IjoxOTk5LCJpbnN0YWxsbWVudHMiOjAsImluc3RhbGxtZW50c19hbW91bnQiOm51bGwsImN1cnJlbmN5X2NvZGUiOiJQRU4iLCJlbWFpbCI6ImhhbkBleGFtcGxlLmNvbSIsImRlc2NyaXB0aW9uIjpudWxsLCJzb3VyY2UiOnsib2JqZWN0IjoiY2FyZCIsImlkIjoiY3JkX3Rlc3RfTFlmUFprTlkwb0M5WlZ6NSIsImFjdGl2ZSI6dHJ1ZSwiY3JlYXRpb25fZGF0ZSI6MTUwNzc4OTMzMzAwMCwiY3VzdG9tZXJfaWQiOiJjdXNfdGVzdF81S2VrSHN1U2d1RXpqemg4Iiwic291cmNlIjp7Im9iamVjdCI6InRva2VuIiwiaWQiOiJ0a25fdGVzdF96UmoyYVBGTXRBNmlibDhNIiwidHlwZSI6ImNhcmQiLCJjcmVhdGlvbl9kYXRlIjoxNTI2MzYwOTM4MDAwLCJlbWFpbCI6ImhhbkBleGFtcGxlLmNvbSIsImNhcmRfbnVtYmVyIjoiNDExMTExKioqKioqMTExMSIsImxhc3RfZm91ciI6IjExMTEiLCJhY3RpdmUiOnRydWUsImlpbiI6eyJvYmplY3QiOiJpaW4iLCJiaW4iOiI0MTExMTEiLCJjYXJkX2JyYW5kIjoiVmlzYSIsImNhcmRfdHlwZSI6ImNyZWRpdG8iLCJjYXJkX2NhdGVnb3J5IjoiQ2zDoXNpY2EiLCJpc3N1ZXIiOnsibmFtZSI6IklOVEVSQkFOSyIsImNvdW50cnkiOiJQRVJVIiwiY291bnRyeV9jb2RlIjoiUEUiLCJ3ZWJzaXRlIjpudWxsLCJwaG9uZV9udW1iZXIiOm51bGx9LCJpbnN0YWxsbWVudHNfYWxsb3dlZCI6WzIsNCw2LDgsMTAsMTIsMyw1LDcsOSwyNCw0OF19LCJjbGllbnQiOnsiaXAiOiIxNzkuNy4xNTUuNjkiLCJpcF9jb3VudHJ5IjoiUGVyw7oiLCJpcF9jb3VudHJ5X2NvZGUiOiJQRSIsImJyb3dzZXIiOm51bGwsImRldmljZV9maW5nZXJwcmludCI6IjEzNDc0MDk5MzUiLCJkZXZpY2VfdHlwZSI6IkVzY3JpdG9yaW8ifSwibWV0YWRhdGEiOnsibWV0aG9kIjoianMiLCJjbGllbnRfaXAiOiIxNzkuNy4xNTUuNjkiLCJzZWN1cmUiOiJmYWxzZSIsInVybCI6Imh0dHA6Ly8xMjcuMC4wLjE6MzUyMDMvY2hlY2tvdXQvcGF5bWVudCJ9fSwibWV0YWRhdGEiOnt9fSwib3V0Y29tZSI6eyJ0eXBlIjoidmVudGFfZXhpdG9zYSIsImNvZGUiOiJBVVQwMDAwIiwibWVyY2hhbnRfbWVzc2FnZSI6IkxhIG9wZXJhY2nDs24gZGUgdmVudGEgaGEgc2lkbyBhdXRvcml6YWRhIGV4aXRvc2FtZW50ZSIsInVzZXJfbWVzc2FnZSI6IlN1IGNvbXByYSBoYSBzaWRvIGV4aXRvc2EuIn0sImZyYXVkX3Njb3JlIjoxNi4wLCJhbnRpZnJhdWRfZGV0YWlscyI6eyJmaXJzdF9uYW1lIjoiSGFuIiwibGFzdF9uYW1lIjoiU29sbyIsImFkZHJlc3MiOiJZVC0xMzAwIiwiYWRkcmVzc19jaXR5IjoiQWxhYmFtYSIsImNvdW50cnlfY29kZSI6IlVTIiwicGhvbmUiOiI1NTU1NTU1NTU1Iiwib2JqZWN0IjoiY2xpZW50In0sImRpc3B1dGUiOmZhbHNlLCJjYXB0dXJlIjp0cnVlLCJyZWZlcmVuY2VfY29kZSI6InBLOHF3R0RSOGQiLCJhdXRob3JpemF0aW9uX2NvZGUiOiJuRzhJUlIiLCJtZXRhZGF0YSI6e30sInRvdGFsX2ZlZSI6ODksImZlZV9kZXRhaWxzIjp7ImZpeGVkX2ZlZSI6e30sInZhcmlhYmxlX2ZlZSI6eyJjdXJyZW5jeV9jb2RlIjoiUEVOIiwiY29tbWlzaW9uIjowLjAzNzUsInRvdGFsIjo3NX19LCJ0b3RhbF9mZWVfdGF4ZXMiOjE0LCJ0cmFuc2Zlcl9hbW91bnQiOjE5MTAsInBhaWQiOmZhbHNlLCJzdGF0ZW1lbnRfZGVzY3JpcHRvciI6IkNVTFFJKiIsInRyYW5zZmVyX2lkIjpudWxsfQ==
|
154
|
-
http_version:
|
155
|
-
recorded_at: Tue, 15 May 2018 05:09:13 GMT
|
156
|
-
- request:
|
157
|
-
method: post
|
158
|
-
uri: https://api.culqi.com/v2/refunds/
|
159
|
-
body:
|
160
|
-
encoding: UTF-8
|
161
|
-
string: '{"amount":1999,"charge_id":"chr_test_fvR59HF3PQFtRgTn","reason":"solicitud_comprador"}'
|
162
|
-
headers:
|
163
|
-
Accept-Encoding:
|
164
|
-
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
165
|
-
Accept:
|
166
|
-
- "*/*"
|
167
|
-
User-Agent:
|
168
|
-
- Ruby
|
169
|
-
Host:
|
170
|
-
- api.culqi.com
|
171
|
-
Authorization:
|
172
|
-
- Bearer sk_test_SpwICNI4YT0OSLHY
|
173
|
-
Content-Type:
|
174
|
-
- application/json
|
175
|
-
Cache-Control:
|
176
|
-
- no-cache
|
177
|
-
response:
|
178
|
-
status:
|
179
|
-
code: 201
|
180
|
-
message: Created
|
181
|
-
headers:
|
182
|
-
Server:
|
183
|
-
- ":"
|
184
|
-
- nginx
|
185
|
-
Date:
|
186
|
-
- Tue, 15 May 2018 05:09:20 GMT
|
187
|
-
Content-Type:
|
188
|
-
- application/json;charset=UTF-8
|
189
|
-
Transfer-Encoding:
|
190
|
-
- chunked
|
191
|
-
Connection:
|
192
|
-
- keep-alive
|
193
|
-
Set-Cookie:
|
194
|
-
- JSESSIONID=A3D0B78BC9490866A36B1A57C0E94197; Path=/api/; HttpOnly
|
195
|
-
X-Culqi-Tracking-Id:
|
196
|
-
- '2572996'
|
197
|
-
X-Culqi-Environment:
|
198
|
-
- test
|
199
|
-
X-Culqi-Version:
|
200
|
-
- 2.0.0
|
201
|
-
body:
|
202
|
-
encoding: ASCII-8BIT
|
203
|
-
string: !binary |-
|
204
|
-
eyJvYmplY3QiOiJyZWZ1bmQiLCJpZCI6InJlZl90ZXN0X0FoWVJyZDVYY1cwZ1hLaG8iLCJjaGFyZ2VfaWQiOiJjaHJfdGVzdF9mdlI1OUhGM1BRRnRSZ1RuIiwiY3JlYXRpb25fZGF0ZSI6MTUyNjM2MDk2MDAwMCwiYW1vdW50IjoxOTk5LCJyZWFzb24iOiJEZXZvbHVjacOzbiBzb2xpY2l0YWRhIHBvciBlbCBjb21lcmNpbyIsIm1ldGFkYXRhIjp7fX0=
|
205
|
-
http_version:
|
206
|
-
recorded_at: Tue, 15 May 2018 05:09:20 GMT
|
207
|
-
recorded_with: VCR 4.0.0
|
@@ -1,103 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
RSpec.describe "Culqi checkout autocapture", :vcr, type: :feature, js: true do
|
6
|
-
let(:zone) { create(:zone) }
|
7
|
-
let(:country) { create(:country) }
|
8
|
-
let(:product) { create(:product) }
|
9
|
-
|
10
|
-
before do
|
11
|
-
zone.members << Spree::ZoneMember.create!(zoneable: country)
|
12
|
-
create(:store)
|
13
|
-
create(:free_shipping_method)
|
14
|
-
Spree::Config.set(auto_capture: true)
|
15
|
-
setup_culqi_gateway
|
16
|
-
checkout_until_payment(product)
|
17
|
-
end
|
18
|
-
|
19
|
-
context "with valid credit card" do
|
20
|
-
stub_authorization!
|
21
|
-
|
22
|
-
before do
|
23
|
-
fill_in "Card Number", with: "4111 1111 1111 1111"
|
24
|
-
page.execute_script("$('.cardNumber').trigger('change')")
|
25
|
-
fill_in "Card Code", with: "123"
|
26
|
-
fill_in "Expiration", with: "09 / 20"
|
27
|
-
click_button "Save and Continue"
|
28
|
-
sleep(5) # Wait for API to return + form to submit
|
29
|
-
click_button "Save and Continue"
|
30
|
-
end
|
31
|
-
|
32
|
-
it "can process a valid payment" do
|
33
|
-
expect(page.current_url).to include("/checkout/confirm")
|
34
|
-
click_button "Place Order"
|
35
|
-
expect(page).to have_content("Your order has been processed successfully")
|
36
|
-
end
|
37
|
-
|
38
|
-
it "refunds a payment" do
|
39
|
-
reason = FactoryBot.create(:refund_reason)
|
40
|
-
|
41
|
-
click_button "Place Order"
|
42
|
-
visit spree.admin_order_payments_path(Spree::Order.last)
|
43
|
-
sleep(3)
|
44
|
-
click_icon(:reply)
|
45
|
-
fill_in "Amount", with: Spree::Order.last.amount.to_f
|
46
|
-
select reason.name, from: "Reason", visible: false
|
47
|
-
click_on "Refund"
|
48
|
-
expect(Spree::Refund.count).to be(1)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "when missing credit card number" do
|
53
|
-
it "shows an error" do
|
54
|
-
fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
|
55
|
-
fill_in "Card Code", with: "123"
|
56
|
-
click_button "Save and Continue"
|
57
|
-
expect(page).to have_content("El numero de tarjeta de crédito o débito brindado no es válido.")
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
context "when missing expiration date" do
|
62
|
-
it "shows an error" do
|
63
|
-
fill_in "Card Number", with: "4242 4242 4242 4242"
|
64
|
-
fill_in "Card Code", with: "123"
|
65
|
-
click_button "Save and Continue"
|
66
|
-
expect(page).to have_content("de expiración de tu tarjeta es inválido.")
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
context "with an invalid credit card number" do
|
71
|
-
it "shows an error" do
|
72
|
-
fill_in "Card Number", with: "1111 1111 1111", visible: false
|
73
|
-
fill_in "Expiration", with: "02 / #{Time.now.year + 1}"
|
74
|
-
fill_in "Card Code", with: "123"
|
75
|
-
click_button "Save and Continue"
|
76
|
-
expect(page).to have_content("El numero de tarjeta de crédito o débito brindado no es válido.")
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context "with stolen card" do
|
81
|
-
it "shows an error" do
|
82
|
-
fill_in "Card Number", with: "4000 0200 0000 0000"
|
83
|
-
fill_in "Card Code", with: "354"
|
84
|
-
fill_in "Expiration", with: "10 / 19"
|
85
|
-
click_button "Save and Continue"
|
86
|
-
sleep(5)
|
87
|
-
click_button "Save and Continue"
|
88
|
-
expect(page).to have_content("El numero de tarjeta de crédito o débito brindado no es válido.")
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context "with insufficient funds" do
|
93
|
-
it "shows an error" do
|
94
|
-
fill_in "Card Number", with: "4000 0400 0000 0008"
|
95
|
-
fill_in "Card Code", with: "295"
|
96
|
-
fill_in "Expiration", with: "03 / 21"
|
97
|
-
click_button "Save and Continue"
|
98
|
-
sleep(5)
|
99
|
-
click_button "Save and Continue"
|
100
|
-
expect(page).to have_content("El numero de tarjeta de crédito o débito brindado no es válido.")
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
@@ -1,96 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
RSpec.describe "Culqi checkout", :vcr, type: :feature, js: true do
|
6
|
-
let(:zone) { create(:zone) }
|
7
|
-
let(:country) { create(:country) }
|
8
|
-
let(:product) { create(:product) }
|
9
|
-
|
10
|
-
before do
|
11
|
-
zone.members << Spree::ZoneMember.create!(zoneable: country)
|
12
|
-
create(:store)
|
13
|
-
create(:free_shipping_method)
|
14
|
-
setup_culqi_gateway
|
15
|
-
end
|
16
|
-
|
17
|
-
context 'with unlogged user' do
|
18
|
-
stub_authorization!
|
19
|
-
|
20
|
-
before do
|
21
|
-
checkout_until_payment(product)
|
22
|
-
|
23
|
-
fill_in "Card Number", with: "4111 1111 1111 1111", visible: false
|
24
|
-
page.execute_script("$('.cardNumber').trigger('change')")
|
25
|
-
fill_in "Card Code", with: "123"
|
26
|
-
fill_in "Expiration", with: "09 / 20"
|
27
|
-
click_button "Save and Continue"
|
28
|
-
sleep(5) # Wait for API to return + form to submit
|
29
|
-
find(".culqiInstallments").select("2")
|
30
|
-
click_button "Save and Continue"
|
31
|
-
end
|
32
|
-
|
33
|
-
context "with process checkout" do
|
34
|
-
before do
|
35
|
-
expect(page.current_url).to include("/checkout/confirm")
|
36
|
-
click_button "Place Order"
|
37
|
-
end
|
38
|
-
|
39
|
-
it "process order" do
|
40
|
-
expect(page).to have_content("Your order has been processed successfully")
|
41
|
-
payment = Spree::Order.last.payments.last
|
42
|
-
expect(payment.source.gateway_customer_profile_id).not_to be_nil
|
43
|
-
end
|
44
|
-
|
45
|
-
it "capture payment" do
|
46
|
-
visit spree.admin_order_payments_path(Spree::Order.last)
|
47
|
-
sleep(3)
|
48
|
-
click_icon(:capture)
|
49
|
-
expect(page).to have_content("Payment Updated")
|
50
|
-
end
|
51
|
-
|
52
|
-
it "voids a payment" do
|
53
|
-
visit spree.admin_order_payments_path(Spree::Order.last)
|
54
|
-
sleep(3)
|
55
|
-
click_icon(:void)
|
56
|
-
expect(page).to have_content("Payment Updated")
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'with logged user' do
|
62
|
-
let(:user) { create(:user) }
|
63
|
-
|
64
|
-
before do
|
65
|
-
visit spree.login_path
|
66
|
-
fill_in 'Email', with: user.email
|
67
|
-
fill_in 'Password', with: user.password
|
68
|
-
click_button 'Login'
|
69
|
-
end
|
70
|
-
|
71
|
-
it 'store card in wallet' do
|
72
|
-
checkout_until_payment(product, user)
|
73
|
-
|
74
|
-
fill_in "Card Number", with: "4111 1111 1111 1111", visible: false
|
75
|
-
page.execute_script("$('.cardNumber').trigger('change')")
|
76
|
-
fill_in "Card Code", with: "123"
|
77
|
-
fill_in "Expiration", with: "09 / 20"
|
78
|
-
click_button "Save and Continue"
|
79
|
-
sleep(5)
|
80
|
-
find(".culqiInstallments").select("2")
|
81
|
-
click_button "Save and Continue"
|
82
|
-
click_button "Place Order"
|
83
|
-
expect(page).to have_content("Your order has been processed successfully")
|
84
|
-
|
85
|
-
checkout_until_payment(product, user)
|
86
|
-
if SolidusCulqi::Support.solidus_earlier('2.2.x')
|
87
|
-
source = user.payment_sources.first
|
88
|
-
else
|
89
|
-
source = user.wallet.wallet_payment_sources.first.payment_source
|
90
|
-
end
|
91
|
-
|
92
|
-
expect(page).to have_content(source.name)
|
93
|
-
expect(page).to have_content(source.display_number)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
module CulqiHelper
|
6
|
-
def setup_culqi_gateway
|
7
|
-
Solidus::Gateway::CulqiGateway.create!(
|
8
|
-
name: "Culqi",
|
9
|
-
preferred_secret_key: "sk_test_SpwICNI4YT0OSLHY",
|
10
|
-
preferred_public_key: "pk_test_CaY0noGVG8ohIj4P"
|
11
|
-
)
|
12
|
-
end
|
13
|
-
|
14
|
-
def checkout_until_payment(product, user = nil)
|
15
|
-
visit spree.product_path(product)
|
16
|
-
click_button "Add To Cart"
|
17
|
-
|
18
|
-
expect(page).to have_current_path("/cart")
|
19
|
-
click_button "Checkout"
|
20
|
-
|
21
|
-
# Address
|
22
|
-
if user
|
23
|
-
expect(page).to have_current_path("/checkout/address")
|
24
|
-
else
|
25
|
-
within("#guest_checkout") do
|
26
|
-
find('#order_email')
|
27
|
-
fill_in "Email", with: "han@example.com"
|
28
|
-
click_button "Continue"
|
29
|
-
end
|
30
|
-
expect(page).to have_current_path("/checkout")
|
31
|
-
end
|
32
|
-
|
33
|
-
country = Spree::Country.first
|
34
|
-
within("#billing") do
|
35
|
-
fill_in "First Name", with: "Han"
|
36
|
-
fill_in "Last Name", with: "Solo"
|
37
|
-
fill_in "Street Address", with: "YT-1300"
|
38
|
-
fill_in "City", with: "Mos Eisley"
|
39
|
-
select "United States of America", from: "Country"
|
40
|
-
select country.states.first, from: "order_bill_address_attributes_state_id"
|
41
|
-
fill_in "Zip", with: "12010"
|
42
|
-
fill_in "Phone", with: "(555) 555-5555"
|
43
|
-
end
|
44
|
-
click_on "Save and Continue"
|
45
|
-
|
46
|
-
# Delivery
|
47
|
-
expect(page).to have_current_path("/checkout/delivery")
|
48
|
-
# expect(page).to have_content("UPS Ground")
|
49
|
-
click_on "Save and Continue"
|
50
|
-
|
51
|
-
expect(page).to have_current_path("/checkout/payment")
|
52
|
-
end
|
53
|
-
end
|