prismpay 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/prismpay.rb +8 -8
- data/lib/prismpay_reports.rb +311 -0
- data/spec/file~ +12 -0
- data/spec/junk~ +50 -0
- data/spec/prismpay_reports_spec.rb +8 -0
- data/spec/prismpay_spec.rb +1 -1
- metadata +10 -11
- data/spec/prism_credit_response_spec.rb~ +0 -4
- data/spec/prismpay_response_spec.rb~ +0 -2
- data/spec/prismpay_spec.rb~ +0 -2
- data/spec/webpay_spec.rb~ +0 -10
data/lib/prismpay.rb
CHANGED
@@ -166,15 +166,15 @@ module PrismPay
|
|
166
166
|
############################################################
|
167
167
|
# ext_ach_void doesn't work in generic testing accounts
|
168
168
|
############################################################
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
169
|
+
def ext_ach_void(identification, pp_txn_id, options = {})
|
170
|
+
response = @client.request :process_ext_ach_void do
|
171
|
+
http.auth.ssl.verify_mode = :none
|
172
|
+
soap.body &build_ext_ach_refund_void(nil, identification,
|
173
|
+
pp_txn_id, options)
|
174
|
+
end
|
175
175
|
|
176
|
-
|
177
|
-
|
176
|
+
PrismCreditResponse.new(response)
|
177
|
+
end
|
178
178
|
|
179
179
|
def ext_ach_refund(amount, identification, pp_txn_id, options = {})
|
180
180
|
response = @client.request :process_ext_ach_credit do
|
@@ -0,0 +1,311 @@
|
|
1
|
+
require 'savon'
|
2
|
+
require 'activemerchant'
|
3
|
+
require 'prism_credit_response'
|
4
|
+
require 'webpay'
|
5
|
+
require 'builder'
|
6
|
+
require 'openssl'
|
7
|
+
|
8
|
+
module PrismPay
|
9
|
+
|
10
|
+
class PrismPayReports
|
11
|
+
# this class will manage the connection to the gateway and handle
|
12
|
+
# transactions
|
13
|
+
|
14
|
+
WSDL = File.expand_path("../ReportingService.xml", __FILE__)
|
15
|
+
# WSDL = "https://trans.myprismpay.com/report/services/ReportingServices?wsdl"
|
16
|
+
|
17
|
+
|
18
|
+
TRANS_TYPES = ["ccpreauths", "ccpostauthsales", "ccvoids",
|
19
|
+
"ccrefunds", "ccchargebacks", "achpreauths",
|
20
|
+
"achsettlements", "achreturns", "achnocs",
|
21
|
+
"achvoids",
|
22
|
+
"achcreditsauth","achcreditsmerchantdebit",
|
23
|
+
"achcreditsdebitreturn",
|
24
|
+
"achcreditsmerchantsettle",
|
25
|
+
"achcreditspaymentsettle", "achcreditsreturn",
|
26
|
+
"debitsales", "debitrefunds", "achlatereturns",
|
27
|
+
"extachpreauths", "extachsettlements",
|
28
|
+
"extachreturns", "extachnocs", "extachvoids",
|
29
|
+
"extachcreditsauth", "extachcreditssettle",
|
30
|
+
"extachcreditsreturn", "extachck", "extachck",
|
31
|
+
"extachck", "verfication", "ccincremental",
|
32
|
+
"ccreversal"]
|
33
|
+
|
34
|
+
|
35
|
+
CARD_TYPES = ["visa", "mastercard", "amex", "discovernetwork",
|
36
|
+
"jcb", "diners", "debit", "flyingj", "cfna",
|
37
|
+
"gemoney", "fleetone", "fuellnk", "fuelman",
|
38
|
+
"mastercardfleet", "visafleet", "voyager",
|
39
|
+
"wrightexpress"]
|
40
|
+
|
41
|
+
|
42
|
+
PYDMO_KEY = '7974346A366450744C624A54715A39644A584E4469626246'
|
43
|
+
|
44
|
+
|
45
|
+
attr_accessor :acctid, :password
|
46
|
+
attr_reader :client
|
47
|
+
|
48
|
+
|
49
|
+
def initialize(options = {})
|
50
|
+
|
51
|
+
merchant_info = options
|
52
|
+
|
53
|
+
merchant_info.merge!({:login => 'TEST0'}) unless merchant_info[:login]
|
54
|
+
|
55
|
+
@login = merchant_info[:login]
|
56
|
+
|
57
|
+
# merchant_info.merge!({:start_date => start_Date}) unless merchant_info[:start_date]
|
58
|
+
# merchant_info.merge!({:end_date => end_date}) unless merchant_info[:end_date]
|
59
|
+
|
60
|
+
# TODO this is the key for PYDMO, needs to be read in from a file
|
61
|
+
@key = hexstr_to_str(PYDMO_KEY)
|
62
|
+
|
63
|
+
@client = Savon::Client.new(WSDL) # initialize savon client
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def account_key
|
68
|
+
#needs to return the account key when we have it
|
69
|
+
"2D0BB3547DCCE429"
|
70
|
+
end
|
71
|
+
|
72
|
+
|
73
|
+
def ampm_hour(hour)
|
74
|
+
hour %= 12
|
75
|
+
return 12 if hour == 0
|
76
|
+
hour
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
def get_transactions(start_date, end_date, options = {})
|
81
|
+
|
82
|
+
#variables to handle return max of sample sets
|
83
|
+
max_rows = (options[:max_rows]) ? options[:max_rows] : 4096
|
84
|
+
num_rows = (options[:num_rows]) ? options[:num_rows] : max_rows
|
85
|
+
start_row = (options[:start_row]) ? options[:start_row] : 1
|
86
|
+
|
87
|
+
# set up the flags to initially include everything
|
88
|
+
accepted = declined = childsubids = initial_flag =
|
89
|
+
recurring_flag = recurringretries = sort = 1
|
90
|
+
|
91
|
+
accepted = 0 if options[:not_accepted]
|
92
|
+
declined = 0 if options[:not_declined]
|
93
|
+
childsubids = 0 if options[:no_childsubids]
|
94
|
+
initial_flag = 0 if options[:no_initials]
|
95
|
+
recurring_flag = 0 if options[:no_recurrings]
|
96
|
+
recurringretries = 0 if options[:no_recurring_retries]
|
97
|
+
sort = 0 if options[:no_sort]
|
98
|
+
|
99
|
+
# sets the test flag acceptable values are:
|
100
|
+
# 0 = Include Live and Test Transactions.
|
101
|
+
# 1 = Include Live Transactions Only.
|
102
|
+
# 2 = Include Test Transactions Only.
|
103
|
+
if options[:test_only] == true
|
104
|
+
test_flag = 2
|
105
|
+
elsif options[:test_only] == false
|
106
|
+
test_flag = 1
|
107
|
+
else
|
108
|
+
test_flag = 0
|
109
|
+
end
|
110
|
+
|
111
|
+
# sets the recurring_only flag... it overrides all others if true
|
112
|
+
options[:recurring_only] ? recurring_only = 1 : recurring_only = 0
|
113
|
+
|
114
|
+
|
115
|
+
if options[:card_types]
|
116
|
+
card_types = options[:card_types]
|
117
|
+
else
|
118
|
+
card_types = CARD_TYPES
|
119
|
+
end
|
120
|
+
|
121
|
+
if options[:trans_types]
|
122
|
+
transaction_types = options[:trans_types]
|
123
|
+
else
|
124
|
+
transaction_types = TRANS_TYPES
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
response = @client.request "TransactionReportInfo" do
|
129
|
+
http.auth.ssl.verify_mode = :none
|
130
|
+
soap.body do |xml|
|
131
|
+
|
132
|
+
xml.accountkey account_key
|
133
|
+
xml.sessionkey create_sessionkey
|
134
|
+
xml.subid options[:subid]
|
135
|
+
|
136
|
+
xml.startdate { |ixml|
|
137
|
+
ixml.month "%.2d" % start_date.mon
|
138
|
+
ixml.day "%.2d" % start_date.day
|
139
|
+
ixml.year start_date.year
|
140
|
+
ixml.hour "%.2d" % ampm_hour(start_date.hour)
|
141
|
+
ixml.minute "%.2d" % start_date.mon
|
142
|
+
ixml.second "%.2d" % start_date.sec
|
143
|
+
ixml.ampm((start_date.hour > 11) ? "PM" : "AM" )
|
144
|
+
}
|
145
|
+
|
146
|
+
xml.enddate { |ixml|
|
147
|
+
ixml.month "%.2d" % end_date.mon
|
148
|
+
ixml.day "%.2d" % end_date.day
|
149
|
+
ixml.year end_date.year
|
150
|
+
ixml.hour "%.2d" % ampm_hour(end_date.hour)
|
151
|
+
ixml.minute "%.2d" % end_date.mon
|
152
|
+
ixml.second "%.2d" % end_date.sec
|
153
|
+
ixml.ampm((end_date.hour > 11) ? "PM" : "AM" )
|
154
|
+
}
|
155
|
+
|
156
|
+
xml.cardtypes { |ixml|
|
157
|
+
ixml.visa(card_types.include?("visa") ? 1 : 0)
|
158
|
+
ixml.mastercard(card_types.include?("mastercard") ? 1 : 0)
|
159
|
+
ixml.amex(card_types.include?("amex") ? 1 : 0)
|
160
|
+
ixml.discovernetwork(card_types.include?("discovernetwork") ? 1 : 0)
|
161
|
+
ixml.jcb(card_types.include?("jcb") ? 1 : 0)
|
162
|
+
ixml.diners(card_types.include?("diners") ? 1 : 0)
|
163
|
+
ixml.debit(card_types.include?("debit") ? 1 : 0)
|
164
|
+
ixml.flyingj(card_types.include?("flyingj") ? 1 : 0)
|
165
|
+
ixml.cfna(card_types.include?("cfna") ? 1 : 0)
|
166
|
+
ixml.gemoney(card_types.include?("gemoney") ? 1 : 0)
|
167
|
+
ixml.fleetone(card_types.include?("fleetone") ? 1 : 0)
|
168
|
+
ixml.fuellnk(card_types.include?("fuellnk") ? 1 : 0)
|
169
|
+
ixml.fuelman(card_types.include?("fuelman") ? 1 : 0)
|
170
|
+
ixml.mastercardfleet(card_types.include?("mastercardfleet") ? 1 : 0)
|
171
|
+
ixml.visafleet(card_types.include?("visafleet") ? 1 : 0)
|
172
|
+
ixml.voyager(card_types.include?("voyager") ? 1 : 0)
|
173
|
+
ixml.wrightexpress(card_types.include?("wrightexpress") ? 1 : 0)
|
174
|
+
}
|
175
|
+
|
176
|
+
xml.transactiontypes { |ixml|
|
177
|
+
ixml.ccpreauths(transaction_types.include?("ccpreauths") ? 1 : 0)
|
178
|
+
ixml.ccpostauthsales(transaction_types.include?("ccpostauthsales") ? 1 : 0)
|
179
|
+
ixml.ccvoids(transaction_types.include?("ccvoids") ? 1 : 0)
|
180
|
+
ixml.ccrefunds(transaction_types.include?("ccrefunds") ? 1 : 0)
|
181
|
+
ixml.ccchargebacks(transaction_types.include?("ccchargebacks") ? 1 : 0)
|
182
|
+
ixml.achpreauths(transaction_types.include?("achpreauths") ? 1 : 0)
|
183
|
+
ixml.achsettlements(transaction_types.include?("achsettlements") ? 1 : 0)
|
184
|
+
ixml.achreturns(transaction_types.include?("achreturns") ? 1 : 0)
|
185
|
+
ixml.achnocs(transaction_types.include?("achnocs") ? 1 : 0)
|
186
|
+
ixml.achvoids(transaction_types.include?("achvoids") ? 1 : 0)
|
187
|
+
ixml.achcreditsauth(transaction_types.include?("achcreditsauth") ? 1 : 0)
|
188
|
+
ixml.achcreditsmerchantdebit(transaction_types.include?("achcreditsmerchantdebit") ? 1 : 0)
|
189
|
+
ixml.achcreditsdebitreturn(transaction_types.include?("achcreditsdebitreturn") ? 1 : 0)
|
190
|
+
ixml.achcreditsmerchantsettle(transaction_types.include?("achcreditsmerchantsettle") ? 1 : 0)
|
191
|
+
ixml.achcreditspaymentsettle(transaction_types.include?("achcreditspaymentsettle") ? 1 : 0)
|
192
|
+
ixml.achcreditsreturn(transaction_types.include?("achcreditsreturn") ? 1 : 0)
|
193
|
+
ixml.debitsales(transaction_types.include?("debitsales") ? 1 : 0)
|
194
|
+
ixml.debitrefunds(transaction_types.include?("debitrefunds") ? 1 : 0)
|
195
|
+
ixml.achlatereturns(transaction_types.include?("achlatereturns") ? 1 : 0)
|
196
|
+
ixml.extachpreauths(transaction_types.include?("extachpreauths") ? 1 : 0)
|
197
|
+
ixml.extachsettlements(transaction_types.include?("extachsettlements") ? 1 : 0)
|
198
|
+
ixml.extachreturns(transaction_types.include?("extachreturns") ? 1 : 0)
|
199
|
+
ixml.extachnocs(transaction_types.include?("extachnocs") ? 1 : 0)
|
200
|
+
ixml.extachvoids(transaction_types.include?("extachvoids") ? 1 : 0)
|
201
|
+
ixml.extachcreditsauth(transaction_types.include?("extachcreditsauth") ? 1 : 0)
|
202
|
+
ixml.extachcreditssettle(transaction_types.include?("extachcreditssettle") ? 1 : 0)
|
203
|
+
ixml.extachcreditsreturn(transaction_types.include?("extachcreditsreturn") ? 1 : 0)
|
204
|
+
ixml.extachck21_auth(transaction_types.include?("extachck21_auth") ? 1 : 0)
|
205
|
+
ixml.extachck21_void(transaction_types.include?("extachck21_void") ? 1 : 0)
|
206
|
+
ixml.extachck21_return(transaction_types.include?("extachck21_return") ? 1 : 0)
|
207
|
+
ixml.verfication(transaction_types.include?("verfication") ? 1 : 0)
|
208
|
+
ixml.ccincremental(transaction_types.include?("ccincremental") ? 1 : 0)
|
209
|
+
ixml.ccreversal(transaction_types.include?("ccreversal") ? 1 : 0)
|
210
|
+
}
|
211
|
+
|
212
|
+
xml.limitbycard((card_types == CARD_TYPES) ? 0 : 1 )
|
213
|
+
xml.limitbytranstypes((transaction_types == TRANS_TYPES) ? 0 : 1)
|
214
|
+
xml.childsubids(childsubids)
|
215
|
+
xml.accepted(accepted)
|
216
|
+
xml.declined(declined)
|
217
|
+
xml.test(test_flag)
|
218
|
+
xml.initial(initial_flag)
|
219
|
+
xml.recurring(recurring_flag)
|
220
|
+
xml.recurringonly(recurring_only)
|
221
|
+
xml.recurringretries (recurringretries)
|
222
|
+
xml.sort(sort)
|
223
|
+
xml.maxrows max_rows
|
224
|
+
xml.startrow start_row
|
225
|
+
xml.numrows num_rows
|
226
|
+
xml.currency('')
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
|
232
|
+
def create_sessionkey
|
233
|
+
# this needs to be of the form Acctid:UnixTime and then
|
234
|
+
# encrypted with @key
|
235
|
+
|
236
|
+
unix_time = Time.now.to_i
|
237
|
+
string = "#{@login}:#{unix_time}"
|
238
|
+
|
239
|
+
encrypt_string(string)
|
240
|
+
end
|
241
|
+
|
242
|
+
|
243
|
+
# openssl methods for encrypting
|
244
|
+
|
245
|
+
def decrypt_string(hexstr)
|
246
|
+
# maybe pass the need to convert from the hexstr
|
247
|
+
str = hexstr_to_str(hexstr)
|
248
|
+
retstr = ""
|
249
|
+
cipher = OpenSSL::Cipher.new('des-ede3')
|
250
|
+
cipher.decrypt
|
251
|
+
cipher.key = @key
|
252
|
+
retstr << cipher.update(str)
|
253
|
+
retstr << cipher.final
|
254
|
+
return retstr
|
255
|
+
end
|
256
|
+
|
257
|
+
def encrypt_string(str)
|
258
|
+
# returns the hexstr for the url
|
259
|
+
# TODO: need to uri escape the string before encrypting
|
260
|
+
retstr = ""
|
261
|
+
cipher = OpenSSL::Cipher.new("des-ede3")
|
262
|
+
cipher.encrypt
|
263
|
+
cipher.key = @key
|
264
|
+
retstr << cipher.update(str)
|
265
|
+
retstr << cipher.final
|
266
|
+
retstr = str_to_hexstr(retstr)
|
267
|
+
return retstr
|
268
|
+
end
|
269
|
+
|
270
|
+
def str_to_hexstr(hexstr)
|
271
|
+
hexstr.unpack('H*').first
|
272
|
+
end
|
273
|
+
|
274
|
+
|
275
|
+
def hexstr_to_str(str)
|
276
|
+
[str].pack 'H*'
|
277
|
+
end
|
278
|
+
end #PrismPayReports
|
279
|
+
|
280
|
+
|
281
|
+
class ReportResults
|
282
|
+
attr_reader :transactions
|
283
|
+
|
284
|
+
def initialize(soap_result)
|
285
|
+
@transactions = soap_result[:transaction_report_result][:transaction_report_details][:results][:record]
|
286
|
+
end
|
287
|
+
end #ReportRexults
|
288
|
+
|
289
|
+
|
290
|
+
end #module PrismPay
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
############################################################
|
295
|
+
# To write a test or sample driver you would need to do the following
|
296
|
+
############################################################
|
297
|
+
# pp_report = PrismPay::PrismPayReports.new({:login => 'PYDMO'})
|
298
|
+
#
|
299
|
+
# ## uses 5 days ago as start_date and now as end_date
|
300
|
+
# result = pp_report.get_transactions(Time.now - (60*60*24*5), Time.now)
|
301
|
+
# what is returned in result is what we now need to parse
|
302
|
+
############################################################
|
303
|
+
|
304
|
+
|
305
|
+
#####################################
|
306
|
+
# the resulting set is returned as an array that can be accessed
|
307
|
+
# through this variable:
|
308
|
+
#
|
309
|
+
# result.body[:transaction_report_result][:transaction_report_details][:results][:record]
|
310
|
+
#
|
311
|
+
|
data/spec/file~
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
The previous extachsale call and response:
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
The extachvoid call and response:
|
8
|
+
|
9
|
+
D, [2012-05-31T17:38:19.087895 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHVoid><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><orderid>232553638</orderid><historyid>1.22</historyid><ipaddress/></ckinfo></processExtACHVoid></env:Body></env:Envelope>
|
10
|
+
D, [2012-05-31T17:38:19.087943 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
11
|
+
D, [2012-05-31T17:38:20.470828 #11382] DEBUG -- : SOAP response (status 200):
|
12
|
+
D, [2012-05-31T17:38:20.471119 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHVoidResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHVoidReturn href="#id0"/></processExtACHVoidResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Declined</status><result xsi:type="xsd:string">DECLINED:1100070009:Transaction does not belong to current merchant - denied:</result><historyid xsi:type="xsd:string">0</historyid><orderid xsi:type="xsd:string">0</orderid><refcode xsi:type="xsd:string"></refcode><authcode xsi:type="xsd:string">DECLINED:1100070009:Transaction does not belong to current merchant - denied:</authcode><total xsi:type="xsd:float">0.0</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:36:06.670Z</transdate><paytype xsi:type="xsd:string"></paytype><duplicate xsi:type="xsd:int">0</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
data/spec/junk~
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
D, [2012-05-31T17:38:14.680755 #11382] DEBUG -- : SOAP request: https://trans.myprismpay.com/MPWeb/services/TransactionService
|
2
|
+
D, [2012-05-31T17:38:14.680870 #11382] DEBUG -- : SOAPAction: "processExtACHSale", Content-Type: text/xml;charset=UTF-8, Content-Length: 661
|
3
|
+
D, [2012-05-31T17:38:14.680932 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHSale><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><ckname>George Jones</ckname><ckaba>9999999999</ckaba><ckacct>9999999999</ckacct><amount>1.22</amount><cktype>PPD</cktype><ckaccttypedesc>personal checking</ckaccttypedesc><companyname></companyname><ipaddress/></ckinfo></processExtACHSale></env:Body></env:Envelope>
|
4
|
+
D, [2012-05-31T17:38:14.744394 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
5
|
+
D, [2012-05-31T17:38:16.276318 #11382] DEBUG -- : SOAP response (status 200):
|
6
|
+
D, [2012-05-31T17:38:16.276510 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHSaleResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHSaleReturn href="#id0"/></processExtACHSaleResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Approved</status><result xsi:type="xsd:string">EXTACH:TEST:::232553638:::</result><historyid xsi:type="xsd:string">232553638</historyid><orderid xsi:type="xsd:string">168355524</orderid><refcode xsi:type="xsd:string">GETI</refcode><authcode xsi:type="xsd:string">EXTACH:TEST:::232553638:::</authcode><total xsi:type="xsd:float">1.22</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:38:19.000Z</transdate><paytype xsi:type="xsd:string">Check</paytype><duplicate xsi:type="xsd:int">0</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
7
|
+
D, [2012-05-31T17:38:16.329452 #11382] DEBUG -- : SOAP request: https://trans.myprismpay.com/MPWeb/services/TransactionService
|
8
|
+
D, [2012-05-31T17:38:16.329537 #11382] DEBUG -- : SOAPAction: "processExtACHSale", Content-Type: text/xml;charset=UTF-8, Content-Length: 661
|
9
|
+
D, [2012-05-31T17:38:16.329570 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHSale><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><ckname>George Jones</ckname><ckaba>9999999999</ckaba><ckacct>9999999999</ckacct><amount>1.22</amount><cktype>PPD</cktype><ckaccttypedesc>personal checking</ckaccttypedesc><companyname></companyname><ipaddress/></ckinfo></processExtACHSale></env:Body></env:Envelope>
|
10
|
+
D, [2012-05-31T17:38:16.329618 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
11
|
+
D, [2012-05-31T17:38:17.652547 #11382] DEBUG -- : SOAP response (status 200):
|
12
|
+
D, [2012-05-31T17:38:17.652834 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHSaleResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHSaleReturn href="#id0"/></processExtACHSaleResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Approved</status><result xsi:type="xsd:string">EXTACH:TEST:::232553638:::</result><historyid xsi:type="xsd:string">232553638</historyid><orderid xsi:type="xsd:string">168355524</orderid><refcode xsi:type="xsd:string">GETI</refcode><authcode xsi:type="xsd:string">EXTACH:TEST:::232553638:::</authcode><total xsi:type="xsd:float">1.22</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:38:19.000Z</transdate><paytype xsi:type="xsd:string">Check</paytype><duplicate xsi:type="xsd:int">1</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
13
|
+
.D, [2012-05-31T17:38:17.679327 #11382] DEBUG -- : SOAP request: https://trans.myprismpay.com/MPWeb/services/TransactionService
|
14
|
+
D, [2012-05-31T17:38:17.679432 #11382] DEBUG -- : SOAPAction: "processExtACHConsumerDisbursement", Content-Type: text/xml;charset=UTF-8, Content-Length: 693
|
15
|
+
D, [2012-05-31T17:38:17.679479 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHConsumerDisbursement><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><ckname>George Jones</ckname><ckaba>9999999999</ckaba><ckacct>9999999999</ckacct><amount>1.22</amount><cktype>PPD</cktype><ckaccttypedesc>personal checking</ckaccttypedesc><companyname></companyname><ipaddress/></ckinfo></processExtACHConsumerDisbursement></env:Body></env:Envelope>
|
16
|
+
D, [2012-05-31T17:38:17.679676 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
17
|
+
D, [2012-05-31T17:38:19.066572 #11382] DEBUG -- : SOAP response (status 200):
|
18
|
+
D, [2012-05-31T17:38:19.066763 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHConsumerDisbursementResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHConsumerDisbursementReturn href="#id0"/></processExtACHConsumerDisbursementResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Approved</status><result xsi:type="xsd:string">EXTACHCREDIT:TEST:::232553610:::</result><historyid xsi:type="xsd:string">232553610</historyid><orderid xsi:type="xsd:string">168355704</orderid><refcode xsi:type="xsd:string">GETI</refcode><authcode xsi:type="xsd:string">EXTACHCREDIT:TEST:::232553610:::</authcode><total xsi:type="xsd:float">1.22</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:38:21.000Z</transdate><paytype xsi:type="xsd:string">Check</paytype><duplicate xsi:type="xsd:int">0</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
19
|
+
.D, [2012-05-31T17:38:19.087772 #11382] DEBUG -- : SOAP request: https://trans.myprismpay.com/MPWeb/services/TransactionService
|
20
|
+
D, [2012-05-31T17:38:19.087858 #11382] DEBUG -- : SOAPAction: "processExtACHVoid", Content-Type: text/xml;charset=UTF-8, Content-Length: 517
|
21
|
+
D, [2012-05-31T17:38:19.087895 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHVoid><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><orderid>232553638</orderid><historyid>1.22</historyid><ipaddress/></ckinfo></processExtACHVoid></env:Body></env:Envelope>
|
22
|
+
D, [2012-05-31T17:38:19.087943 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
23
|
+
D, [2012-05-31T17:38:20.470828 #11382] DEBUG -- : SOAP response (status 200):
|
24
|
+
D, [2012-05-31T17:38:20.471119 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHVoidResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHVoidReturn href="#id0"/></processExtACHVoidResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Declined</status><result xsi:type="xsd:string">DECLINED:1100070009:Transaction does not belong to current merchant - denied:</result><historyid xsi:type="xsd:string">0</historyid><orderid xsi:type="xsd:string">0</orderid><refcode xsi:type="xsd:string"></refcode><authcode xsi:type="xsd:string">DECLINED:1100070009:Transaction does not belong to current merchant - denied:</authcode><total xsi:type="xsd:float">0.0</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:36:06.670Z</transdate><paytype xsi:type="xsd:string"></paytype><duplicate xsi:type="xsd:int">0</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
25
|
+
FD, [2012-05-31T17:38:20.500195 #11382] DEBUG -- : SOAP request: https://trans.myprismpay.com/MPWeb/services/TransactionService
|
26
|
+
D, [2012-05-31T17:38:20.500457 #11382] DEBUG -- : SOAPAction: "processExtACHCredit", Content-Type: text/xml;charset=UTF-8, Content-Length: 547
|
27
|
+
D, [2012-05-31T17:38:20.500586 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="https://trans.myprismpay.com/MPWeb/services/TransactionService" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="urn:MPTransProcess"><env:Body><processExtACHCredit><ckinfo xsi:type="urn:ACHInfo"><acctid>TEST0</acctid><orderid>168355524</orderid><historyid>232553638</historyid><amount>1.22</amount><ipaddress/></ckinfo></processExtACHCredit></env:Body></env:Envelope>
|
28
|
+
D, [2012-05-31T17:38:20.500749 #11382] DEBUG -- : HTTPI executes HTTP POST using the net_http adapter
|
29
|
+
D, [2012-05-31T17:38:21.904115 #11382] DEBUG -- : SOAP response (status 200):
|
30
|
+
D, [2012-05-31T17:38:21.904380 #11382] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><processExtACHCreditResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><processExtACHCreditReturn href="#id0"/></processExtACHCreditResponse><multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns1:ProcessResult" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:MPTransProcess"><status xsi:type="xsd:string">Approved</status><result xsi:type="xsd:string">EXTACHREFUND:TEST:::232553627:::</result><historyid xsi:type="xsd:string">232553627</historyid><orderid xsi:type="xsd:string">168355524</orderid><refcode xsi:type="xsd:string">GETI</refcode><authcode xsi:type="xsd:string">EXTACHREFUND:TEST:::232553627:::</authcode><total xsi:type="xsd:float">1.22</total><merchantordernumber xsi:type="xsd:string"></merchantordernumber><transdate xsi:type="xsd:dateTime">2012-05-31T21:38:24.000Z</transdate><paytype xsi:type="xsd:string">Check</paytype><duplicate xsi:type="xsd:int">0</duplicate></multiRef></soapenv:Body></soapenv:Envelope>
|
31
|
+
.
|
32
|
+
|
33
|
+
Failures:
|
34
|
+
|
35
|
+
1) PrismPay::PrismPay ext_ach_sale should void a previous transaction
|
36
|
+
Failure/Error: response.body[:multi_ref][:status].should =~ /Approved/
|
37
|
+
expected: /Approved/
|
38
|
+
got: "Declined" (using =~)
|
39
|
+
Diff:
|
40
|
+
@@ -1,2 +1,2 @@
|
41
|
+
-/Approved/
|
42
|
+
+"Declined"
|
43
|
+
# ./spec/prismpay_spec.rb:411:in `block (2 levels) in <top (required)>'
|
44
|
+
|
45
|
+
Finished in 7.26 seconds
|
46
|
+
4 examples, 1 failure
|
47
|
+
|
48
|
+
Failed examples:
|
49
|
+
|
50
|
+
rspec ./spec/prismpay_spec.rb:403 # PrismPay::PrismPay ext_ach_sale should v
|
data/spec/prismpay_spec.rb
CHANGED
@@ -407,7 +407,7 @@ describe PrismPay::PrismPay, "ext_ach_sale", :bfd => true do
|
|
407
407
|
authcode = values[:historyid]
|
408
408
|
amount = values[:amount]
|
409
409
|
|
410
|
-
response = gateway.ext_ach_void(
|
410
|
+
response = gateway.ext_ach_void(authcode, orderid).soap_response
|
411
411
|
response.body[:multi_ref][:status].should =~ /Approved/
|
412
412
|
|
413
413
|
if response.body[:multi_ref][:status] =~ /Approved/
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prismpay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-06-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemerchant
|
@@ -55,12 +55,12 @@ files:
|
|
55
55
|
- lib/prismpay_am.rb
|
56
56
|
- lib/webpay.rb
|
57
57
|
- README.md
|
58
|
-
-
|
59
|
-
- spec/
|
58
|
+
- lib/prismpay_reports.rb
|
59
|
+
- spec/file~
|
60
60
|
- spec/webpay_spec.rb
|
61
61
|
- spec/prism_credit_response_spec.rb
|
62
|
-
- spec/
|
63
|
-
- spec/
|
62
|
+
- spec/junk~
|
63
|
+
- spec/prismpay_reports_spec.rb
|
64
64
|
- spec/prismpay_spec.rb
|
65
65
|
homepage:
|
66
66
|
licenses: []
|
@@ -82,15 +82,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
84
|
rubyforge_project:
|
85
|
-
rubygems_version: 1.8.
|
85
|
+
rubygems_version: 1.8.24
|
86
86
|
signing_key:
|
87
87
|
specification_version: 3
|
88
88
|
summary: Provide an interface to the Prismpay Gateway
|
89
89
|
test_files:
|
90
|
-
- spec/
|
91
|
-
- spec/prismpay_response_spec.rb~
|
90
|
+
- spec/file~
|
92
91
|
- spec/webpay_spec.rb
|
93
92
|
- spec/prism_credit_response_spec.rb
|
94
|
-
- spec/
|
95
|
-
- spec/
|
93
|
+
- spec/junk~
|
94
|
+
- spec/prismpay_reports_spec.rb
|
96
95
|
- spec/prismpay_spec.rb
|
data/spec/prismpay_spec.rb~
DELETED