api_banking 0.1.13 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ff6de2ae09b3e08f9432dc01bcb07c6965e9e92
4
- data.tar.gz: 8ae6ed9bcffb9d0d25aaa695892a9236aeb45e41
3
+ metadata.gz: a8ac48c6e64b440bcc5464c7a72b6434e69ffe7d
4
+ data.tar.gz: 106789341846c7bd9bda683207cffd5099ad7ec4
5
5
  SHA512:
6
- metadata.gz: c1b46160154cb6b136f23a78af5aa2dd0cfb562be5b7c7b28391a61abfd0e9d1a3cb3a5720526442f4fcc8c45eb57564c67e96fe28160cb38fca2f62718c8547
7
- data.tar.gz: fc5ebbe32fa10717e99169bed71e8fac3af9559f00bbf20af58f6b392e118c0e8b7fb208c8193641a0b05634b8544506950d011ba5aaf49e2ab100bd126d4d86
6
+ metadata.gz: 8552687923c53d39f3216ef0d367858bfb2e811478696f57585acf4572fdcff1bd110f0e9164e7cbc9c201a600231ba702410b8da84ed836d5e0be5f2eb4101a
7
+ data.tar.gz: 7c5dd89d3dc2d8ece6ce944ec462a95c85ccdda47ab56c6ec7e51d2ed7e7e5a0f84ca549f4d08f407a749cd2a4b50c07b72a21ae10af31d4e4f9e399465727d9
@@ -13,7 +13,8 @@ module ApiBanking
13
13
  PrepaidCardService: 'https://uatsky.yesbank.in:7081/PrepaidCardService',
14
14
  SocialBankingService: 'https://uatsky.yesbank.in/app/uat/SocialBankingServiceHttpService',
15
15
  VirtualCardManagementService: 'https://uatsky.yesbank.in/app/uat/VirtualCardManagementService',
16
- InwardRemittanceByPartnerService: 'https://uatsky.yesbank.in:7081/InwardRemittanceByPartnerService'
16
+ InwardRemittanceByPartnerService: 'https://uatsky.yesbank.in:7081/InwardRemittanceByPartnerService',
17
+ AadhaarVerificationService: 'https://uatsky.yesbank.in/app/uat/ssl/eKYC'
17
18
  }
18
19
  end
19
20
  end
