gestpay 0.0.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11e9be4abe3c16b6795457f871cd352232afb7b0
4
- data.tar.gz: 6d239b561ba96e715531993029e6ddefbf44d1f4
3
+ metadata.gz: fb27b1afa3e4602e5bb45770a79de304911a14df
4
+ data.tar.gz: d166a9e37898946195b3cd90a54fe64791762fbb
5
5
  SHA512:
6
- metadata.gz: 113d8ed0e5975f3934aca1aebd2944721943220ebed5c2b9e9dc985b15b2e586392692b9c4780a4716d0a30abf851def1ff1aaa38872a43f070a725d82bf182c
7
- data.tar.gz: 35fc6abde9d00079de65a3da09932f99c1949be82a3eb98c4c4f1839e1f90cd14092abf9e4d4f8e9c9df3cd495ca0be7a0705e55c35b701492f04d8351b64a47
6
+ metadata.gz: a4d86c07b2622095d59d3534af2f2f73e76700ac92a48c70bc71eb26fbfb345fa935cf2978dffe38bc39847ce5785d4c9e098c0b37d41f92ce217e9dfc2c9ce0
7
+ data.tar.gz: 2f704614a9cf2755fde3b66a9ff7e8102277d88b89dcca6c944053b1296e7962557c0dd76a0d1cc5b1af98245c7dc30f9dbc118005b79dfb96680fee2f95b12d
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.8.7"
4
3
  - "1.9.3"
5
4
  - "2.0.0"
6
5
  # uncomment this line if your project needs to run something other than `rake`:
data/README.md CHANGED
@@ -28,6 +28,7 @@ You can setup the gem in a Rails project using an initializer like this:
28
28
  Gestpay.setup do |config|
29
29
  config.account = 'GESPAY12345'
30
30
  config.environment = :test # default, change it to :production when ready
31
+ config.proxy = 'http://user:password@proxy-host:proxy-port' # OPTIONAL
31
32
  end
32
33
  ```
33
34
 
@@ -36,6 +37,7 @@ or using an export:
36
37
  ```shell
37
38
  export GESTPAY_ACCOUNT=GESPAY12345
38
39
  export GESTPAY_ENVIRONMENT=test
