agms 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 +15 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/README.md +51 -0
- data/Rakefile +40 -0
- data/agms.gemspec +29 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/example/hpp.rb +18 -0
- data/example/invoicing.rb +23 -0
- data/example/recurring.rb +23 -0
- data/example/report.rb +16 -0
- data/example/safe.rb +17 -0
- data/example/transaction.rb +17 -0
- data/init.yml +9 -0
- data/lib/agms.rb +59 -0
- data/lib/agms/agms.rb +109 -0
- data/lib/agms/configuration.rb +71 -0
- data/lib/agms/connect.rb +176 -0
- data/lib/agms/error/agms_error.rb +9 -0
- data/lib/agms/error/authentication_error.rb +7 -0
- data/lib/agms/error/authorization_error.rb +7 -0
- data/lib/agms/error/client_error_error.rb +7 -0
- data/lib/agms/error/configuation_error.rb +7 -0
- data/lib/agms/error/down_for_maintenance_error.rb +7 -0
- data/lib/agms/error/forged_query_String_error.rb +7 -0
- data/lib/agms/error/invalid_parameter_error.rb +7 -0
- data/lib/agms/error/invalid_request_error.rb +7 -0
- data/lib/agms/error/invalid_signature_error.rb +7 -0
- data/lib/agms/error/not_found_error.rb +7 -0
- data/lib/agms/error/request_validation_error.rb +7 -0
- data/lib/agms/error/response_error.rb +7 -0
- data/lib/agms/error/server_error_error.rb +7 -0
- data/lib/agms/error/ssl_certificate_error.rb +7 -0
- data/lib/agms/error/unexpected_error.rb +7 -0
- data/lib/agms/error/upgrade_required_error.rb +7 -0
- data/lib/agms/hpp.rb +65 -0
- data/lib/agms/invoicing.rb +63 -0
- data/lib/agms/recurring.rb +76 -0
- data/lib/agms/report.rb +53 -0
- data/lib/agms/request/hpp_request.rb +181 -0
- data/lib/agms/request/invoicing_request.rb +8 -0
- data/lib/agms/request/recurring_request.rb +115 -0
- data/lib/agms/request/report_request.rb +106 -0
- data/lib/agms/request/request.rb +455 -0
- data/lib/agms/request/safe_request.rb +211 -0
- data/lib/agms/request/transaction_request.rb +217 -0
- data/lib/agms/response/hpp_response.rb +39 -0
- data/lib/agms/response/invoicing_response.rb +10 -0
- data/lib/agms/response/recurring_response.rb +28 -0
- data/lib/agms/response/report_response.rb +141 -0
- data/lib/agms/response/response.rb +48 -0
- data/lib/agms/response/safe_response.rb +51 -0
- data/lib/agms/response/transaction_response.rb +50 -0
- data/lib/agms/safe.rb +66 -0
- data/lib/agms/transaction.rb +37 -0
- data/lib/agms/version.rb +3 -0
- metadata +156 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
module Agms
|
2
|
+
class RecurringResponse < Response
|
3
|
+
# A class representing AGMS Recurring Response objects.
|
4
|
+
|
5
|
+
def initialize(response, op)
|
6
|
+
@response = nil
|
7
|
+
@op = op
|
8
|
+
|
9
|
+
response = response['soap:Envelope']['soap:Body'][op + 'Response'][op + 'Result']
|
10
|
+
|
11
|
+
if @op == 'RecurringAdd' or @op == 'RecurringDelete' or @op == 'RecurringUpdate'
|
12
|
+
@mapping = {
|
13
|
+
:RESULT => 'result',
|
14
|
+
:MSG => 'message',
|
15
|
+
:RecurringID => 'recurring_id',
|
16
|
+
}
|
17
|
+
elsif @op == 'RetrieveRecurringID'
|
18
|
+
@mapping = {
|
19
|
+
:RecurringID => 'recurring_id'
|
20
|
+
}
|
21
|
+
else
|
22
|
+
raise InvalidRequestError, 'Invalid op in Response.'
|
23
|
+
end
|
24
|
+
@response = response
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
module Agms
|
2
|
+
class ReportResponse < Response
|
3
|
+
# A class representing AGMS Report Response objects.
|
4
|
+
|
5
|
+
def initialize(response, op)
|
6
|
+
super(response, op)
|
7
|
+
@response = nil
|
8
|
+
@op = op
|
9
|
+
arr = _parseReportResponse(response)
|
10
|
+
|
11
|
+
if @op == 'TransactionAPI'
|
12
|
+
@mapping = {
|
13
|
+
:id => 'id',
|
14
|
+
:transactionid => 'transaction_id',
|
15
|
+
:transactiontype => 'transaction_type',
|
16
|
+
:paymenttype => 'payment_type',
|
17
|
+
:amount => 'amount',
|
18
|
+
:orderdescription => 'order_description',
|
19
|
+
:orderid => 'order_id',
|
20
|
+
:ponumber => 'po_number',
|
21
|
+
:tax => 'tax_amount',
|
22
|
+
:shipping => 'shipping_amount',
|
23
|
+
:tipamount => 'tip_amount',
|
24
|
+
:ccnumber => 'cc_number',
|
25
|
+
:ccexpdate => 'cc_exp_date',
|
26
|
+
:checkname => 'ach_name',
|
27
|
+
:checkaba => 'ach_routing_number',
|
28
|
+
:checkaccount => 'ach_account_number',
|
29
|
+
:accountholdertype => 'ach_business_or_personal',
|
30
|
+
:accounttype => 'ach_checking_or_savings',
|
31
|
+
:seccode => 'ach_sec_code',
|
32
|
+
:safeaction => 'safe_action',
|
33
|
+
:responsesafeid => 'safe_id',
|
34
|
+
:clerkid => 'clerk_id',
|
35
|
+
:firstname => 'first_name',
|
36
|
+
:lastname => 'last_name',
|
37
|
+
:company => 'company_name',
|
38
|
+
:address1 => 'address',
|
39
|
+
:address2 => 'address_2',
|
40
|
+
:city => 'city',
|
41
|
+
:state => 'state',
|
42
|
+
:zip => 'zip',
|
43
|
+
:country => 'country',
|
44
|
+
:phone => 'phone',
|
45
|
+
:fax => 'fax',
|
46
|
+
:email => 'email',
|
47
|
+
:website => 'website',
|
48
|
+
:shippingfirstname => 'shipping_first_name',
|
49
|
+
:shippinglastname => 'shipping_last_name',
|
50
|
+
:shippingcompany => 'shipping_company_name',
|
51
|
+
:shippingaddress1 => 'shipping_address',
|
52
|
+
:shippingaddress2 => 'shipping_address_2',
|
53
|
+
:shippingcity => 'shipping_city',
|
54
|
+
:shippingstate => 'shipping_state',
|
55
|
+
:shippingzip => 'shipping_zip',
|
56
|
+
:shippingcountry => 'shipping_country',
|
57
|
+
:shippingemail => 'shipping_email',
|
58
|
+
:shippingphone => 'shipping_phone',
|
59
|
+
:shippingfax => 'shipping_fax',
|
60
|
+
:shippingcarrier => 'shipping_carrier',
|
61
|
+
:trackingnumber => 'shipping_tracking',
|
62
|
+
:ipaddress => 'ip_address',
|
63
|
+
:customfield1 => 'custom_field_1',
|
64
|
+
:customfield2 => 'custom_field_2',
|
65
|
+
:customfield3 => 'custom_field_3',
|
66
|
+
:customfield4 => 'custom_field_4',
|
67
|
+
:customfield5 => 'custom_field_5',
|
68
|
+
:customfield6 => 'custom_field_6',
|
69
|
+
:customfield7 => 'custom_field_7',
|
70
|
+
:customfield8 => 'custom_field_8',
|
71
|
+
:customfield9 => 'custom_field_9',
|
72
|
+
:customfield10 => 'custom_field_10',
|
73
|
+
:customfield11 => 'custom_field_11',
|
74
|
+
:customfield12 => 'custom_field_12',
|
75
|
+
:customfield13 => 'custom_field_13',
|
76
|
+
:customfield14 => 'custom_field_14',
|
77
|
+
:customfield15 => 'custom_field_15',
|
78
|
+
:customfield16 => 'custom_field_16',
|
79
|
+
:customfield17 => 'custom_field_17',
|
80
|
+
:customfield18 => 'custom_field_18',
|
81
|
+
:customfield19 => 'custom_field_19',
|
82
|
+
:customfield20 => 'custom_field_20',
|
83
|
+
:receipttype => 'receipt_type',
|
84
|
+
:responsestatuscode => 'response_code',
|
85
|
+
:responsestatusmsg => 'response_message',
|
86
|
+
:responsetransid => 'response_transaction_id',
|
87
|
+
:responseauthcode => 'authorization_code',
|
88
|
+
:transactiondate => 'transaction_date',
|
89
|
+
:createdate => 'date_created',
|
90
|
+
:moddate => 'date_last_modified',
|
91
|
+
:createuser => 'created_by',
|
92
|
+
:moduser => 'modified_by',
|
93
|
+
:useragent => 'user_agent'
|
94
|
+
}
|
95
|
+
if arr
|
96
|
+
@response = arr
|
97
|
+
else
|
98
|
+
@response = Array.new
|
99
|
+
end
|
100
|
+
elsif @op == 'QuerySAFE'
|
101
|
+
if arr
|
102
|
+
@response = arr
|
103
|
+
else
|
104
|
+
@response = Array.new
|
105
|
+
end
|
106
|
+
else
|
107
|
+
raise InvalidRequestError, 'Invalid op in Response.'
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def toArray
|
112
|
+
# Override toArray method to handle array response
|
113
|
+
response = Array.new
|
114
|
+
if @response
|
115
|
+
@response.each do |result|
|
116
|
+
response << mapResponse(result)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
return response
|
120
|
+
end
|
121
|
+
|
122
|
+
def getSafeId
|
123
|
+
response_array = toArray()
|
124
|
+
return response_array['safe_id']
|
125
|
+
end
|
126
|
+
|
127
|
+
# Parse transaction report response received from gateway
|
128
|
+
def _parseReportResponse(xml)
|
129
|
+
# Parse the response body
|
130
|
+
doc = Nokogiri::XML(xml)
|
131
|
+
# Remove the namespaces
|
132
|
+
doc.remove_namespaces!
|
133
|
+
response = {}
|
134
|
+
# Extract the response data from the ProcessTransactionResult node
|
135
|
+
doc.xpath("//transactions//transaction//*").each do |node|
|
136
|
+
response[node.name] = node.children.text
|
137
|
+
end
|
138
|
+
return response
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Agms
|
2
|
+
class Response
|
3
|
+
# A class representing AGMS Response objects.
|
4
|
+
|
5
|
+
def initialize(response, op)
|
6
|
+
@response = response
|
7
|
+
@op = op
|
8
|
+
@mapping = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def toArray
|
12
|
+
return mapResponse(@response)
|
13
|
+
end
|
14
|
+
|
15
|
+
def mapResponse(arr)
|
16
|
+
if @mapping
|
17
|
+
response = doMap(arr)
|
18
|
+
return response
|
19
|
+
else
|
20
|
+
raise UnexpectedError, 'Response mapping not defined for this API.'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def doMap(arr)
|
25
|
+
response = Hash.new
|
26
|
+
mapping = @mapping
|
27
|
+
if mapping
|
28
|
+
# We only map the end of the array containing data
|
29
|
+
# If this element is an array, then we map its individual sub-arrays
|
30
|
+
# Otherwise, we map
|
31
|
+
arr.each do |key, value|
|
32
|
+
|
33
|
+
if value.class == Hash
|
34
|
+
response << doMap(value)
|
35
|
+
else
|
36
|
+
|
37
|
+
if not mapping.has_key?(key)
|
38
|
+
raise UnexpectedError, "Unmapped field #{key} in response."
|
39
|
+
else
|
40
|
+
response[mapping[key]] = value
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
return response
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Agms
|
2
|
+
class SAFEResponse < Response
|
3
|
+
# A class representing AGMS SAFE Response objects.
|
4
|
+
|
5
|
+
def initialize(response, op)
|
6
|
+
super(response, op)
|
7
|
+
@mapping = {
|
8
|
+
'STATUS_CODE' => 'response_code',
|
9
|
+
'STATUS_MSG' => 'response_message',
|
10
|
+
'TRANS_ID' => 'transaction_id',
|
11
|
+
'AUTH_CODE' => 'authorization_code',
|
12
|
+
'AVS_CODE' => 'avs_result',
|
13
|
+
'AVS_MSG' => 'avs_message',
|
14
|
+
'CVV2_CODE' => 'cvv_result',
|
15
|
+
'CVV2_MSG' => 'cvv_message',
|
16
|
+
'ORDERID' => 'order_id',
|
17
|
+
'SAFE_ID' => 'safe_id',
|
18
|
+
'FULLRESPONSE' => 'full_response',
|
19
|
+
'POSTSTRING' => 'post_string',
|
20
|
+
'BALANCE' => 'gift_balance',
|
21
|
+
'GIFTRESPONSE' => 'gift_response',
|
22
|
+
'MERCHANT_ID' => 'merchant_id',
|
23
|
+
'CUSTOMER_MESSAGE' => 'customer_message',
|
24
|
+
'RRN' => 'rrn'
|
25
|
+
}
|
26
|
+
|
27
|
+
@response = response
|
28
|
+
@op = op
|
29
|
+
|
30
|
+
if not isSuccessful()
|
31
|
+
response_array = toArray()
|
32
|
+
raise ResponseError.new("Transaction failed with error code #{response_array['response_code']} and message #{response_array['response_message']}", response_array)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def isSuccessful
|
37
|
+
response_array = toArray()
|
38
|
+
code = response_array['response_code']
|
39
|
+
if code != '1' and code != '2'
|
40
|
+
return false
|
41
|
+
else
|
42
|
+
return true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def getSafeId
|
47
|
+
response_array = toArray()
|
48
|
+
return response_array['safe_id']
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Agms
|
2
|
+
class TransactionResponse < Response
|
3
|
+
# A class representing AGMS Transaction Response objects.
|
4
|
+
|
5
|
+
def initialize(response, op)
|
6
|
+
super(response, op)
|
7
|
+
@mapping = {
|
8
|
+
'STATUS_CODE' => 'response_code',
|
9
|
+
'STATUS_MSG' => 'response_message',
|
10
|
+
'TRANS_ID' => 'transaction_id',
|
11
|
+
'AUTH_CODE' => 'authorization_code',
|
12
|
+
'AVS_CODE' => 'avs_result',
|
13
|
+
'AVS_MSG' => 'avs_message',
|
14
|
+
'CVV2_CODE' => 'cvv_result',
|
15
|
+
'CVV2_MSG' => 'cvv_message',
|
16
|
+
'ORDERID' => 'order_id',
|
17
|
+
'SAFE_ID' => 'safe_id',
|
18
|
+
'FULLRESPONSE' => 'full_response',
|
19
|
+
'POSTSTRING' => 'post_string',
|
20
|
+
'BALANCE' => 'gift_balance',
|
21
|
+
'GIFTRESPONSE' => 'gift_response',
|
22
|
+
'MERCHANT_ID' => 'merchant_id',
|
23
|
+
'CUSTOMER_MESSAGE' => 'customer_message',
|
24
|
+
'RRN' => 'rrn'
|
25
|
+
}
|
26
|
+
|
27
|
+
@response = response
|
28
|
+
@op = op
|
29
|
+
|
30
|
+
if not isSuccessful()
|
31
|
+
response_array = toArray()
|
32
|
+
raise ResponseError.new("Transaction failed with error code #{response_array['response_code']} and message #{response_array['response_message']}", response_array)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def isSuccessful
|
37
|
+
response_array = toArray()
|
38
|
+
if response_array['response_code'] != '1' and response_array['response_code'] != '2'
|
39
|
+
return false
|
40
|
+
else
|
41
|
+
return true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def getAuthorization
|
46
|
+
response_array = toArray()
|
47
|
+
return response_array['transaction_id']
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/agms/safe.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
module Agms
|
2
|
+
class SAFE < Agms
|
3
|
+
# A class representing AGMS SAFE objects.
|
4
|
+
|
5
|
+
alias AgmsResetParameters resetParameters
|
6
|
+
alias AgmsSetParameter setParameter
|
7
|
+
alias AgmsDoConnect doConnect
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
super()
|
11
|
+
@api_url = 'https://gateway.agms.com/roxapi/AGMS_SAFE_API.asmx'
|
12
|
+
@requestObject = 'SAFERequest'
|
13
|
+
@responseObject = 'SAFEResponse'
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [Object]
|
17
|
+
def add(params)
|
18
|
+
@op = 'AddToSAFE'
|
19
|
+
AgmsResetParameters()
|
20
|
+
AgmsSetParameter(:SAFE_Action, {:value => 'add_safe'})
|
21
|
+
params.each do |param, config|
|
22
|
+
AgmsSetParameter(param, config)
|
23
|
+
end
|
24
|
+
self.execute()
|
25
|
+
return @response.toArray()
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Object]
|
29
|
+
def update(params)
|
30
|
+
@op = 'UpdateSAFE'
|
31
|
+
AgmsResetParameters()
|
32
|
+
AgmsSetParameter(:SAFE_Action, {:value => 'update_safe'})
|
33
|
+
params.each do |param, config|
|
34
|
+
AgmsSetParameter(param, config)
|
35
|
+
end
|
36
|
+
self.execute()
|
37
|
+
return @response.toArray()
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [Object]
|
41
|
+
def delete(params)
|
42
|
+
@op = 'DeleteFromSAFE'
|
43
|
+
AgmsResetParameters()
|
44
|
+
AgmsSetParameter(:SAFE_Action, {:value => 'delete_safe'})
|
45
|
+
params.each do |param, config|
|
46
|
+
AgmsSetParameter(param, config)
|
47
|
+
end
|
48
|
+
self.execute()
|
49
|
+
return @response.toArray()
|
50
|
+
end
|
51
|
+
|
52
|
+
protected
|
53
|
+
def execute
|
54
|
+
if @op == 'AddToSAFE'
|
55
|
+
AgmsDoConnect('AddToSAFE', @responseObject)
|
56
|
+
elsif @op == 'UpdateSAFE'
|
57
|
+
AgmsDoConnect('UpdateSAFE', @responseObject)
|
58
|
+
elsif @op == 'DeleteFromSAFE'
|
59
|
+
AgmsDoConnect('DeleteFromSAFE', @responseObject)
|
60
|
+
else
|
61
|
+
raise InvalidRequestError, "Invalid request to Transaction API #{@op}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Agms
|
2
|
+
class Transaction < Agms
|
3
|
+
# A class representing AGMS Transaction objects.
|
4
|
+
|
5
|
+
alias AgmsResetParameters resetParameters
|
6
|
+
alias AgmsSetParameter setParameter
|
7
|
+
alias AgmsDoConnect doConnect
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
super()
|
11
|
+
@api_url = 'https://gateway.agms.com/roxapi/agms.asmx'
|
12
|
+
@requestObject = 'TransactionRequest'
|
13
|
+
@responseObject = 'TransactionResponse'
|
14
|
+
end
|
15
|
+
|
16
|
+
# @return [Object]
|
17
|
+
def process(params)
|
18
|
+
@op = 'ProcessTransaction'
|
19
|
+
AgmsResetParameters()
|
20
|
+
params.each do |param, config|
|
21
|
+
AgmsSetParameter(param, config)
|
22
|
+
end
|
23
|
+
self.execute()
|
24
|
+
return @response.toArray()
|
25
|
+
end
|
26
|
+
|
27
|
+
protected
|
28
|
+
def execute
|
29
|
+
if @op == 'ProcessTransaction'
|
30
|
+
AgmsDoConnect('ProcessTransaction', @responseObject)
|
31
|
+
else
|
32
|
+
raise InvalidRequestError, "Invalid request to Transaction API #{@op}"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
data/lib/agms/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: agms
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maanas Royy
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-04-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Ruby Library for integrating AGMS Gateway
|
70
|
+
email:
|
71
|
+
- maanas@agms.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .travis.yml
|
77
|
+
- Gemfile
|
78
|
+
- README.md
|
79
|
+
- Rakefile
|
80
|
+
- agms.gemspec
|
81
|
+
- bin/console
|
82
|
+
- bin/setup
|
83
|
+
- example/hpp.rb
|
84
|
+
- example/invoicing.rb
|
85
|
+
- example/recurring.rb
|
86
|
+
- example/report.rb
|
87
|
+
- example/safe.rb
|
88
|
+
- example/transaction.rb
|
89
|
+
- init.yml
|
90
|
+
- lib/agms.rb
|
91
|
+
- lib/agms/agms.rb
|
92
|
+
- lib/agms/configuration.rb
|
93
|
+
- lib/agms/connect.rb
|
94
|
+
- lib/agms/error/agms_error.rb
|
95
|
+
- lib/agms/error/authentication_error.rb
|
96
|
+
- lib/agms/error/authorization_error.rb
|
97
|
+
- lib/agms/error/client_error_error.rb
|
98
|
+
- lib/agms/error/configuation_error.rb
|
99
|
+
- lib/agms/error/down_for_maintenance_error.rb
|
100
|
+
- lib/agms/error/forged_query_String_error.rb
|
101
|
+
- lib/agms/error/invalid_parameter_error.rb
|
102
|
+
- lib/agms/error/invalid_request_error.rb
|
103
|
+
- lib/agms/error/invalid_signature_error.rb
|
104
|
+
- lib/agms/error/not_found_error.rb
|
105
|
+
- lib/agms/error/request_validation_error.rb
|
106
|
+
- lib/agms/error/response_error.rb
|
107
|
+
- lib/agms/error/server_error_error.rb
|
108
|
+
- lib/agms/error/ssl_certificate_error.rb
|
109
|
+
- lib/agms/error/unexpected_error.rb
|
110
|
+
- lib/agms/error/upgrade_required_error.rb
|
111
|
+
- lib/agms/hpp.rb
|
112
|
+
- lib/agms/invoicing.rb
|
113
|
+
- lib/agms/recurring.rb
|
114
|
+
- lib/agms/report.rb
|
115
|
+
- lib/agms/request/hpp_request.rb
|
116
|
+
- lib/agms/request/invoicing_request.rb
|
117
|
+
- lib/agms/request/recurring_request.rb
|
118
|
+
- lib/agms/request/report_request.rb
|
119
|
+
- lib/agms/request/request.rb
|
120
|
+
- lib/agms/request/safe_request.rb
|
121
|
+
- lib/agms/request/transaction_request.rb
|
122
|
+
- lib/agms/response/hpp_response.rb
|
123
|
+
- lib/agms/response/invoicing_response.rb
|
124
|
+
- lib/agms/response/recurring_response.rb
|
125
|
+
- lib/agms/response/report_response.rb
|
126
|
+
- lib/agms/response/response.rb
|
127
|
+
- lib/agms/response/safe_response.rb
|
128
|
+
- lib/agms/response/transaction_response.rb
|
129
|
+
- lib/agms/safe.rb
|
130
|
+
- lib/agms/transaction.rb
|
131
|
+
- lib/agms/version.rb
|
132
|
+
homepage: http://www.onlinepaymentprocessing.com
|
133
|
+
licenses: []
|
134
|
+
metadata:
|
135
|
+
allowed_push_host: https://rubygems.org
|
136
|
+
post_install_message:
|
137
|
+
rdoc_options: []
|
138
|
+
require_paths:
|
139
|
+
- lib
|
140
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
requirements: []
|
151
|
+
rubyforge_project:
|
152
|
+
rubygems_version: 2.4.5
|
153
|
+
signing_key:
|
154
|
+
specification_version: 4
|
155
|
+
summary: AGMS Ruby Client Library
|
156
|
+
test_files: []
|