@@ -0,0 +1,141 @@
1
+ module ApiBanking
2
+ class AadhaarVerificationService < Soap11Client
3
+
4
+ SERVICE_NAMESPACE = 'http://xmlns.yesbank.com/WS/EKYCDataElement'
5
+ SERVICE_VERSION = "1.0"
6
+
7
+ attr_accessor :request, :result
8
+
9
+ #verification
10
+ module Verification
11
+ Request = Struct.new(:getDemoAuthDataReq)
12
+ GetDemoAuthDataReq = Struct.new(:reqHdr, :reqBody)
13
+ ReqHdr = Struct.new(:consumerContext, :serviceContext)
14
+ ConsumerContext = Struct.new(:requesterID)
15
+ ServiceContext = Struct.new(:serviceName, :reqRefNum, :reqRefTimeStamp, :serviceVersionNo)
16
+ ReqBody = Struct.new(:demographicDataModel)
17
+ DemographicDataModel = Struct.new(:aadhaarName, :aadhaarNo, :agentID, :dob, :gender, :loginKey, :merchantId, :merchantTransactionId, :pincode, :terminalID)
18
+
19
+ Result = Struct.new(:getDemoAuthDataRes)
20
+ GetDemoAuthDataRes = Struct.new(:resHdr)
21
+ ResHdr = Struct.new(:consumerContext, :serviceContext, :serviceResponse, :errorDetails)
22
+ ServiceResponse = Struct.new(:esbResTimeStamp, :esbResStatus)
23
+ ErrorDetails = Struct.new(:errorInfo)
24
+ ErrorInfo = Struct.new(:errSrc, :hostErrCode, :hostErrDesc)
25
+ end
26
+
27
+ class << self
28
+ attr_accessor :configuration
29
+ end
30
+
31
+ def self.configure
32
+ self.configuration ||= Configuration.new
33
+ yield(configuration)
34
+ end
35
+
36
+ class Configuration
37
+ attr_accessor :environment, :proxy, :timeout
38
+ end
39
+
40
+ def self.getDemoAuthData(request)
41
+ reply = do_remote_call("http://xmlns.yesbank.com/WS/EKYCService/GetDemoAuthData") do |xml|
42
+ xml.GetDemoAuthDataReq("xmlns:eky" => SERVICE_NAMESPACE ) do
43
+ xml.parent.namespace = xml.parent.namespace_definitions.first
44
+ xml['eky'].ReqHdr do |header|
45
+ header.ConsumerContext do |consumer|
46
+ consumer.parent.namespace = nil
47
+ consumer.RequesterID request.getDemoAuthDataReq.reqHdr.consumerContext.requesterID
48
+ end
49
+ header.ServiceContext do |service|
50
+ service.parent.namespace = nil
51
+ service.ServiceName 'EKYCService'
52
+ service.ReqRefNum request.getDemoAuthDataReq.reqHdr.serviceContext.reqRefNum
53
+ service.ReqRefTimeStamp Time.now.strftime '%Y-%m-%dT%H:%M:%S'
54
+ service.ServiceVersionNo SERVICE_VERSION
55
+ end
56
+ end
57
+ xml['eky'].ReqBody do |body|
58
+ body['eky'].DemographicDataModel do |data|
59
+ data['eky'].AadhaarName request.getDemoAuthDataReq.reqBody.demographicDataModel.aadhaarName
60
+ data['eky'].AadhaarNo request.getDemoAuthDataReq.reqBody.demographicDataModel.aadhaarNo
61
+ data['eky'].AgentID request.getDemoAuthDataReq.reqBody.demographicDataModel.agentID
62
+ data['eky'].DOB['xsi:nil'] = true if request.getDemoAuthDataReq.reqBody.demographicDataModel.dob.nil?
63
+ data['eky'].DOB request.getDemoAuthDataReq.reqBody.demographicDataModel.dob unless request.getDemoAuthDataReq.reqBody.demographicDataModel.dob.nil?
64
+ data['eky'].Gender['xsi:nil'] = true if request.getDemoAuthDataReq.reqBody.demographicDataModel.gender.nil?
65
+ data['eky'].Gender request.getDemoAuthDataReq.reqBody.demographicDataModel.gender unless request.getDemoAuthDataReq.reqBody.demographicDataModel.gender.nil?
66
+ data['eky'].Loginkey request.getDemoAuthDataReq.reqBody.demographicDataModel.loginKey
67
+ data['eky'].MerchantId request.getDemoAuthDataReq.reqBody.demographicDataModel.merchantId
68
+ data['eky'].MerchantTransactionId request.getDemoAuthDataReq.reqBody.demographicDataModel.merchantTransactionId
69
+ data['eky'].Pincode request.getDemoAuthDataReq.reqBody.demographicDataModel.pincode
70
+ data['eky'].TerminalID request.getDemoAuthDataReq.reqBody.demographicDataModel.terminalID
71
+ end
72
+ end
73
+ end
74
+ end
75
+ parse_reply(:getDemoAuthData, reply)
76
+ end
77
+
78
+ private
79
+
80
+ def self.uri()
81
+ return '/eKYC'
82
+ end
83
+
84
+ Result = Struct.new(:getDemoAuthDataRes)
85
+ getDemoAuthDataRes = Struct.new(:resHdr)
86
+ ResHdr = Struct.new(:consumerContext, :serviceContext, :serviceResponse, :errorDetails)
87
+ ServiceResponse = Struct.new(:esbResTimeStamp, :esbResStatus)
88
+ ConsumerContext = Struct.new(:requesterID)
89
+ ServiceContext = Struct.new(:serviceName, :reqRefNum, :reqRefTimeStamp, :serviceVersionNo)
90
+ ErrorDetails = Struct.new(:errorInfo)
91
+ ErrorInfo = Struct.new(:errSrc, :hostErrCode, :hostErrDesc)
92
+
93
+ def self.parse_reply(operationName, reply)
94
+ if reply.kind_of?Fault
95
+ return reply
96
+ else
97
+ case operationName
98
+ when :getDemoAuthData
99
+ service_response = Verification::ServiceResponse.new(
100
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceResponse/EsbResTimeStamp', 'NS1' => SERVICE_NAMESPACE)),
101
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceResponse/EsbResStatus', 'NS1' => SERVICE_NAMESPACE))
102
+ )
103
+ consumer_context = Verification::ConsumerContext.new(
104
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ConsumerContext/RequesterID', 'NS1' => SERVICE_NAMESPACE))
105
+ )
106
+ service_context = Verification::ServiceContext.new(
107
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceContext/ServiceName', 'NS1' => SERVICE_NAMESPACE)),
108
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceContext/ReqRefNum', 'NS1' => SERVICE_NAMESPACE)),
109
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceContext/ReqRefTimeStamp', 'NS1' => SERVICE_NAMESPACE)),
110
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ServiceContext/ServiceVersionNo', 'NS1' => SERVICE_NAMESPACE))
111
+ )
112
+ error_info = Verification::ErrorInfo.new(
113
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ErrorDetails/ErrorInfo/ErrSrc', 'NS1' => SERVICE_NAMESPACE)),
114
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ErrorDetails/ErrorInfo/HostErrCode', 'NS1' => SERVICE_NAMESPACE)),
115
+ content_at(reply.at_xpath('//NS1:getDemoAuthDataRes/NS1:ReqHdr/ErrorDetails/ErrorInfo/HostErrDesc', 'NS1' => SERVICE_NAMESPACE))
116
+ )
117
+ error_details = Verification::ConsumerContext.new(
118
+ error_info
119
+ )
120
+ header = Verification::ResHdr.new(
121
+ consumer_context,
122
+ service_context,
123
+ service_response,
124
+ error_details
125
+ )
126
+ res = Verification::GetDemoAuthDataRes.new(
127
+ header
128
+ )
129
+ return Verification::Result.new(
130
+ res
131
+ )
132
+ end
133
+ end
134
+ end
135
+
136
+ def url
137
+ return '/eKYC'
138
+ end
139
+
140
+ end
141
+ end
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class DomesticRemittanceByPartnerService < SoapClient
2
+ class DomesticRemittanceByPartnerService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class FundsTransferByCustomerService < SoapClient
2
+ class FundsTransferByCustomerService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class FundsTransferByCustomerService2 < SoapClient
2
+ class FundsTransferByCustomerService2 < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class InstantCreditService < SoapClient
2
+ class InstantCreditService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class InstantMoneyTransferService < SoapClient
2
+ class InstantMoneyTransferService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -144,7 +144,7 @@ module ApiBanking
144
144
  end