40
+ export GESTPAY_PROXY=http://user:password@proxy-host:proxy-port
39
41
  ```
40
42
 
41
43
  You then have two different classes: `Gestpay::Digest` will help with the Crypt/Decrypt web service, while `Gestpay::Gateway` with the server-to-server webservice operations.
@@ -51,3 +53,4 @@ You then have two different classes: `Gestpay::Digest` will help with the Crypt/
51
53
  ## Licence
52
54
 
53
55
  Released under the [MIT License](http://www.opensource.org/licenses/MIT). © 2013 [Momit S.r.l.](http://momit.it/)
56
+
@@ -14,12 +14,13 @@ module Gestpay
14
14
  'ITA' => '1'
15
15
  }
16
16
 
17
- attr_accessor :environment, :account, :currency, :language
17
+ attr_accessor :environment, :account, :currency, :language, :proxy
18
18
  def initialize
19
19
  @environment = ENV['GESTPAY_ENVIRONMENT'] || :test
20
20
  @account = ENV['GESTPAY_ACCOUNT']
21
21
  @currency = 'EUR'
22
22
  @language = 'ITA'
23
+ @proxy = ENV['GESTPAY_PROXY']
23
24
  end
24
25
 
25
26
  def currency_code
@@ -32,3 +33,4 @@ module Gestpay
32
33
 
33
34
  end
34
35
  end
36
+
@@ -16,7 +16,11 @@ module Gestpay
16
16
  def initialize
17
17
  # SOAP Client operations:
18
18
  # => [:encrypt, :decrypt]
19
- @client = Savon.client(:wsdl => URL[Gestpay.config.environment])
19
+ savon_options = {:wsdl => URL[Gestpay.config.environment]}
20
+ if Gestpay.config.proxy
21
+ savon_options.merge!({ :proxy=> URI.parse(Gestpay.config.proxy)})
22
+ end
23
+ @client = Savon.client(savon_options)
20
24
  end
21
25
 
22
26
  def soap_options(data)
@@ -16,16 +16,22 @@ module Gestpay
16
16
  def initialize
17
17
  # SOAP Client operations:
18
18
  # => [:call_refund_s2_s, :call_read_trx_s2_s, :call_pagam_s2_s, :call_delete_s2_s, :call_settle_s2_s, :call_verifycard_s2_s, :call_check_carta_s2_s, :call_renounce, :call_request_token_s2_s, :call_delete_token_s2_s]
19
- @client = Savon.client(:wsdl => URL[Gestpay.config.environment])
19
+ savon_options = {:wsdl => URL[Gestpay.config.environment]}
20
+ if Gestpay.config.proxy
21
+ savon_options.merge!({ :proxy=> URI.parse(Gestpay.config.proxy)})
22
+ end
23
+ @client = Savon.client(savon_options)
20
24
  end
21
25
 
22
- def soap_options(data)
26
+ def soap_options(data, options = [:shop_login, :uic_code, :language_id])
27
+ configuration_options = {
28
+ :shop_login => config.account,
29
+ :uic_code => config.currency_code,
30
+ :language_id => config.language_code
31
+ }
32
+
23
33
  {
24
- :message => {
25
- :shop_login => config.account,
26
- :uic_code => config.currency_code,
27
- :language_id => config.language_code
28
- }.merge(data)
34
+ :message => configuration_options.slice(*options).merge(data)
29
35
  }
30
36
  end
31
37
 
@@ -47,5 +53,27 @@ module Gestpay
47
53
  Result::TokenRequest.new(response_content)
48
54
  end
49
55
 
56
+ def settle(data)
57
+ data[:bank_trans_ID] ||= data.delete(:bank_trans_id)
58
+ data[:shop_trans_ID] ||= data.delete(:shop_trans_id)
59
+
60
+ data = Hash[data.select { |k, v| v.present? }]
61
+
62
+ response = @client.call(:call_settle_s2_s, soap_options(data, [:shop_login, :uic_code]))
63
+ response_content = response.body[:call_settle_s2_s_response][:call_settle_s2_s_result][:gest_pay_s2_s]
64
+ Result::Settle.new(response_content)
65
+ end
66
+
67
+ def delete(data)
68
+ data[:Bank_transaction_id] ||= data.delete(:bank_transaction_id)
69
+ data[:Shop_transaction_id] ||= data.delete(:shop_transaction_id)
70
+
71
+ data = Hash[data.select { |k, v| v.present? }]
72
+
73
+ response = @client.call(:call_delete_s2_s, soap_options(data, [:shop_login]))
74
+ response_content = response.body[:call_delete_s2_s_response][:call_delete_s2_s_result][:gest_pay_s2_s]
75
+ Result::Delete.new(response_content)
76
+ end
50
77
  end
51
78
  end
79
+
@@ -3,13 +3,22 @@ module Gestpay
3
3
 
4
4
  FALLBACK_URL = {
5
5
  :test => 'https://testecomm.sella.it/pagam/pagam.aspx',
6
- :production => 'https://ecomm.sella.it/pagam/pagam.aspx'
6
+ :production => 'https://ecomm.sella.it/pagam/pagam.aspx'
7
+ }
8
+
9
+ PAYMENT_3D_URL = {
10
+ :test => 'https://testecomm.sella.it/pagam/pagam3d.aspx',
11
+ :production => 'https://ecomm.sella.it/pagam/pagam3d.aspx'
7
12
  }
8
13
 
9
14
  def self.fallback_url
10
15
  FALLBACK_URL[Gestpay.config.environment]
11
16
  end
12
17
 
18
+ def self.payment_3d_url
19
+ PAYMENT_3D_URL[Gestpay.config.environment]
20
+ end
21
+
13
22
  end
14
23
  end
15
24
 
@@ -3,8 +3,11 @@ require "gestpay/result/decrypt"
3
3
  require "gestpay/result/encrypt"
4
4
  require "gestpay/result/payment"
5
5
  require "gestpay/result/token_request"
6
+ require "gestpay/result/settle"
7
+ require "gestpay/result/delete"
6
8
 
7
9
  module Gestpay
8
10
  module Result
9
11
  end
10
12
  end
13
+
@@ -0,0 +1,7 @@
1
+ module Gestpay
2
+ module Result
3
+ class Delete < Gestpay::Result::Base
4
+ end
5
+ end
6
+ end
7
+
@@ -0,0 +1,7 @@
1
+ module Gestpay
2
+ module Result
3
+ class Settle < Gestpay::Result::Base
4
+ end
5
+ end
6
+ end
7
+
@@ -1,3 +1,3 @@
1
1
  module Gestpay
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,391 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx?WSDL
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Fri, 04 Oct 2013 07:34:25 GMT
21
+ Server:
22
+ - Microsoft-IIS/6.0
23
+ P3p:
24
+ - CP="ALL IND"
25
+ X-Powered-By:
26
+ - ASP.NET
27
+ X-Aspnet-Version:
28
+ - 4.0.30319
29
+ Cache-Control:
30
+ - private, max-age=0
31
+ Content-Type:
32
+ - text/xml; charset=utf-8
33
+ Content-Length:
34
+ - '23531'
35
+ body:
36
+ encoding: US-ASCII
37
+ string: ! "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<wsdl:definitions xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\"
38
+ xmlns:tm=\"http://microsoft.com/wsdl/mime/textMatching/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\"
39
+ xmlns:mime=\"http://schemas.xmlsoap.org/wsdl/mime/\" xmlns:tns=\"https://ecomms2s.sella.it/\"
40
+ xmlns:s=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://schemas.xmlsoap.org/wsdl/soap12/\"
41
+ xmlns:http=\"http://schemas.xmlsoap.org/wsdl/http/\" targetNamespace=\"https://ecomms2s.sella.it/\"
42
+ xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\">\r\n <wsdl:types>\r\n <s:schema
43
+ elementFormDefault=\"qualified\" targetNamespace=\"https://ecomms2s.sella.it/\">\r\n
44
+ \ <s:element name=\"callRefundS2S\">\r\n <s:complexType>\r\n <s:sequence>\r\n
45
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"shopLogin\"
46
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
47
+ name=\"uicCode\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
48
+ maxOccurs=\"1\" name=\"amount\" type=\"s:string\" />\r\n <s:element
49
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"shopTransactionId\" type=\"s:string\"
50
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"bankTransactionId\"
51
+ type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
52
+ \ </s:element>\r\n <s:element name=\"callRefundS2SResponse\">\r\n
53
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
54
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callRefundS2SResult\">\r\n <s:complexType
55
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
56
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
57
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
58
+ \ </s:element>\r\n <s:element name=\"callReadTrxS2S\">\r\n <s:complexType>\r\n
59
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
60
+ name=\"shopLogin\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
61
+ maxOccurs=\"1\" name=\"shopTransactionId\" type=\"s:string\" />\r\n <s:element
62
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"bankTransactionId\" type=\"s:string\"
63
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
64
+ \ <s:element name=\"callReadTrxS2SResponse\">\r\n <s:complexType>\r\n
65
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
66
+ name=\"callReadTrxS2SResult\">\r\n <s:complexType mixed=\"true\">\r\n
67
+ \ <s:sequence>\r\n <s:any />\r\n </s:sequence>\r\n
68
+ \ </s:complexType>\r\n </s:element>\r\n </s:sequence>\r\n
69
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"callPagamS2S\">\r\n
70
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
71
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"shopLogin\" type=\"s:string\" />\r\n
72
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"uicCode\" type=\"s:string\"
73
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"amount\"
74
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
75
+ name=\"shopTransactionId\" type=\"s:string\" />\r\n <s:element
76
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cardNumber\" type=\"s:string\" />\r\n
77
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expiryMonth\"
78
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
79
+ name=\"expiryYear\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
80
+ maxOccurs=\"1\" name=\"buyerName\" type=\"s:string\" />\r\n <s:element
81
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"buyerEmail\" type=\"s:string\" />\r\n
82
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"languageId\"
83
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
84
+ name=\"cvv\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
85
+ maxOccurs=\"1\" name=\"min\" type=\"s:string\" />\r\n <s:element
86
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"transKey\" type=\"s:string\" />\r\n
87
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"PARes\" type=\"s:string\"
88
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"customInfo\"
89
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
90
+ name=\"IDEA\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
91
+ maxOccurs=\"1\" name=\"requestToken\" type=\"s:string\" />\r\n <s:element
92
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"tokenValue\" type=\"s:string\" />\r\n
93
+ \ </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
94
+ \ <s:element name=\"callPagamS2SResponse\">\r\n <s:complexType>\r\n
95
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
96
+ name=\"callPagamS2SResult\">\r\n <s:complexType mixed=\"true\">\r\n
97
+ \ <s:sequence>\r\n <s:any />\r\n </s:sequence>\r\n
98
+ \ </s:complexType>\r\n </s:element>\r\n </s:sequence>\r\n
99
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"callDeleteS2S\">\r\n
100
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
101
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"shopLogin\" type=\"s:string\" />\r\n
102
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"shopTransactionId\"
103
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
104
+ name=\"bankTransactionId\" type=\"s:string\" />\r\n </s:sequence>\r\n
105
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"callDeleteS2SResponse\">\r\n
106
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
107
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callDeleteS2SResult\">\r\n <s:complexType
108
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
109
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
110
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
111
+ \ </s:element>\r\n <s:element name=\"callSettleS2S\">\r\n <s:complexType>\r\n
112
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
113
+ name=\"shopLogin\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
114
+ maxOccurs=\"1\" name=\"uicCode\" type=\"s:string\" />\r\n <s:element
115
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"amount\" type=\"s:string\" />\r\n <s:element
116
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"shopTransID\" type=\"s:string\" />\r\n
117
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"bankTransID\"
118
+ type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
119
+ \ </s:element>\r\n <s:element name=\"callSettleS2SResponse\">\r\n
120
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
121
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callSettleS2SResult\">\r\n <s:complexType
122
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
123
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
124
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
125
+ \ </s:element>\r\n <s:element name=\"callVerifycardS2S\">\r\n <s:complexType>\r\n
126
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
127
+ name=\"shopLogin\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
128
+ maxOccurs=\"1\" name=\"shopTransactionId\" type=\"s:string\" />\r\n <s:element
129
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cardNumber\" type=\"s:string\" />\r\n
130
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expMonth\" type=\"s:string\"
131
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expYear\"
132
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
133
+ name=\"CVV2\" type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
134
+ \ </s:element>\r\n <s:element name=\"callVerifycardS2SResponse\">\r\n
135
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
136
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callVerifycardS2SResult\">\r\n <s:complexType
137
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
138
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
139
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
140
+ \ </s:element>\r\n <s:element name=\"callCheckCartaS2S\">\r\n <s:complexType>\r\n
141
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
142
+ name=\"shopLogin\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
143
+ maxOccurs=\"1\" name=\"shopTransactionId\" type=\"s:string\" />\r\n <s:element
144
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cardNumber\" type=\"s:string\" />\r\n
145
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expMonth\" type=\"s:string\"
146
+ />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expYear\"
147
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
148
+ name=\"CVV2\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
149
+ maxOccurs=\"1\" name=\"withAuth\" type=\"s:string\" />\r\n </s:sequence>\r\n
150
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"callCheckCartaS2SResponse\">\r\n
151
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
152
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callCheckCartaS2SResult\">\r\n <s:complexType
153
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
154
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
155
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
156
+ \ </s:element>\r\n <s:element name=\"callRenounce\">\r\n <s:complexType
157
+ />\r\n </s:element>\r\n <s:element name=\"callRenounceResponse\">\r\n
158
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
159
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callRenounceResult\">\r\n <s:complexType
160
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
161
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
162
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
163
+ \ </s:element>\r\n <s:element name=\"CallRequestTokenS2S\">\r\n <s:complexType>\r\n
164
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
165
+ name=\"shopLogin\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
166
+ maxOccurs=\"1\" name=\"requestToken\" type=\"s:string\" />\r\n <s:element
167
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"cardNumber\" type=\"s:string\" />\r\n
168
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"expiryMonth\"
169
+ type=\"s:string\" />\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
170
+ name=\"expiryYear\" type=\"s:string\" />\r\n <s:element minOccurs=\"0\"
171
+ maxOccurs=\"1\" name=\"cvv\" type=\"s:string\" />\r\n <s:element
172
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"withAuth\" type=\"s:string\" />\r\n
173
+ \ </s:sequence>\r\n </s:complexType>\r\n </s:element>\r\n
174
+ \ <s:element name=\"CallRequestTokenS2SResponse\">\r\n <s:complexType>\r\n
175
+ \ <s:sequence>\r\n <s:element minOccurs=\"0\" maxOccurs=\"1\"
176
+ name=\"CallRequestTokenS2SResult\">\r\n <s:complexType mixed=\"true\">\r\n
177
+ \ <s:sequence>\r\n <s:any />\r\n </s:sequence>\r\n
178
+ \ </s:complexType>\r\n </s:element>\r\n </s:sequence>\r\n
179
+ \ </s:complexType>\r\n </s:element>\r\n <s:element name=\"callDeleteTokenS2S\">\r\n
180
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
181
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"tokenValue\" type=\"s:string\" />\r\n
182
+ \ <s:element minOccurs=\"0\" maxOccurs=\"1\" name=\"shopLogin\"
183
+ type=\"s:string\" />\r\n </s:sequence>\r\n </s:complexType>\r\n
184
+ \ </s:element>\r\n <s:element name=\"callDeleteTokenS2SResponse\">\r\n
185
+ \ <s:complexType>\r\n <s:sequence>\r\n <s:element
186
+ minOccurs=\"0\" maxOccurs=\"1\" name=\"callDeleteTokenS2SResult\">\r\n <s:complexType
187
+ mixed=\"true\">\r\n <s:sequence>\r\n <s:any
188
+ />\r\n </s:sequence>\r\n </s:complexType>\r\n
189
+ \ </s:element>\r\n </s:sequence>\r\n </s:complexType>\r\n
190
+ \ </s:element>\r\n </s:schema>\r\n </wsdl:types>\r\n <wsdl:message
191
+ name=\"callRefundS2SSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:callRefundS2S\"
192
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callRefundS2SSoapOut\">\r\n
193
+ \ <wsdl:part name=\"parameters\" element=\"tns:callRefundS2SResponse\" />\r\n
194
+ \ </wsdl:message>\r\n <wsdl:message name=\"callReadTrxS2SSoapIn\">\r\n <wsdl:part
195
+ name=\"parameters\" element=\"tns:callReadTrxS2S\" />\r\n </wsdl:message>\r\n
196
+ \ <wsdl:message name=\"callReadTrxS2SSoapOut\">\r\n <wsdl:part name=\"parameters\"
197
+ element=\"tns:callReadTrxS2SResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
198
+ name=\"callPagamS2SSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:callPagamS2S\"
199
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callPagamS2SSoapOut\">\r\n
200
+ \ <wsdl:part name=\"parameters\" element=\"tns:callPagamS2SResponse\" />\r\n
201
+ \ </wsdl:message>\r\n <wsdl:message name=\"callDeleteS2SSoapIn\">\r\n <wsdl:part
202
+ name=\"parameters\" element=\"tns:callDeleteS2S\" />\r\n </wsdl:message>\r\n
203
+ \ <wsdl:message name=\"callDeleteS2SSoapOut\">\r\n <wsdl:part name=\"parameters\"
204
+ element=\"tns:callDeleteS2SResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
205
+ name=\"callSettleS2SSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:callSettleS2S\"
206
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callSettleS2SSoapOut\">\r\n
207
+ \ <wsdl:part name=\"parameters\" element=\"tns:callSettleS2SResponse\" />\r\n
208
+ \ </wsdl:message>\r\n <wsdl:message name=\"callVerifycardS2SSoapIn\">\r\n
209
+ \ <wsdl:part name=\"parameters\" element=\"tns:callVerifycardS2S\" />\r\n
210
+ \ </wsdl:message>\r\n <wsdl:message name=\"callVerifycardS2SSoapOut\">\r\n
211
+ \ <wsdl:part name=\"parameters\" element=\"tns:callVerifycardS2SResponse\"
212
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callCheckCartaS2SSoapIn\">\r\n
213
+ \ <wsdl:part name=\"parameters\" element=\"tns:callCheckCartaS2S\" />\r\n
214
+ \ </wsdl:message>\r\n <wsdl:message name=\"callCheckCartaS2SSoapOut\">\r\n
215
+ \ <wsdl:part name=\"parameters\" element=\"tns:callCheckCartaS2SResponse\"
216
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callRenounceSoapIn\">\r\n
217
+ \ <wsdl:part name=\"parameters\" element=\"tns:callRenounce\" />\r\n </wsdl:message>\r\n
218
+ \ <wsdl:message name=\"callRenounceSoapOut\">\r\n <wsdl:part name=\"parameters\"
219
+ element=\"tns:callRenounceResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
220
+ name=\"CallRequestTokenS2SSoapIn\">\r\n <wsdl:part name=\"parameters\"
221
+ element=\"tns:CallRequestTokenS2S\" />\r\n </wsdl:message>\r\n <wsdl:message
222
+ name=\"CallRequestTokenS2SSoapOut\">\r\n <wsdl:part name=\"parameters\"
223
+ element=\"tns:CallRequestTokenS2SResponse\" />\r\n </wsdl:message>\r\n <wsdl:message
224
+ name=\"callDeleteTokenS2SSoapIn\">\r\n <wsdl:part name=\"parameters\" element=\"tns:callDeleteTokenS2S\"
225
+ />\r\n </wsdl:message>\r\n <wsdl:message name=\"callDeleteTokenS2SSoapOut\">\r\n
226
+ \ <wsdl:part name=\"parameters\" element=\"tns:callDeleteTokenS2SResponse\"
227
+ />\r\n </wsdl:message>\r\n <wsdl:portType name=\"WSs2sSoap\">\r\n <wsdl:operation
228
+ name=\"callRefundS2S\">\r\n <wsdl:input message=\"tns:callRefundS2SSoapIn\"
229
+ />\r\n <wsdl:output message=\"tns:callRefundS2SSoapOut\" />\r\n </wsdl:operation>\r\n
230
+ \ <wsdl:operation name=\"callReadTrxS2S\">\r\n <wsdl:input message=\"tns:callReadTrxS2SSoapIn\"
231
+ />\r\n <wsdl:output message=\"tns:callReadTrxS2SSoapOut\" />\r\n </wsdl:operation>\r\n
232
+ \ <wsdl:operation name=\"callPagamS2S\">\r\n <wsdl:input message=\"tns:callPagamS2SSoapIn\"
233
+ />\r\n <wsdl:output message=\"tns:callPagamS2SSoapOut\" />\r\n </wsdl:operation>\r\n
234
+ \ <wsdl:operation name=\"callDeleteS2S\">\r\n <wsdl:input message=\"tns:callDeleteS2SSoapIn\"
235
+ />\r\n <wsdl:output message=\"tns:callDeleteS2SSoapOut\" />\r\n </wsdl:operation>\r\n
236
+ \ <wsdl:operation name=\"callSettleS2S\">\r\n <wsdl:input message=\"tns:callSettleS2SSoapIn\"
237
+ />\r\n <wsdl:output message=\"tns:callSettleS2SSoapOut\" />\r\n </wsdl:operation>\r\n
238
+ \ <wsdl:operation name=\"callVerifycardS2S\">\r\n <wsdl:input message=\"tns:callVerifycardS2SSoapIn\"
239
+ />\r\n <wsdl:output message=\"tns:callVerifycardS2SSoapOut\" />\r\n </wsdl:operation>\r\n
240
+ \ <wsdl:operation name=\"callCheckCartaS2S\">\r\n <wsdl:input message=\"tns:callCheckCartaS2SSoapIn\"
241
+ />\r\n <wsdl:output message=\"tns:callCheckCartaS2SSoapOut\" />\r\n </wsdl:operation>\r\n
242
+ \ <wsdl:operation name=\"callRenounce\">\r\n <wsdl:input message=\"tns:callRenounceSoapIn\"
243
+ />\r\n <wsdl:output message=\"tns:callRenounceSoapOut\" />\r\n </wsdl:operation>\r\n
244
+ \ <wsdl:operation name=\"CallRequestTokenS2S\">\r\n <wsdl:input message=\"tns:CallRequestTokenS2SSoapIn\"
245
+ />\r\n <wsdl:output message=\"tns:CallRequestTokenS2SSoapOut\" />\r\n
246
+ \ </wsdl:operation>\r\n <wsdl:operation name=\"callDeleteTokenS2S\">\r\n
247
+ \ <wsdl:input message=\"tns:callDeleteTokenS2SSoapIn\" />\r\n <wsdl:output
248
+ message=\"tns:callDeleteTokenS2SSoapOut\" />\r\n </wsdl:operation>\r\n
249
+ \ </wsdl:portType>\r\n <wsdl:binding name=\"WSs2sSoap\" type=\"tns:WSs2sSoap\">\r\n
250
+ \ <soap:binding transport=\"http://schemas.xmlsoap.org/soap/http\" />\r\n
251
+ \ <wsdl:operation name=\"callRefundS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callRefundS2S\"
252
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
253
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
254
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
255
+ name=\"callReadTrxS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callReadTrxS2S\"
256
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
257
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
258
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
259
+ name=\"callPagamS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callPagamS2S\"
260
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
261
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
262
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
263
+ name=\"callDeleteS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callDeleteS2S\"
264
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
265
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
266
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
267
+ name=\"callSettleS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callSettleS2S\"
268
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
269
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
270
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
271
+ name=\"callVerifycardS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callVerifycardS2S\"
272
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
273
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
274
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
275
+ name=\"callCheckCartaS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callCheckCartaS2S\"
276
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
277
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
278
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
279
+ name=\"callRenounce\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callRenounce\"
280
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
281
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
282
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
283
+ name=\"CallRequestTokenS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/CallRequestTokenS2S\"
284
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
285
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
286
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
287
+ name=\"callDeleteTokenS2S\">\r\n <soap:operation soapAction=\"https://ecomms2s.sella.it/callDeleteTokenS2S\"
288
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap:body use=\"literal\"
289
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap:body use=\"literal\"
290
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
291
+ \ <wsdl:binding name=\"WSs2sSoap12\" type=\"tns:WSs2sSoap\">\r\n <soap12:binding
292
+ transport=\"http://schemas.xmlsoap.org/soap/http\" />\r\n <wsdl:operation
293
+ name=\"callRefundS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callRefundS2S\"
294
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
295
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
296
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
297
+ name=\"callReadTrxS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callReadTrxS2S\"
298
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
299
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
300
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
301
+ name=\"callPagamS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callPagamS2S\"
302
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
303
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
304
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
305
+ name=\"callDeleteS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callDeleteS2S\"
306
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
307
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
308
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
309
+ name=\"callSettleS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callSettleS2S\"
310
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
311
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
312
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
313
+ name=\"callVerifycardS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callVerifycardS2S\"
314
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
315
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
316
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
317
+ name=\"callCheckCartaS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callCheckCartaS2S\"
318
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
319
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
320
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
321
+ name=\"callRenounce\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callRenounce\"
322
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
323
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
324
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
325
+ name=\"CallRequestTokenS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/CallRequestTokenS2S\"
326
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
327
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
328
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n <wsdl:operation
329
+ name=\"callDeleteTokenS2S\">\r\n <soap12:operation soapAction=\"https://ecomms2s.sella.it/callDeleteTokenS2S\"
330
+ style=\"document\" />\r\n <wsdl:input>\r\n <soap12:body use=\"literal\"
331
+ />\r\n </wsdl:input>\r\n <wsdl:output>\r\n <soap12:body use=\"literal\"
332
+ />\r\n </wsdl:output>\r\n </wsdl:operation>\r\n </wsdl:binding>\r\n
333
+ \ <wsdl:service name=\"WSs2s\">\r\n <wsdl:port name=\"WSs2sSoap\" binding=\"tns:WSs2sSoap\">\r\n
334
+ \ <soap:address location=\"https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx\"
335
+ />\r\n </wsdl:port>\r\n <wsdl:port name=\"WSs2sSoap12\" binding=\"tns:WSs2sSoap12\">\r\n
336
+ \ <soap12:address location=\"https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx\"
337
+ />\r\n </wsdl:port>\r\n </wsdl:service>\r\n</wsdl:definitions>"
338
+ http_version:
339
+ recorded_at: Fri, 04 Oct 2013 07:34:25 GMT
340
+ - request:
341
+ method: post
342
+ uri: https://testecomm.sella.it/gestpay/gestpayws/WSs2s.asmx
343
+ body:
344
+ encoding: US-ASCII
345
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
346
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="https://ecomms2s.sella.it/"
347
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><tns:callDeleteS2S><tns:shopLogin>GESPAY12345</tns:shopLogin><tns:bankTransactionId>7</tns:bankTransactionId></tns:callDeleteS2S></env:Body></env:Envelope>
348
+ headers:
349
+ Soapaction:
350
+ - ! '"https://ecomms2s.sella.it/callDeleteS2S"'
351
+ Content-Type:
352
+ - text/xml;charset=UTF-8
353
+ Content-Length:
354
+ - '409'
355
+ Accept:
356
+ - ! '*/*'
357
+ User-Agent:
358
+ - Ruby
359
+ response:
360
+ status:
361
+ code: 200
362
+ message: OK
363
+ headers:
364
+ Date:
365
+ - Fri, 04 Oct 2013 07:34:26 GMT
366
+ Server:
367
+ - Microsoft-IIS/6.0
368
+ P3p:
369
+ - CP="ALL IND"
370
+ X-Powered-By:
371
+ - ASP.NET
372
+ X-Aspnet-Version:
373
+ - 4.0.30319
374
+ Set-Cookie:
375
+ - ASP.NET_SessionId=2pxrenmw0s1bsjrqwrqqzxfc; path=/; HttpOnly
376
+ Cache-Control:
377
+ - private, max-age=0
378
+ Content-Type:
379
+ - text/xml; charset=utf-8
380
+ Content-Length:
381
+ - '658'
382
+ body:
383
+ encoding: US-ASCII
384
+ string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
385
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><callDeleteS2SResponse
386
+ xmlns="https://ecomms2s.sella.it/"><callDeleteS2SResult><GestPayS2S xmlns=""><TransactionType>Delete</TransactionType><TransactionResult>KO</TransactionResult><ShopTransactionID></ShopTransactionID><BankTransactionID>7</BankTransactionID><ErrorCode>2017</ErrorCode><ErrorDescription>Transazione
387
+ non cancellabile</ErrorDescription></GestPayS2S></callDeleteS2SResult></callDeleteS2SResponse></soap:Body></soap:Envelope>
388
+ http_version:
389
+ recorded_at: Fri, 04 Oct 2013 07:34:26 GMT
390
+ recorded_with: VCR 2.5.0
391
+