145
145
  end
146
146
 
147
- parse_reply(:deleteBeneficiary, reply)
147
+ parse_reply(:cancelTransfer, reply)
148
148
  end
149
149
 
150
150
  private
@@ -193,14 +193,14 @@ module ApiBanking
193
193
  beneArray
194
194
  )
195
195
  when :cancelTransfer
196
- cancelResult = CancelTransfer::CancelResult.new(
197
- content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:imtReferenceNo', 'ns' => SERVICE_NAMESPACE)),
198
- content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE))
199
- )
200
- return CancelTransfer::Result.new(
201
- content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
202
- cancelResult
203
- )
196
+ cancelResult = CancelTransfer::CancelResult.new(
197
+ content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:imtReferenceNo', 'ns' => SERVICE_NAMESPACE)),
198
+ content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:cancelResult/ns:bankReferenceNo', 'ns' => SERVICE_NAMESPACE))
199
+ )
200
+ return CancelTransfer::Result.new(
201
+ content_at(reply.at_xpath('//ns:cancelTransferResponse/ns:uniqueResponseNo', 'ns' => SERVICE_NAMESPACE)),
202
+ cancelResult
203
+ )
204
204
  end
205
205
  end
206
206
  end
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class InwardRemittanceByPartnerService < SoapClient
2
+ class InwardRemittanceByPartnerService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class NotificationService < SoapClient
2
+ class NotificationService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class PrepaidCardManagementService < SoapClient
2
+ class PrepaidCardManagementService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class PrepaidCardService < SoapClient
2
+ class PrepaidCardService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -7,16 +7,14 @@ module ApiBanking
7
7
  @@last_response
8
8
  end
9
9
 
10
- def self.do_remote_call(&block)
10
+ def self.do_remote_call(soapAction = nil, &block)
11
11
  data = construct_envelope(&block)
12
12
  options = {}
13
13
  options[:method] = :post
14
14
  options[:body] = data.to_xml
15
-
16
- options[:headers] = {'Content-Type' => "application/xml; charset=utf-8"}
17
-
18
- # SOAPAction header is not allowed for Soap12
19
- # options[:headers][:SOAPAction] = data.doc.at_xpath('/soapenv12:Envelope/soapenv12:Body/*', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope').name
15
+
16
+ # add soap11/12 specific headers
17
+ add_soap_headers(options, soapAction)
20
18
 
21
19
  options[:proxy] = self.configuration.proxy
22
20
  options[:timeout] = self.configuration.timeout
@@ -35,6 +33,7 @@ module ApiBanking
35
33
 
36
34
 
37
35
  private
36
+
38
37
  def self.set_options_for_environment(options)
39
38
  if self.configuration.environment.kind_of?ApiBanking::Environment::YBL::PRD
40
39
  options[:userpwd] = "#{self.configuration.environment.user}:#{self.configuration.environment.password}"
@@ -54,17 +53,7 @@ module ApiBanking
54
53
  end
55
54
  end
56
55
 
57
- def self.construct_envelope(&block)
58
- Nokogiri::XML::Builder.new do |xml|
59
- xml.Envelope("xmlns:soap12" => "http://www.w3.org/2003/05/soap-envelope",
60
- "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
61
- "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema") do
62
- xml.parent.namespace = xml.parent.namespace_definitions.first
63
- xml['soap12'].Header
64
- xml['soap12'].Body(&block)
65
- end
66
- end
67
- end
56
+
68
57
 
69
58
  def self.parse_response(response)
70
59
  if response.success?
@@ -76,20 +65,18 @@ module ApiBanking
76
65
  elsif response.code == 0
77
66
  return Fault.new(response.code, "", response.return_message)
78
67
  else
79
- # http status indicating error
68
+ # http status indicating error, is either a datapower failure or a soap fault
80
69
  if response.headers['Content-Type'] =~ /xml/ then
81
70
  reply = Nokogiri::XML(response.response_body)
82
71
 
83
- # service failures return a fault
84
- unless reply.at_xpath('//soapenv12:Fault', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope').nil? then
85
- return parse_fault(reply)
86
- end
87
-
88
72
  # datapower failures return an xml
89
73
  unless reply.at_xpath('//errorResponse').nil? then
90
74
  return parse_dp_reply(reply)
91
75
  end
92
76
 
77
+ # has to be a soapfault
78
+ return parse_fault(reply)
79
+
93
80
  end
94
81
  return Fault.new("#{response.code.to_s}", "", response.status_message)
95
82
  end
@@ -101,26 +88,77 @@ module ApiBanking
101
88
  return Fault.new(code, "", reasonText)
102
89
  end
103
90
 
91
+ def self.content_at(node)
92
+ node.content unless node.nil?
93
+ end
94
+
95
+ end
96
+
97
+ class Soap12Client < SoapClient
98
+ private
99
+
100
+ def self.add_soap_headers(options, soapAction)
101
+ options[:headers] = {'Content-Type' => "application/xml; charset=utf-8"}
102
+
103
+ # SOAPAction header is not allowed for Soap12
104
+ # options[:headers][:SOAPAction] = data.doc.at_xpath('/soapenv12:Envelope/soapenv12:Body/*', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope').name
105
+
106
+ end
107
+
108
+ def self.construct_envelope(&block)
109
+ Nokogiri::XML::Builder.new do |xml|
110
+ xml.Envelope("xmlns:soap12" => "http://www.w3.org/2003/05/soap-envelope",
111
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
112
+ "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema") do
113
+ xml.parent.namespace = xml.parent.namespace_definitions.first
114
+ xml['soap12'].Header
115
+ xml['soap12'].Body(&block)
116
+ end
117
+ end
118
+ end
119
+
104
120
  def self.parse_fault(reply)
105
121
  code = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Code/soapenv12:Subcode/soapenv12:Value', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
106
122
  subcode = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Code/soapenv12:Subcode/soapenv12:Subcode/soapenv12:Value', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
107
123
  reasonText = content_at(reply.at_xpath('//soapenv12:Fault/soapenv12:Reason/soapenv12:Text', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
108
- # detail = parse_detail(reply.at_xpath('//soapenv12:Fault/soapenv12:Detail', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope'))
109
124
 
110
125
  code ||= 'ns:E500' # in certain cases, a fault code isn't set by the server
111
126
  return Fault.new(code, subcode, reasonText)
112
127
  end
128
+
113
129
 
114
- def self.parse_detail(node)
115
- return content_at(node.at_xpath('Text')) #
130
+ end
131
+
132
+ class Soap11Client < SoapClient
133
+ private
134
+
135
+ def self.add_soap_headers(options, soapAction)
136
+ options[:headers] = {'Content-Type' => "text/xml;charset=UTF-8"}
137
+
138
+ # SOAPAction header is mandatory for Soap11
139
+ options[:headers][:SOAPAction] = soapAction
116
140
  end
141
+
142
+ def self.construct_envelope(&block)
143
+ Nokogiri::XML::Builder.new do |xml|
144
+ xml.Envelope("xmlns:soap11" => "http://schemas.xmlsoap.org/soap/envelope/",
145
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
146
+ "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema") do
147
+ xml.parent.namespace = xml.parent.namespace_definitions.first
148
+ xml['soap11'].Header
149
+ xml['soap11'].Body(&block)
150
+ end
151
+ end
152
+ end
117
153
 
118
- def self.content_at(node)
119
- node.content unless node.nil?
154
+ def self.parse_fault(reply)
155
+ code = nil # soap11 fault codes are meaningless
156
+ reasonText = content_at(reply.at_xpath('//soapenv11:Fault/faultstring', 'soapenv11' => 'http://schemas.xmlsoap.org/soap/envelope/'))
157
+
158
+ code ||= 'ns:E500' # in certain cases, a fault code isn't set by the server
159
+ return Fault.new(code, nil, reasonText)
120
160
  end
121
161
 
122
- def self.part_name(message)
123
- message.at_xpath('/soapenv12:Envelope/soapenv12:Body/*', 'soapenv12' => 'http://www.w3.org/2003/05/soap-envelope').name
124
- end
162
+
125
163
  end
126
164
  end
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class SocialBankingService < SoapClient
2
+ class SocialBankingService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,5 +1,5 @@
1
1
  module ApiBanking
2
- class VirtualCardManagementService < SoapClient
2
+ class VirtualCardManagementService < Soap12Client
3
3
 
4
4
  SERVICE_NAMESPACE = 'http://www.quantiguous.com/services'
5
5
  SERVICE_VERSION = 1
@@ -1,3 +1,3 @@
1
1
  module ApiBanking
2
- VERSION = "0.1.13"
2
+ VERSION = "0.1.14"
3
3
  end
data/lib/api_banking.rb CHANGED
@@ -19,6 +19,7 @@ require_relative "api_banking/soap/prepaidCardService"
19
19
  require_relative "api_banking/soap/socialBankingService"
20
20
  require_relative "api_banking/soap/virtualCardManagementService"
21
21
  require_relative "api_banking/soap/inwardRemittanceByPartnerService"
22
+ require_relative "api_banking/soap/aadhaarVerificationService"
22
23
 
23
24
  require_relative "api_banking/json/json_client"
24
25
  require_relative "api_banking/json/singlePayment"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_banking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - akil
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
11
+ date: 2016-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -134,6 +134,7 @@ files:
134
134
  - lib/api_banking/environment/ybl/prd.pem
135
135
  - lib/api_banking/json/json_client.rb
136
136
  - lib/api_banking/json/singlePayment.rb
137
+ - lib/api_banking/soap/aadhaarVerificationService.rb
137
138
  - lib/api_banking/soap/domesticRemittanceByPartnerService.rb
138
139
  - lib/api_banking/soap/fault.rb
139
140
  - lib/api_banking/soap/fundsTransferByCustomerService.rb
@@ -168,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
169
  version: '0'
169
170
  requirements: []
170
171
  rubyforge_project:
171
- rubygems_version: 2.4.7
172
+ rubygems_version: 2.4.6
172
173
  signing_key:
173
174
  specification_version: 4
174
175
  summary: Ruby SDK to Connect to Banks