DBA Data[Home] [Help]

PACKAGE BODY: APPS.PMT_UTIL

Source


1 package body PMT_UTIL as
2 /* $Header: ARPSUTLB.pls 120.8 2005/10/30 03:56:23 appldev ship $*/
3 
4 type v240_table is table of varchar2(240)
5 	index by binary_integer;
6 
7 outnames 	 v240_table;
8 outvalues	 v240_table;
9 
10 
11 /*
12 -------------------------------unpack_results--------------------------------
13 Given l_string which is a html file format, parse l_string and store the name
14 value pairs in l_names and l_values. For example, if OapfPrice name-value pairs
15 exist in l_string, it would be stored as l_names(i) := 'OapfPrice' and
16 l_values(i) := '17.00'.
17 */
18 procedure unpack_results(l_string in  varchar2,
19                          l_names  out NOCOPY v240_table,
20 			 l_values out NOCOPY v240_table) is
21 
22 l_length        number(15)	:= length(l_string) + 1;
23 l_count         number(15);
24 l_index         number(15)	:= 1;
25 l_char          varchar(1)	:= '';
26 l_word          varchar(240)	:= '';
27 l_name		boolean		:= TRUE;
28 debug		boolean		:= FALSE;
29 
30 begin
31 
32 -- just to see what is returned by the server
33 l_count := instr(l_string,'</H2>');
34 if l_count > 0
35 then
36     l_count := l_count +5;
37 end if;
38 
39 
40 while l_count < l_length loop
41 	if l_name and substr(l_string,l_count,1) = ':'
42 	then
43 		l_names(l_index) := ltrim(rtrim(l_word));
44 		l_name := FALSE;
45 		l_word := '';
46 		l_count := l_count + 1;
47 	elsif l_name
48 	then
49                 l_char := substr(l_string,l_count,1);
50 		l_word := l_word||l_char;
51                 l_count := l_count + 1;
52 	elsif upper(substr(l_string,l_count,4)) = '<BR>'
53 	then
54 		l_values(l_index) := ltrim(rtrim(l_word));
55 		l_name := TRUE;
56 		l_word := '';
57 		l_index := l_index + 1;
58 		l_count := l_count + 4;
59 	else
60 		l_char := substr(l_string,l_count,1);
61 		l_word := l_word||l_char;
62 		l_count := l_count + 1;
63 	end if;
64 end loop;
65 
66 exception
67         when others then
68                 HTP.print(SQLERRM);
69 end;
70 
71 
72 /*
73 -----------------------------------oraauth----------------------------------
74 */
75 procedure oraauth(
76 		baseurl in varchar2,
77 		inparam in in_oraauth,
78 		outparam out NOCOPY out_oraauth) is
79 
80 l_url		varchar2(2000);
81 l_html		varchar2(7000);
82 l_names		v240_table;
83 l_values	v240_table;
84 debug		boolean  := FALSE;
85 
86 begin
87 
88 /*
89 Construct a basic URL.
90 */
91 l_url := baseurl;
92 l_url := l_url||'OapfAction=oraauth'||'&';
93 
94 /*
95 If SET extended feature is used, add those extended name-value pairs to URL.
96 */
97 if inparam.OapfAPIScheme = 'ExtendedSET' then
98 	l_url := l_url||'OapfAPIScheme='||inparam.OapfAPIScheme||'&';
99 	l_url := l_url||'OapfTerminalId='||inparam.OapfTerminalId||'&';
100 	l_url := l_url||'OapfMerchBatchId='||inparam.OapfMerchBatchId||'&';
101 	l_url := l_url||'OapfBatchSequenceNum='||inparam.OapfBatchSequenceNum||'&';
102 	l_url := l_url||'OapfSplitShipment='||inparam.OapfSplitShipment||'&';
103 	l_url := l_url||'OapfAuthCurr='||inparam.OapfAuthCurr||'&';
104 	l_url := l_url||'OapfAuthPrice='||inparam.OapfAuthPrice||'&';
105 	l_url := l_url||'OapfInstallTotalTrans='||inparam.OapfInstallTotalTrans||'&';
106 	l_url := l_url||'OapfRecurringFreq='||inparam.OapfRecurringFreq||'&';
107 	l_url := l_url||'OapfRecurringExpiryDate='||inparam.OapfRecurringExpiryDate||'&';
108 	l_url := l_url||'OapfCustomerReferenceNumber='||inparam.OapfCustomerReferenceNumber||'&';
109 	l_url := l_url||'OapfDestinationPostalCode='||inparam.OapfDestinationPostalCode||'&';
110 	l_url := l_url||'OapfLocalTaxPrice='||inparam.OapfLocalTaxPrice||'&';
111 	l_url := l_url||'OapfLocalTaxCurr='||inparam.OapfLocalTaxCurr||'&';
112 end if;
113 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
114 l_url := l_url||'OapfCurr='||inparam.OapfCurr||'&';
115 l_url := l_url||'OapfPrice='||inparam.OapfPrice||'&';
116 l_url := l_url||'OapfAuthType='||inparam.OapfAuthType||'&';
117 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType||'&';
118 l_url := l_url||'OapfPmtInstrID='||inparam.OapfPmtInstrID||'&';
119 l_url := l_url||'OapfPmtInstrExp='||inparam.OapfPmtInstrExp||'&';
120 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId || '&';
121 l_url := l_url||'OapfCustName='||inparam.OapfCustName||'&';
122 l_url := l_url||'OapfAddr1='||inparam.OapfAddr1||'&';
123 l_url := l_url||'OapfAddr2='||inparam.OapfAddr2||'&';
124 l_url := l_url||'OapfAddr3='||inparam.OapfAddr3||'&';
125 l_url := l_url||'OapfCity='||inparam.OapfCity||'&';
126 l_url := l_url||'OapfCnty='||inparam.OapfCnty||'&';
127 l_url := l_url||'OapfState='||inparam.OapfState||'&';
128 l_url := l_url||'OapfCntry='||inparam.OapfCntry||'&';
129 l_url := l_url||'OapfPostalCode='||inparam.OapfPostalCode||'&';
130 l_url := l_url||'OapfPhone='||inparam.OapfPhone||'&';
131 l_url := l_url||'OapfNlsLang='||inparam.OapfnlsLang||'&';
132 l_url := l_url||'OapfEmail='||inparam.OapfEmail||'&';
133 l_url := l_url||'OapfRefNumber='||inparam.OapfRefNumber||'&';
134 l_url := l_url||'OapfTrxnRef='||inparam.OapfTrxnRef;
135 
136 /*
137 Repliace blank characters with + sign.
138 */
139 l_url := replace(l_url,' ','+');
140 
141 if debug then
142 	htp.print(l_url);
143 end if;
144 
145 /*
146 Send http request to the payment server.
147 */
148 l_html := utl_http.request(l_url);
149 if debug then
150 	htp.print(l_html);
151 end if;
152 
153 
154 /*
155 Unpack the results
156 */
157 unpack_results(l_html,l_names,l_values);
158 
159 
160 /*
161 Retrieve name-value pairs stored in l_names and l_values, and assign
162 them to the output variable called outparam.
163 */
164 for i in 1..l_names.COUNT loop
165 
166     if l_names(i) = 'OapfStatus'
167     then
168         outparam.OapfStatus := l_values(i);
169     elsif l_names(i) = 'OapfStatusMsg'
170     then
171         outparam.OapfStatusMsg := l_values(i);
172     elsif l_names(i) = 'OapfOrderId'
173     then
174 	outparam.OapfOrderId := l_values(i);
175     elsif l_names(i) = 'OapfTrxnType'
176     then
177         outparam.OapfTrxnType := l_values(i);
178     elsif l_names(i) = 'OapfTrxnDate'
179     then
180         outparam.OapfTrxnDate := l_values(i);
181     elsif l_names(i) = 'OapfApprovalCode'
182     then
183         outparam.OapfApprovalCode := l_values(i);
184     elsif l_names(i) = 'OapfRefcode'
185     then
186         outparam.OapfRefcode := l_values(i);
187     elsif l_names(i) = 'OapfAVScode'
188     then
189         outparam.OapfAVScode := l_values(i);
190     elsif l_names(i) = 'OapfPmtInstrType'
191     then
192         outparam.OapfPmtInstrType := l_values(i);
193     elsif l_names(i) = 'OapfErrLocation'
194     then
195         outparam.OapfErrLocation := l_values(i);
196     elsif l_names(i) = 'OapfVendErrCode'
197     then
198         outparam.OapfVendErrCode := l_values(i);
199     elsif l_names(i) = 'OapfVendErrmsg'
200     then
201         outparam.OapfVendErrmsg := l_values(i);
202     elsif l_names(i) = 'OapfAcquirer'
203     then
204         outparam.OapfAcquirer := l_values(i);
205     elsif l_names(i) = 'OapfAuxMsg'
206     then
207         outparam.OapfAuxMsg := l_values(i);
208 /*
209 SET extended oraauth output .
210 */
211     elsif l_names(i) = 'OapfSplitId'
212     then
213         outparam.OapfSplitId := l_values(i);
214     elsif l_names(i) = 'OapfMerchBatchId'
215     then
216         outparam.OapfMerchBatchId := l_values(i);
217     elsif l_names(i) = 'OapfCapCode'
218     then
219         outparam.OapfCapCode := l_values(i);
220     elsif l_names(i) = 'OapfCardCurr'
221     then
222         outparam.OapfCardCurr := l_values(i);
223     elsif l_names(i) = 'OapfCurrConvRate'
224     then
225         outparam.OapfCurrConvRate := l_values(i);
226     elsif l_names(i) = 'OapfTerminalId'
227     then
228         outparam.OapfTerminalId := l_values(i);
229     end if;
230 
231 end loop;
232 
233 
234 /*
235 If any exception takes place, print out NOCOPY SQLERRM in html page.
236 */
237 exception
238         when others then
239                 htp.print(SQLERRM);
240 end;
241 
242 /*************************orasubsequentauth******************************/
243 procedure orasubsequentauth(
244 		baseurl in varchar2,
245 		inparam in in_orasubsequentauth,
246 		outparam out NOCOPY out_orasubsequentauth) is
247 l_url	varchar2(2000);
248 l_html	varchar2(2000);
249 l_names	v240_table;
250 l_values  v240_table;
251 debug	 boolean:= FALSE;
252 begin
253 /*
254 Construct a request URL string.
255 */
256 l_url := baseurl;
257 l_url := l_url||'OapfAction='||inparam.OapfAction||'&';
258 l_url := l_url||'OapfAPIScheme='||inparam.OapfAPIScheme||'&';
259 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
260 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId||'&';
261 l_url := l_url||'OapfPrevSplitId='||inparam.OapfPrevSplitId||'&';
262 l_url := l_url||'OapfSplitId='||inparam.OapfSplitId||'&';
263 l_url := l_url||'OapfCurr='||inparam.OapfCurr||'&';
267 l_url := l_url||'OapfSubsequentAuthInd='||inparam.OapfSubsequentAuthInd||'&';
264 l_url := l_url||'OapfPrice='||inparam.OapfPrice||'&';
265 l_url := l_url||'OapfAuthType='||inparam.OapfAuthType||'&';
266 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType||'&';
268 l_url := l_url||'OapfNlsLang='||inparam.OapfNlsLang;
269 l_url := replace(l_url, ' ', '+');
270 if (debug) then
271 	htp.print(l_url);
272 end if;
273 
274 /*
275 Send HTTP request.
276 */
277 l_html := utl_http.request(l_url);
278 if (debug) then
279 	htp.print(l_html);
280 end if;
281 
282 /*
283 Parse the returning HTML file.
284 */
285 unpack_results(l_html, l_names, l_values);
286 for i in 1..l_names.COUNT LOOP
287 	if l_names(i) = 'OapfOrderId' then
288 		outparam.OapfOrderId := l_values(i);
289 	elsif l_names(i) = 'OapfSplitId' then
290 		outparam.OapfSplitId := l_values(i);
291 	elsif l_names(i) = 'OapfNlsLang' then
292 		outparam.OapfNlsLang := l_values(i);
293 	elsif l_names(i) = 'OapfTrxnType' then
294 		outparam.OapfTrxnType := l_values(i);
295 	elsif l_names(i) = 'OapfStatus' then
296 		outparam.OapfStatus := l_values(i);
297 	elsif l_names(i) = 'OapfAuthcode' then
298 		outparam.OapfAuthcode := l_values(i);
299 	elsif l_names(i) = 'OapfRefcode' then
300 		outparam.OapfRefcode := l_values(i);
301 	elsif l_names(i) = 'OapfAVScode' then
302 		outparam.OapfAVScode := l_values(i);
303 	elsif l_names(i) = 'OapfTrxnDate' then
304 		outparam.OapfTrxnDate := l_values(i);
305 	elsif l_names(i) = 'OapfPmtInstrType' then
306 		outparam.OapfPmtInstrType := l_values(i);
307 	elsif l_names(i) = 'OapfErrLocation' then
308 		outparam.OapfErrLocation := l_values(i);
309 	elsif l_names(i) = 'OapfVendErrCode' then
310 		outparam.OapfVendErrCode := l_values(i);
311 	elsif l_names(i) = 'OapfVendErrmsg' then
312 		outparam.OapfVendErrmsg := l_values(i);
313 	elsif l_names(i) = 'OapfAcquirer' then
314 		outparam.OapfAcquirer := l_values(i);
315 	elsif l_names(i) = 'OapfMerchBatchId' then
316 		outparam.OapfMerchBatchId := l_values(i);
317 	elsif l_names(i) = 'OapfVpsBatchId' then
318 		outparam.OapfVpsBatchId := l_values(i);
319 	elsif l_names(i) = 'OapfAuxMsg' then
320 		outparam.OapfAuxMsg := l_values(i);
321 	elsif l_names(i) = 'OapfCapCode' then
322 		outparam.OapfCapCode := l_values(i);
323 	end if;
324 end LOOP;
325 exception
326 	when others then
327 		htp.print(SQLERRM);
328 
329 end;
330 
331 /*************************oracapture************************************/
332 procedure oracapture(
333                 baseurl in varchar2,
334                 inparam in in_oracapture,
335                 outparam out NOCOPY out_oracapture) is
336 
337 l_url           varchar2(2000);
338 l_html          varchar2(7000);
339 l_names         v240_table;
340 l_values        v240_table;
341 debug           boolean  := FALSE;
342 
343 begin
344 
345 /*
346 Construct a request URL string.
347 */
348 l_url := baseurl;
349 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
350 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
351 l_url := l_url||'OapfPrice='||inparam.OapfPrice||'&';
352 l_url := l_url||'OapfCurr='||inparam.OapfCurr||'&';
353 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType||'&';
354 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId||'&';
355 l_url := l_url||'OapfTrxnRef='||inparam.OapfTrxnRef;
356 l_url := replace(l_url,' ','+');
357 
358 
359 /*
360 Send HTTP request to payment server
361 */
362 l_html := utl_http.request(l_url);
363 
364 
365 /*
366 Parse the resulting HTML page.
367 */
368 unpack_results(l_html,l_names,l_values);
369 
370 /*
371 Assign output name-value pairs to outparam.
372 */
373 for i in 1..l_names.COUNT loop
374 
375     if l_names(i) = 'OapfStatus'
376     then
377         outparam.OapfStatus := l_values(i);
378     elsif l_names(i) = 'OapfTrxnType'
379     then
380         outparam.OapfTrxnType := l_values(i);
381     elsif l_names(i) = 'OapfTrxnDate'
382     then
383         outparam.OapfTrxnDate := l_values(i);
384     elsif l_names(i) = 'OapfPmtInstrType'
385     then
386         outparam.OapfPmtInstrType := l_values(i);
387     elsif l_names(i) = 'OapfRefcode'
388     then
389 	outparam.OapfRefcode := l_values(i);
390     elsif l_names(i) = 'OapfErrLocation'
391     then
392         outparam.OapfErrLocation := l_values(i);
393     elsif l_names(i) = 'OapfVendErrCode'
394     then
395         outparam.OapfVendErrCode := l_values(i);
396     elsif l_names(i) = 'OapfVendErrmsg'
397     then
398         outparam.OapfVendErrmsg := l_values(i);
399     end if;
400 
401 end loop;
402 
403 
404 exception
405         when others then
406                 htp.print(SQLERRM);
407 end;
408 
409 /***************oracapture for SET***********************************/
410 procedure oracapture(
411                 baseurl in varchar2,
412                 inparam in SETIN_oracapture,
413                 summary out NOCOPY SETsummary_oracapture,
414                 reportlst out NOCOPY SETreportlst_oracapture) is
415 l_url           varchar2(2000);
416 l_html          varchar2(7000);
417 l_names         v240_table;
418 l_values        v240_table;
419 l_index         number;
420 debug           boolean := FALSE;
421 
422 begin
423 /*
424 Construct a request URL string.
425 */
426 l_url := baseurl;
430 l_url := l_url || 'OapfNlsLang='||inparam.OapfNlsLang||'&';
427 l_url := l_url || 'OapfAction='||inparam.OapfAction||'&';
428 l_url := l_url || 'OapfPmtType='||inparam.OapfPmtType||'&';
429 l_url := l_url || 'OapfStoreId='||inparam.OapfStoreId||'&';
431 l_url := l_url || 'OapfAPIScheme='||inparam.OapfAPIScheme||'&';
432 l_url := l_url || 'OapfNumTrxns='||inparam.OapfNumTrxns||'&';
433 for i in 1..inparam.OapfOrderId.COUNT loop
434         l_url :=
435 l_url||'OapfOrderId-'||TO_CHAR(i-1)||'='||inparam.OapfOrderId(i)||'&';
436 end loop;
437 for i in 1..inparam.OapfSplitId.COUNT loop
438         l_url :=
439 l_url||'OapfSplitId-'||TO_CHAR(i-1)||'='||inparam.OapfSplitId(i)||'&';
440 end loop;
441 for i in 1..inparam.OapfPrice.COUNT loop
442         l_url :=
443 l_url||'OapfPrice-'||TO_CHAR(i-1)||'='||inparam.OapfPrice(i)||'&';
444 end loop;
445 for i in 1..inparam.OapfCurr.COUNT loop
446         l_url :=
447 l_url||'OapfCurr-'||TO_CHAR(i-1)||'='||inparam.OapfCurr(i)||'&';
448 end loop;
449 for i in 1..inparam.OapfTerminalId.COUNT loop
450         l_url :=
451 l_url||'OapfTerminalId-'||TO_CHAR(i-1)||'='||inparam.OapfTerminalId(i)||'&';
452 end loop;
453 for i in 1..inparam.OapfMerchBatchId.COUNT loop
454         l_url :=
455 l_url||'OapfMerchBatchId-'||TO_CHAR(i-1)||'='||inparam.OapfMerchBatchId(i)||'&';
456 end loop;
457 for i in 1..inparam.OapfBatchSequenceNum.COUNT loop
458         l_url :=
459 l_url||'OapfBatchSequenceNum-'||TO_CHAR(i-1)||'='||inparam.OapfBatchSequenceNum(i)||'&';
460 end loop;
461 l_url := replace(l_url, ' ', '+');
462 if debug then
463         htp.print(l_url);
464 end if;
465 l_html := utl_http.request(l_url);
466 if debug then
467         htp.print(l_html);
468 end if;
469 unpack_results(l_html, l_names, l_values);
470 for i in 1..l_names.COUNT loop
471         if l_names(i)='OapfStatus' then
472                 summary.OapfStatus := l_values(i);
473 /* elsif l_names(i) = 'OapfStatusMsg' then
474                 summary.OapfStatusMsg := l_values(i); */
475         elsif l_names(i)='OapfTrxnType' then
476                 summary.OapfTrxnType := l_values(i);
477         elsif l_names(i)='OapfTrxnDate' then
478                 summary.OapfTrxnDate := l_values(i);
479         elsif l_names(i)='OapfPmtInstrType' then
480                 summary.OapfPmtInstrType := l_values(i);
481         elsif l_names(i)='OapfRefcode' then
482                 summary.OapfRefcode := l_values(i);
483         elsif l_names(i)='OapfErrLocation' then
484                 summary.OapfErrLocation := l_values(i);
485         elsif l_names(i)='OapfVendErrCode' then
486                 summary.OapfVendErrCode := l_values(i);
487         elsif l_names(i)='OapfVendErrmsg' then
488                 summary.OapfVendErrmsg := l_values(i);
489         elsif l_names(i)='OapfNumTrxns' then
490                 summary.OapfNumTrxns := TO_NUMBER(l_values(i));
491         elsif INSTR(l_names(i), 'OapfStatus-') <>0 then
492                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatus-'));
493                 reportlst(l_index).OapfStatus := l_values(i);
494 /*      elsif INSTR(l_names(i), 'OapfStatusMsg-') <>0 then
495                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatusMsg-'));
496                 reportlst(l_index).OapfStatusMsg := l_values(i); */
497         elsif INSTR(l_names(i), 'OapfOrderId-') <>0 then
498                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
499                 reportlst(l_index).OapfOrderId := l_values(i);
500         elsif INSTR(l_names(i), 'OapfSplitId-') <>0 then
501                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
502                 reportlst(l_index).OapfSplitId := l_values(i);
503         elsif INSTR(l_names(i), 'OapfCurr-') <>0 then
504                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCurr-'));
505                 reportlst(l_index).OapfCurr := l_values(i);
506         elsif INSTR(l_names(i), 'OapfPrice-') <>0 then
507                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfPrice-'));
508                 reportlst(l_index).OapfPrice := l_values(i);
509         elsif INSTR(l_names(i), 'OapfTerminalId-') <>0 then
510                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTerminalId-'));
511                 reportlst(l_index).OapfTerminalId := l_values(i);
512         elsif INSTR(l_names(i), 'OapfPmtInstrType-') <>0 then
513                 l_index := TO_NUMBER(LTRIM(l_names(i),
514 'OapfPmtInstrType-'));
515                 reportlst(l_index).OapfPmtInstrType := l_values(i);
516         elsif INSTR(l_names(i), 'OapfRefcode-') <>0 then
517                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfRefcode-'));
518                 reportlst(l_index).OapfRefcode := l_values(i);
519         elsif INSTR(l_names(i), 'OapfMerchBatchId-') <>0 then
520                 l_index := TO_NUMBER(LTRIM(l_names(i),
521 'OapfMerchBatchId-'));
522                 reportlst(l_index).OapfMerchBatchId := l_values(i);
523         elsif INSTR(l_names(i), 'OapfBatchSequenceNum-') <>0 then
524                 l_index := TO_NUMBER(LTRIM(l_names(i),
525 'OapfBatchSequenceNum-'));
526                 reportlst(l_index).OapfBatchSequenceNum := l_values(i);
527         end if;
528 end loop;
529 exception
530         when others then
531                 htp.print(SQLERRM);
532 end;
533 
534 /********************oravoid*************************************************/
535 procedure oravoid(
536                 baseurl in varchar2,
537                 inparam in in_oravoid,
538                 outparam out NOCOPY out_oravoid) is
539 
540 l_url           varchar2(2000);
541 l_html          varchar2(7000);
545 
542 l_names         v240_table;
543 l_values        v240_table;
544 debug           boolean  := FALSE;
546 begin
547 
548 /*
549 Construct HTTP request URL string.
550 */
551 l_url := baseurl;
552 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
553 l_url := l_url||'OapfTrxnType='||inparam.OapfTrxnType||'&';
554 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType||'&';
555 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
556 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId ;
557 l_url := replace(l_url,' ','+');
558 
559 
560 /*
561 Send HTTP request to payment server.
562 */
563 l_html := utl_http.request(l_url);
564 
565 if (debug) then
566 	htp.print(l_html);
567 end if;
568 
569 /*
570 Parse the resulting HTML file to name-value pairs tables.
571 */
572 unpack_results(l_html,l_names,l_values);
573 
574 /*
575 Loop through table and assign the name-value pairs to outparam.
576 */
577 for i in 1..l_names.COUNT loop
578 
579     if l_names(i) = 'OapfStatus'
580     then
581         outparam.OapfStatus := l_values(i);
582     elsif l_names(i) = 'OapfTrxnType'
583     then
584         outparam.OapfTrxnType := l_values(i);
585     elsif l_names(i) = 'OapfTrxnDate'
586     then
587         outparam.OapfTrxnDate := l_values(i);
588     elsif l_names(i) = 'OapfPmtInstrType'
589     then
590         outparam.OapfPmtInstrType := l_values(i);
591     elsif l_names(i) = 'OapfRefcode'
592     then
593         outparam.OapfRefcode := l_values(i);
594     elsif l_names(i) = 'OapfErrLocation'
595     then
596         outparam.OapfErrLocation := l_values(i);
597     elsif l_names(i) = 'OapfVendErrCode'
598     then
599         outparam.OapfVendErrCode := l_values(i);
600     elsif l_names(i) = 'OapfVendErrmsg'
601     then
602         outparam.OapfVendErrmsg := l_values(i);
603     end if;
604 
605 end loop;
606 
607 
608 exception
609         when others then
610                 htp.print(SQLERRM);
611 end;
612 
613 /************************oravoid for SET*************************************/
614 procedure oravoid(
615                 baseurl in varchar2,
616                 inparam in SETIN_oravoid,
617                 summary out NOCOPY SETsummary_oravoid,
618                 reportlst out NOCOPY SETreportlst_oravoid) is
619 l_url           varchar2(2000);
620 l_html          varchar2(7000);
621 l_names         v240_table;
622 l_values        v240_table;
623 l_index         number;
624 debug           boolean := FALSE;
625 
626 begin
627 /*
628 Construct a request URL string.
629 */
630 l_url := baseurl;
631 l_url := l_url || 'OapfAction='||inparam.OapfAction||'&';
632 l_url := l_url || 'OapfTrxnType='||inparam.OapfTrxnType||'&';
633 l_url := l_url || 'OapfPmtType='||inparam.OapfPmtType||'&';
634 l_url := l_url || 'OapfNlsLang='||inparam.OapfNlsLang||'&';
635 l_url := l_url || 'OapfAPIScheme='||inparam.OapfAPIScheme||'&';
636 l_url := l_url || 'OapfNumTrxns='||inparam.OapfNumTrxns||'&';
637 l_url := l_url || 'OapfStoreId='||inparam.OapfStoreId||'&';
638 for i in 1..inparam.OapfOrderId.COUNT loop
639         l_url := l_url||'OapfOrderId-'||TO_CHAR(i)||'='||inparam.OapfOrderId(i)||'&';
640 end loop;
641 for i in 1..inparam.OapfSplitId.COUNT loop
642         l_url := l_url||'OapfSplitId-'||TO_CHAR(i)||'='||inparam.OapfSplitId(i)||'&';
643 end loop;
644 for i in 1..inparam.OapfPrice.COUNT loop
645         l_url := l_url||'OapfPrice-'||TO_CHAR(i)||'='||inparam.OapfPrice(i)||'&';
646 end loop;
647 for i in 1..inparam.OapfCurr.COUNT loop
648         l_url := l_url||'OapfCurr-'||TO_CHAR(i)||'='||inparam.OapfCurr(i)||'&';
649 end loop;
650 for i in 1..inparam.OapfTerminalId.COUNT loop
651         l_url := l_url||'OapfTerminalId-'||TO_CHAR(i)||'='||inparam.OapfTerminalId(i)||'&';
652 end loop;
653 for i in 1..inparam.OapfMerchBatchId.COUNT loop
654         l_url := l_url||'OapfMerchBatchId-'||TO_CHAR(i)||'='||inparam.OapfMerchBatchId(i)||'&';
655 end loop;
656 for i in 1..inparam.OapfBatchSequenceNum.COUNT loop
657         l_url := l_url||'OapfBatchSequenceNum-'||TO_CHAR(i)||'='||inparam.OapfBatchSequenceNum(i)||'&';
658 end loop;
659 l_url := replace(l_url, ' ', '+');
660 if debug then
661 	htp.print(l_url);
662 end if;
663 l_html:=utl_http.request(l_url);
664 if debug then
665 	htp.print(l_html);
666 end if;
667 unpack_results(l_html, l_names, l_values);
668 for i in 1..l_names.COUNT loop
669         if l_names(i)='OapfStatus' then
670                 summary.OapfStatus := l_values(i);
671         elsif l_names(i)='OapfTrxnType' then
672                 summary.OapfTrxnType := l_values(i);
673         elsif l_names(i)='OapfTrxnDate' then
674                 summary.OapfTrxnDate := l_values(i);
675         elsif l_names(i)='OapfPmtInstrType' then
676                 summary.OapfPmtInstrType := l_values(i);
677         elsif l_names(i)='OapfRefcode' then
678                 summary.OapfRefcode := l_values(i);
679         elsif l_names(i)='OapfErrLocation' then
680                 summary.OapfErrLocation := l_values(i);
681         elsif l_names(i)='OapfVendErrCode' then
682                 summary.OapfVendErrCode := l_values(i);
683         elsif l_names(i)='OapfVendErrmsg' then
684                 summary.OapfVendErrmsg := l_values(i);
685         elsif l_names(i)='OapfNumTrxns' then
686                 summary.OapfNumTrxns := TO_NUMBER(l_values(i));
687        elsif INSTR(l_names(i), 'OapfStatus-') <>0 then
688                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatus-'));
689                 reportlst(l_index).OapfStatus := l_values(i);
690        elsif INSTR(l_names(i), 'OapfOrderId-') <>0 then
691                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
692                 reportlst(l_index).OapfOrderId := l_values(i);
693        elsif INSTR(l_names(i), 'OapfSplitId-') <>0 then
694                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
695                 reportlst(l_index).OapfSplitId := l_values(i);
696         elsif INSTR(l_names(i), 'OapfCapRevOrCreditCode-') <>0 then
697                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCapRevOrCreditCode-'));
698                 reportlst(l_index).OapfCapRevOrCreditCode := l_values(i);
699         elsif INSTR(l_names(i), 'OapfTerminalId-') <>0 then
700                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTerminalId-'));
701                 reportlst(l_index).OapfTerminalId := l_values(i);
702         elsif INSTR(l_names(i), 'OapfMerchBatchId-') <>0 then
703                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfMerchBatchId-'));
704                 reportlst(l_index).OapfMerchBatchId := l_values(i);
705         elsif INSTR(l_names(i), 'OapfBatchSequenceNum-') <>0 then
706                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfBatchSequenceNum-'));
707                 reportlst(l_index).OapfBatchSequenceNum := l_values(i);
708         end if;
709 end loop;
710 exception
711         when others then
712                 htp.print(SQLERRM);
713 end;
714 
715 
716 
717 
718 /*********************orareturn**********************************************/
719 procedure orareturn(
720                 baseurl in varchar2,
721                 inparam in in_orareturn,
722                 outparam out NOCOPY out_orareturn) is
723 
724 l_url           varchar2(2000);
725 l_html          varchar2(7000);
726 l_names         v240_table;
727 l_values        v240_table;
728 debug           boolean  := FALSE;
729 
730 begin
731 
732 /*
733 Construct URL string.
734 */
735 l_url := baseurl;
736 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
737 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
738 l_url := l_url||'OapfPrice='||inparam.OapfPrice||'&';
739 l_url := l_url||'OapfCurr='||inparam.OapfCurr||'&';
740 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId || '&';
741 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType || '&';
742 l_url := l_url||'OapfPmtInstrID='||inparam.OapfPmtInstrID || '&';
743 l_url := l_url||'OapfMerchUsername='||inparam.OapfMerchUsername || '&';
744 l_url := l_url||'OapfMerchPasswd='||inparam.OapfMerchPasswd || '&';
745 l_url := l_url||'OapfPmtInstrExp='||inparam.OapfPmtInstrExp ;
746 l_url := replace(l_url,' ','+');
747 
748 
749 /*
750 Send HTTP request URL to payment server.
751 */
752 l_html := utl_http.request(l_url);
753 
754 
755 /*
756 Parse resulting HTML page to name-value pair table.
757 */
758 unpack_results(l_html,l_names,l_values);
759 
760 /*
761 Assign name-value pair to output variable outparam.
762 */
763 for i in 1..l_names.COUNT loop
764 
765     if l_names(i) = 'OapfStatus'
766     then
767         outparam.OapfStatus := l_values(i);
768     elsif l_names(i) = 'OapfTrxnType'
769     then
770         outparam.OapfTrxnType := l_values(i);
771     elsif l_names(i) = 'OapfTrxnDate'
772     then
773         outparam.OapfTrxnDate := l_values(i);
774     elsif l_names(i) = 'OapfPmtInstrType'
775     then
776         outparam.OapfPmtInstrType := l_values(i);
777     elsif l_names(i) = 'OapfRefcode'
778     then
779         outparam.OapfRefcode := l_values(i);
780     elsif l_names(i) = 'OapfErrLocation'
781     then
782         outparam.OapfErrLocation := l_values(i);
783     elsif l_names(i) = 'OapfVendErrCode'
784     then
785         outparam.OapfVendErrCode := l_values(i);
786     elsif l_names(i) = 'OapfVendErrmsg'
787     then
788         outparam.OapfVendErrmsg := l_values(i);
789     end if;
790 
791 end loop;
792 
793 
794 exception
795         when others then
796                 htp.print(SQLERRM);
797 end;
798 
799 /****************************orareturn for SET******************************/
800 procedure orareturn(
801                 baseurl in varchar2,
802                 inparam in SETIN_orareturn,
803                 summary out NOCOPY SETsummary_orareturn,
804                 reportlst out NOCOPY SETreportlst_orareturn) is
805 l_url           varchar2(2000);
806 l_html          varchar2(7000);
807 l_names         v240_table;
808 l_values        v240_table;
809 l_index         number;
810 debug           boolean := FALSE;
811 
812 begin
813 /*
814 Construct a request URL string.
815 */
816 l_url := baseurl;
817 l_url := l_url || 'OapfAction='||inparam.OapfAction||'&';
818 l_url := l_url || 'OapfStoreId='||inparam.OapfStoreId||'&';
819 l_url := l_url || 'OapfPmtType='||inparam.OapfPmtType||'&';
820 l_url := l_url || 'OapfNlsLang='||inparam.OapfNlsLang||'&';
821 l_url := l_url || 'OapfAPIScheme='||inparam.OapfAPIScheme||'&';
822 l_url := l_url || 'OapfNumTrxns='||inparam.OapfNumTrxns||'&';
823 for i in 1..inparam.OapfOrderId.COUNT loop
824         l_url := l_url||'OapfOrderId-'||TO_CHAR(i)||'='||inparam.OapfOrderId(i)||'&';
825 end loop;
826 for i in 1..inparam.OapfSplitId.COUNT loop
827         l_url := l_url||'OapfSplitId-'||TO_CHAR(i)||'='||inparam.OapfSplitId(i)||'&';
828 end loop;
829 for i in 1..inparam.OapfCreditCounter.COUNT loop
830         l_url := l_url||'OapfCreditCounter-'||TO_CHAR(i)||'='||inparam.OapfCreditCounter(i)||'&';
831 end loop;
832 for i in 1..inparam.OapfPrice.COUNT loop
833         l_url := l_url||'OapfPrice-'||TO_CHAR(i)||'='||inparam.OapfPrice(i)||'&';
834 end loop;
835 for i in 1..inparam.OapfCurr.COUNT loop
836         l_url := l_url||'OapfCurr-'||TO_CHAR(i)||'='||inparam.OapfCurr(i)||'&';
837 end loop;
838 for i in 1..inparam.OapfTerminalId.COUNT loop
839         l_url := l_url||'OapfTerminalId-'||TO_CHAR(i)||'='||inparam.OapfTerminalId(i)||'&';
840 end loop;
841 for i in 1..inparam.OapfMerchBatchId.COUNT loop
842         l_url := l_url||'OapfMerchBatchId-'||TO_CHAR(i)||'='||inparam.OapfMerchBatchId(i)||'&';
843 end loop;
844 for i in 1..inparam.OapfBatchSequenceNum.COUNT loop
845         l_url := l_url||'OapfBatchSequenceNum-'||TO_CHAR(i)||'='||inparam.OapfBatchSequenceNum(i)||'&';
846 end loop;
847 l_url := replace(l_url, ' ', '+');
848 l_html:=utl_http.request(l_url);
849 unpack_results(l_html, l_names, l_values);
850 for i in 1..l_names.COUNT loop
851 	if l_names(i)='OapfStatus' then
852 		summary.OapfStatus := l_values(i);
853 	elsif l_names(i)='OapfTrxnType' then
854 		summary.OapfTrxnType := l_values(i);
855 	elsif l_names(i)='OapfTrxnDate' then
856 		summary.OapfTrxnDate := l_values(i);
857 	elsif l_names(i)='OapfPmtInstrType' then
858 		summary.OapfPmtInstrType := l_values(i);
859 	elsif l_names(i)='OapfRefcode' then
860 		summary.OapfRefcode := l_values(i);
861 	elsif l_names(i)='OapfErrLocation' then
862 		summary.OapfErrLocation := l_values(i);
863 	elsif l_names(i)='OapfVendErrCode' then
864 		summary.OapfVendErrCode := l_values(i);
865 	elsif l_names(i)='OapfVendErrmsg' then
866 		summary.OapfVendErrmsg := l_values(i);
867 	elsif l_names(i)='OapfNumTrxns' then
868 		summary.OapfNumTrxns := TO_NUMBER(l_values(i));
869        elsif INSTR(l_names(i), 'OapfOrderId-') <>0 then
870                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
871                 reportlst(l_index).OapfOrderId := l_values(i);
872        elsif INSTR(l_names(i), 'OapfSplitId-') <>0 then
873                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
874                 reportlst(l_index).OapfSplitId := l_values(i);
875        elsif INSTR(l_names(i), 'OapfCreditCounter-') <>0 then
876                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCreditCounter-'));
877                 reportlst(l_index).OapfCreditCounter := l_values(i);
878         elsif INSTR(l_names(i), 'OapfStatus-') <>0 then
879                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatus-'));
880                 reportlst(l_index).OapfStatus := l_values(i);
881         elsif INSTR(l_names(i), 'OapfCapRevOrCreditCode-') <>0 then
882                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCapRevOrCreditCode-'));
883                 reportlst(l_index).OapfCapRevOrCreditCode := l_values(i);
884         elsif INSTR(l_names(i), 'OapfTerminalId-') <>0 then
885                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTerminalId-'));
886                 reportlst(l_index).OapfTerminalId := l_values(i);
887         elsif INSTR(l_names(i), 'OapfMerchBatchId-') <>0 then
888                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfMerchBatchId-'));
889                 reportlst(l_index).OapfMerchBatchId := l_values(i);
890         elsif INSTR(l_names(i), 'OapfBatchSequenceNum-') <>0 then
891                 l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfBatchSequenceNum-'));
892                 reportlst(l_index).OapfBatchSequenceNum := l_values(i);
893         end if;
894 end loop;
895 exception
899 
896         when others then
897                 htp.print(SQLERRM);
898 end;
900 
901 
902 
903 /***********************orapmtlist*****************************************/
904 procedure orapmtlist(
905 		baseurl in varchar2,
906 		inparam in in_orapmtlist,
907 		summary out NOCOPY summary_orapmtlist,
908 		reportlst out NOCOPY reportlst_orapmtlist) IS
909 l_url           varchar2(2000);
910 l_html          varchar2(7000);
911 l_names         v240_table;
912 l_values        v240_table;
913 debug           boolean  := FALSE;
914 l_index         number;
915 begin
916 
917 /* Construct request URL */
918 l_url := baseurl;
919 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
920 l_url := l_url || 'OapfStoreId=' || inparam.OapfStoreId || '&';
921 l_url := l_url || 'OapfEmail=' || inparam.OapfEmail;
922 l_url := replace(l_url,' ','+');
923 
924 
925 /* Send HTTP URL request to payment server */
926 l_html := utl_http.request(l_url);
927 
928 /*
929 Parse resulting HTML page.
930 */
931 unpack_results(l_html,l_names,l_values);
932 if (debug) then
933 	htp.print(l_html);
934 end if;
935 
936 /*
937 Assign name-value pair table values to summary and reportlst.
938 reportlst is a table of individual records.
939 */
940 for i in 1..l_names.COUNT LOOP
941 	if INSTR(l_names(i), 'OapfNumber') <> 0 then
942 		summary.OapfNumber := TO_NUMBER(l_values(i));
943 	elsif INSTR(l_names(i), 'OapfPmtType-') <> 0 then
944         	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfPmtType-'));
945         	reportlst(l_index).OapfPmtType := l_values(i);
946 	end if;
947 end loop;
948 exception
949 	when others then
950 		htp.print(SQLERRM);
951 end;
952 
953 /**************************oraclosebatch***********************************/
954 procedure oraclosebatch(
955                 baseurl in varchar2,
956                 inparam in in_oraclosebatch,
957 		summary out NOCOPY summary_oraclosebatch,
958 		reportlst out NOCOPY reportlst_oraclosebatch) is
959 
960 l_url           varchar2(2000);
961 l_html          varchar2(7000);
962 l_names         v240_table;
963 l_values        v240_table;
964 debug           boolean  := FALSE;
965 l_index         number;
966 begin
967 
968 /*
969 Construct URL request.
970 */
971 l_url := baseurl;
972 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
973 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType||'&';
974 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId || '&';
975 l_url := l_url||'OapfMerchBatchID='||inparam.OapfMerchBatchID || '&';
976 l_url := l_url||'OapfTerminalId='||inparam.OapfTerminalId ||'&';
977 l_url := l_url||'OapfNlsLang='||inparam.OapfNlsLang ||'&';
978 l_url := l_url||'OapfAPIScheme='||inparam.OapfAPIScheme;
979 
980 /* Added for SET */
981 l_url := replace(l_url,' ','+');
982 
983 /*
984 Send HTTP URL request to the payment server.
985 */
986 l_html := utl_http.request(l_url);
987 
988 
989 /*
990 Parse resulting HTML page.
991 */
992 unpack_results(l_html,l_names,l_values);
993 
994 /*
995 Read though l_names and l_values table, and assign them to summary or
996 reportlst output parameters. reportlst is a table of output reports for
997 oraclosebatch operation.
998 */
999 for i in 1..l_names.COUNT loop
1000 
1001     if l_names(i) = 'OapfStatus'
1002     then
1003 	summary.OapfStatus := l_values(i);
1004     elsif l_names(i) = 'OapfMerchBatchID'
1005     then
1006         summary.OapfMerchBatchID := l_values(i);
1007     elsif l_names(i) = 'OapfBatchState'
1008     then
1009         summary.OapfBatchDate := l_values(i);
1010     elsif l_names(i) = 'OapfBatchDate'
1011     then
1012         summary.OapfBatchDate := l_values(i);
1013     elsif l_names(i) = 'OapfCreditAmount'
1014     then
1015         summary.OapfCreditAmount := l_values(i);
1016     elsif l_names(i) = 'OapfSalesAmount'
1017     then
1018         summary.OapfSalesAmount := l_values(i);
1019     elsif l_names(i) = 'OapfBatchTotal'
1020     then
1021         summary.OapfBatchTotal := l_values(i);
1022     elsif l_names(i) = 'OapfCurr'
1023     then
1024         summary.OapfCurr := l_values(i);
1025     elsif l_names(i) = 'OapfNumTrxns'
1026     then
1027         summary.OapfNumTrxns := TO_NUMBER(l_values(i));
1028     elsif l_names(i) = 'OapfStoreID'
1029     then
1030         summary.OapfStoreID := l_values(i);
1031     elsif l_names(i) = 'OapfVpsBatchID'
1032     then
1033         summary.OapfVpsBatchID := l_values(i);
1034     elsif l_names(i) = 'OapfErrLocation'
1035     then
1036         summary.OapfErrLocation := l_values(i);
1037     elsif l_names(i) = 'OapfGWBatchID'
1038     then
1039         summary.OapfGWBatchID := l_values(i);
1040     elsif l_names(i) = 'OapfVendErrCode'
1041     then
1042         summary.OapfVendErrCode := l_values(i);
1043     elsif l_names(i) = 'OapfVendErrmsg'
1044     then
1045         summary.OapfVendErrmsg := l_values(i);
1046     elsif INSTR(l_names(i), 'OapfOrderId-') <> 0 then
1047 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
1048 	reportlst(l_index).OapfOrderId := l_values(i);
1049     elsif INSTR(l_names(i), 'OapfTrxnType-') <> 0 then
1050 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnType-'));
1051 	reportlst(l_index).OapfTrxnType := l_values(i);
1052     elsif INSTR(l_names(i), 'OapfTrxnDate-') <> 0 then
1053 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnDate-'));
1054 	reportlst(l_index).OapfTrxnDate := l_values(i);
1055     elsif INSTR(l_names(i), 'OapfStatus-') <> 0 then
1056 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatus-'));
1057 	reportlst(l_index).OapfStatus := l_values(i);
1058     elsif INSTR(l_names(i), 'OapfErrLocation-') <> 0 then
1059 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfErrLocation-'));
1060 	reportlst(l_index).OapfErrLocation := l_values(i);
1061     elsif INSTR(l_names(i), 'OapfVendErrCode-') <> 0 then
1062 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfVendErrCode-'));
1063 	reportlst(l_index).OapfVendErrCode := l_values(i);
1064     elsif INSTR(l_names(i), 'OapfVendErrmsg-') <> 0 then
1065 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfVendErrmsg-'));
1066 	reportlst(l_index).OapfVendErrmsg := l_values(i);
1067     elsif INSTR(l_names(i), 'OapfTrxnAmtType-') <> 0 then
1068 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnAmtType-'));
1069 	reportlst(l_index).OapfTrxnAmtType := l_values(i);
1070     elsif INSTR(l_names(i), 'OapfSplitId-') <> 0 then
1071 	l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
1072 	reportlst(l_index).OapfSplitId := l_values(i);
1073     end if;
1074 
1075 end loop;
1076 
1077 
1078 exception
1079         when others then
1080 		htp.print(SQLERRM);
1081 end;
1082 
1083 /*************************oraqrytxstatus*****************************************/
1084 procedure oraqrytxstatus(
1085                 baseurl in varchar2,
1086                 inparam in in_oraqrytxstatus,
1087                 summary out NOCOPY summary_oraqrytxstatus,
1088                 reportlst out NOCOPY reportlst_oraqrytxstatus) is
1089 
1090 l_url           varchar2(2000);
1091 l_html          varchar2(7000);
1092 l_names         v240_table;
1093 l_values        v240_table;
1094 debug           boolean  := FALSE;
1095 l_index         number;
1096 begin
1097 
1098 /* Construct HTTP request URL */
1099 l_url := baseurl;
1100 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
1101 l_url := l_url||'OapfOrderId='||inparam.OapfOrderId||'&';
1102 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId || '&';
1103 l_url := l_url||'OapfPmtType='||inparam.OapfPmtType || '&';
1104 /* Added for SET */
1105 l_url := l_url||'OapfNlsLang='||inparam.OapfNlsLang ||'&';
1106 l_url := l_url||'OapfAPIScheme='||inparam.OapfAPIScheme;
1107 l_url := replace(l_url,' ','+');
1108 
1109 if debug then
1110 	htp.print(l_url);
1111 end if;
1112 /* Send HTTP request */
1113 l_html := utl_http.request(l_url);
1114 
1115 if debug then
1116 	htp.print(l_html);
1117 end if;
1118 
1119 
1120 /* Parse the resulting HTML Page. */
1121 unpack_results(l_html,l_names,l_values);
1122 
1123 /* Go through l_names and l_values table, assign them to output variable
1124 summary and reportlst.
1125 */
1126 for i in 1..l_names.COUNT loop
1127 
1128     if l_names(i) = 'OapfNumTrxns'
1129     then
1130         summary.OapfNumTrxns := TO_NUMBER(l_values(i));
1131     elsif INSTR(l_names(i), 'OapfOrderId-') <> 0 then
1132         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
1133         reportlst(l_index).OapfOrderId := l_values(i);
1134     elsif INSTR(l_names(i), 'OapfTrxnType-') <> 0 then
1135         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnType-'));
1136         reportlst(l_index).OapfTrxnType := l_values(i);
1137     elsif INSTR(l_names(i), 'OapfStatus-') <> 0 then
1138         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfStatus-'));
1139         reportlst(l_index).OapfStatus := l_values(i);
1140     elsif INSTR(l_names(i), 'OapfPrice-') <> 0 then
1141         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfPrice-'));
1142         reportlst(l_index).OapfPrice := l_values(i);
1143     elsif INSTR(l_names(i), 'OapfCurr-') <> 0 then
1144         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCurr-'));
1145         reportlst(l_index).OapfCurr := l_values(i);
1146     elsif INSTR(l_names(i), 'OapfAuthcode-') <> 0 then
1147         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfAuthcode-'));
1148         reportlst(l_index).OapfAuthcode := l_values(i);
1149     elsif INSTR(l_names(i), 'OapfRefcode-') <> 0 then
1150         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfRefcode-'));
1151         reportlst(l_index).OapfRefcode := l_values(i);
1152     elsif INSTR(l_names(i), 'OapfAVScode-') <> 0 then
1153         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfAVScode-'));
1154         reportlst(l_index).OapfAVScode := l_values(i);
1155     elsif INSTR(l_names(i), 'OapfTrxnDate-') <> 0 then
1156         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnDate-'));
1157         reportlst(l_index).OapfTrxnDate := l_values(i);
1158     elsif INSTR(l_names(i), 'OapfPmtInstrType-') <> 0 then
1159         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfPmtInstrType-'));
1160         reportlst(l_index).OapfPmtInstrType := l_values(i);
1161     elsif INSTR(l_names(i), 'OapfErrLocation-') <> 0 then
1162         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfErrLocation-'));
1163         reportlst(l_index).OapfErrLocation := l_values(i);
1164     elsif INSTR(l_names(i), 'OapfVendErrCode-') <> 0 then
1165         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfVendErrCode-'));
1166         reportlst(l_index).OapfVendErrCode := l_values(i);
1167     elsif INSTR(l_names(i), 'OapfVendErrmsg-') <> 0 then
1168         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfVendErrmsg-'));
1169         reportlst(l_index).OapfVendErrmsg := l_values(i);
1170     elsif INSTR(l_names(i), 'OapfAcquirer-') <> 0 then
1171         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfAcquirer-'));
1172         reportlst(l_index).OapfAcquirer := l_values(i);
1173     elsif INSTR(l_names(i), 'OapfAuxMsg-') <> 0 then
1174         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfAuxMsg-'));
1175         reportlst(l_index).OapfAuxMsg := l_values(i);
1176     elsif INSTR(l_names(i), 'OapfVpsBatchID-') <> 0 then
1177         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfVpsBatchID-'));
1178         reportlst(l_index).OapfVpsBatchID := l_values(i);
1179 /*
1180 	Added for SET
1181 */
1182     elsif INSTR(l_names(i), 'OapfSplitId-') <> 0 then
1183         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
1184         reportlst(l_index).OapfSplitId := l_values(i);
1185     elsif INSTR(l_names(i), 'OapfTerminalId-') <> 0 then
1186         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTerminalId-'));
1187         reportlst(l_index).OapfTerminalId := l_values(i);
1188     elsif INSTR(l_names(i), 'OapfMerchBatchId-') <> 0 then
1189         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfMerchBatchId-'));
1190         reportlst(l_index).OapfMerchBatchId := l_values(i);
1191     elsif INSTR(l_names(i), 'OapfBatchSequenceNum-') <> 0 then
1192         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfBatchSequenceNum-'));
1193         reportlst(l_index).OapfBatchSequenceNum := l_values(i);
1194     end if;
1195 
1196 end loop;
1197 
1198 
1199 exception
1200         when others then
1201                 htp.print(SQLERRM);
1202 end;
1203 
1204 
1205 /*************************oraqrybatchstatus**************************************/
1206 procedure oraqrybatchstatus(
1207                 baseurl in varchar2,
1208                 inparam in in_oraqrybatchstatus,
1209                 summary out NOCOPY summary_oraqrybatchstatus,
1210                 reportlst out NOCOPY reportlst_oraqrybatchstatus) is
1211 
1212 l_url           varchar2(2000);
1213 l_html          varchar2(7000);
1214 l_names         v240_table;
1215 l_values        v240_table;
1216 debug           boolean  := FALSE;
1217 l_index         number;
1218 begin
1219 
1220 /* Construct request URL */
1221 l_url := baseurl;
1222 l_url := l_url||'OapfAction='|| inparam.OapfAction ||'&';
1223 l_url := l_url||'OapfVpsBatchID='||inparam.OapfVpsBatchID||'&';
1224 l_url := l_url||'OapfStoreId='||inparam.OapfStoreId||'&';
1225 l_url := l_url||'OapfTerminalId='||inparam.OapfTerminalId||'&';
1226 l_url := l_url||'OapfNlsLang='||inparam.OapfNlsLang||'&';
1227 l_url := l_url||'OapfAPIScheme='||inparam.OapfAPIScheme;
1228 l_url := replace(l_url,' ','+');
1229 
1230 
1231 /* Send HTTP request */
1232 l_html := utl_http.request(l_url);
1233 
1234 /* Parse resulting HTML page */
1235 unpack_results(l_html,l_names,l_values);
1236 
1237 /* Go through l_names and l_values name-value pair table and assign
1238 values to output variables summary and reportlst
1239 */
1240 for i in 1..l_names.COUNT loop
1241 
1242     if l_names(i) = 'OapfNumTrxns'
1243     then
1244         summary.OapfNumTrxns := TO_NUMBER(l_values(i));
1245     elsif INSTR(l_names(i), 'OapfOrderId-') <> 0 then
1246         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfOrderId-'));
1247         reportlst(l_index).OapfOrderId := l_values(i);
1248     elsif INSTR(l_names(i), 'OapfTrxnType-') <> 0 then
1249         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnType-'));
1250         reportlst(l_index).OapfTrxnType := l_values(i);
1251     elsif INSTR(l_names(i), 'OapfPrice-') <> 0 then
1252         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfPrice-'));
1253         reportlst(l_index).OapfPrice := l_values(i);
1254     elsif INSTR(l_names(i), 'OapfCurr-') <> 0 then
1255         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfCurr-'));
1256         reportlst(l_index).OapfCurr := l_values(i);
1257     elsif INSTR(l_names(i), 'OapfTrxnDate-') <> 0 then
1258         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnDate-'));
1259         reportlst(l_index).OapfTrxnDate := l_values(i);
1260     elsif INSTR(l_names(i), 'OapfTrxnAmtType-') <> 0 then
1261         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfTrxnAmtType-'));
1262         reportlst(l_index).OapfTrxnAmtType := l_values(i);
1263     elsif INSTR(l_names(i), 'OapfSplitId-') <> 0 then
1264         l_index := TO_NUMBER(LTRIM(l_names(i), 'OapfSplitId-'));
1265         reportlst(l_index).OapfSplitId := l_values(i);
1266     end if;
1267 
1268 end loop;
1269 
1270 
1271 exception
1272         when others then
1273                 htp.print(SQLERRM);
1274 end;
1275 
1276 
1277 /*
1278 Overloaded procedure from Web Group
1279 */
1280 procedure oraauth ( p_baseurl           IN varchar2,
1281                 p_OapfOrderId           IN OUT NOCOPY varchar2,
1282                 p_OapfCurr              IN varchar2,
1283                 p_OapfPrice             IN varchar2,
1284                 p_OapfAuthType          IN varchar2,
1285                 p_OapfPmtType           IN varchar2,
1286                 p_OapfPmtInstrID        IN varchar2,
1290                 p_OapfAddr1             IN varchar2,
1287                 p_OapfPmtInstrExp       IN varchar2,
1288                 p_OapfStoreId           IN varchar2,
1289                 p_OapfcustName          IN varchar2,
1291                 p_OapfAddr2             IN varchar2,
1292                 p_OapfAddr3             IN varchar2,
1293                 p_OapfCity              IN varchar2,
1294                 p_OapfCnty              IN varchar2,
1295                 p_OapfState             IN varchar2,
1296                 p_OapfCntry             IN varchar2,
1297                 p_OapfPostalCode        IN varchar2,
1298                 p_OapfPhone             IN varchar2,
1299                 p_OapfEmail             IN varchar2,
1300 		p_OapfRefNumber		IN varchar2,
1301 		p_OapfTrxnRef		IN varchar2,
1302                 p_OapfStatus            OUT NOCOPY varchar2,
1303                 p_OapfStatusMsg         OUT NOCOPY varchar2, /* NEW for PS 2.0 */
1304                 p_OapfTrxnType          OUT NOCOPY varchar2,
1305                 p_OapfTrxnDate          OUT NOCOPY varchar2,
1306                 p_OapfApprovalCode      OUT NOCOPY varchar2, /* Change for PS 2.0 */
1307                 p_OapfRefcode           OUT NOCOPY varchar2,
1308                 p_OapfAVScode           OUT NOCOPY varchar2,
1309                 p_OapfPmtInstrType      OUT NOCOPY varchar2,
1310                 p_OapfErrLocation       OUT NOCOPY varchar2,
1311                 p_OapfVendErrCode       OUT NOCOPY varchar2,
1312                 p_OapfVendErrmsg        OUT NOCOPY varchar2,
1313                 p_OapfAcquirer          OUT NOCOPY varchar2,
1314                 p_OapfAuxMsg            OUT NOCOPY varchar2 ) IS
1315 
1316 inparam PMT_UTIL.in_oraauth;
1317 outparam PMT_UTIL.out_oraauth;
1318 
1319 BEGIN
1320 
1321         fnd_file.put_line(FND_FILE.LOG, 'oraauth ()+');
1322         inparam.OapfOrderId     := p_OapfOrderId;
1323         inparam.OapfCurr        := p_OapfCurr ;
1324         inparam.OapfPrice       := p_OapfPrice;
1325         inparam.OapfAuthType    := p_OapfAuthType;
1326         inparam.OapfPmtType     := p_OapfPmtType;
1327         inparam.OapfPmtInstrID  := p_OapfPmtInstrID;
1328         inparam.OapfPmtInstrExp := p_OapfPmtInstrExp;
1329         inparam.OapfStoreId     := p_OapfStoreId;
1330         inparam.OapfcustName    := p_OapfcustName;
1331         inparam.OapfAddr1       := p_OapfAddr1 ;
1332         inparam.OapfAddr2       := p_OapfAddr2 ;
1333         inparam.OapfAddr3       := p_OapfAddr3 ;
1334         inparam.OapfCity        := p_OapfCity ;
1335         inparam.OapfCnty        := p_OapfCnty ;
1336         inparam.OapfState       := p_OapfState;
1337         inparam.OapfCntry       := p_OapfCntry;
1338         inparam.OapfPostalCode  := p_OapfPostalCode;
1339         inparam.OapfPhone       := p_OapfPhone ;
1340         inparam.OapfEmail       := p_OapfEmail ;
1341 	inparam.OapfRefNumber   := p_OapfRefNumber;
1342 	inparam.OapfTrxnRef     := p_OapfTrxnRef;
1343 
1344         PMT_UTIL.oraauth(p_baseurl, inparam, outparam);
1345 
1346         /* start workaround :
1347            setting p_OapfOrderId to inparam.OapfOrderId is a workaround so that
1348            indicator variables in c-code are initialized properly, when these
1349            variables are returned to calling c program arzarm.lpc */
1350         p_OapfOrderId           := inparam.OapfOrderId ;
1351         /* end worakround */
1352 
1353         p_OapfTrxnType          := outparam.OapfTrxnType ;
1354         p_OapfStatus            := outparam.OapfStatus ;
1355         p_OapfStatusMsg         := outparam.OapfStatusMsg ;
1356         p_OapfApprovalCode      := outparam.OapfApprovalCode ;
1357         p_OapfRefcode           := outparam.OapfRefcode ;
1358         p_OapfAVScode           := outparam.OapfAVScode ;
1359         p_OapfTrxnDate          := outparam.OapfTrxnDate ;
1360         p_OapfPmtInstrType      := outparam.OapfPmtInstrType ;
1361         p_OapfErrLocation       := outparam.OapfErrLocation ;
1362         p_OapfVendErrCode       := outparam.OapfVendErrCode ;
1363         p_OapfVendErrmsg        := outparam.OapfVendErrmsg ;
1364         p_OapfAcquirer          := outparam.OapfAcquirer ;
1365         p_OapfAuxMsg            := outparam.OapfAuxMsg ;
1366         fnd_file.put_line(FND_FILE.LOG, 'oraauth ()-');
1367 
1368 
1369 END;
1370 
1371 /*
1372    vcrisost :
1373    this is the procedure version used by arzarm.lpc - where
1374    we pass the parameters individually rather than via inparam/outparam
1375 */
1376 procedure oracapture ( p_baseurl        IN varchar2,
1377                 p_OapfOrderId           IN OUT NOCOPY varchar2,
1378                 p_OapfCurr              IN varchar2,
1379                 p_OapfPrice             IN varchar2,
1380                 p_OapfPmtType           IN varchar2,
1381                 p_OapfStoreId           IN varchar2,
1382                 p_OapfTrxnRef           IN varchar2,
1383                 p_OapfStatus            OUT NOCOPY varchar2,
1384                 p_OapfStatusMsg         OUT NOCOPY varchar2, /* NEW for PS 2.0 */
1385                 p_OapfTrxnType          OUT NOCOPY varchar2,
1386                 p_OapfTrxnDate          OUT NOCOPY varchar2,
1387                 p_OapfPmtInstrType      OUT NOCOPY varchar2,
1388                 p_OapfRefcode           OUT NOCOPY varchar2,
1389                 p_OapfErrLocation       OUT NOCOPY varchar2,
1390                 p_OapfVendErrCode       OUT NOCOPY varchar2,
1391                 p_OapfVendErrmsg        OUT NOCOPY varchar2,
1392 		p_OapfCashRecId         IN  VARCHAR2 DEFAULT null) IS
1393 
1394 inparam PMT_UTIL.in_oracapture;
1395 outparam PMT_UTIL.out_oracapture;
1396 
1397 BEGIN
1398 
1399         fnd_file.put_line(FND_FILE.LOG, 'oracapture ()+');
1400         /* vcrisost : put messages to debug 1471726 */
1401         fnd_file.put_line(FND_FILE.LOG, 'PRINTING INPARAM VARIABLES');
1402         arp_standard.debug('PRINTING INPARAM VARIABLES');
1403         arp_standard.debug('inparam.OapfOrderId = ' || p_OapfOrderId);
1404         arp_standard.debug('inparam.OapfCurr    = ' || p_OapfCurr);
1405         arp_standard.debug('inparam.OapfPrice   = ' || p_OapfPrice);
1406         arp_standard.debug('inparam.OapfPmtType = ' || p_OapfPmtType);
1407         arp_standard.debug('inparam.OapfStoreId = ' || p_OapfStoreId);
1408         arp_standard.debug('inparam.OapfTrxnRef = ' || p_OapfTrxnRef);
1409         arp_standard.debug('inparam.OapfCashRecId ' || p_OapfCashRecId);
1410 
1411         inparam.OapfOrderId     := p_OapfOrderId;
1412         inparam.OapfCurr        := p_OapfCurr ;
1413         inparam.OapfPrice       := p_OapfPrice;
1414         inparam.OapfPmtType     := p_OapfPmtType;
1415         inparam.OapfStoreId     := p_OapfStoreId;
1416         inparam.OapfTrxnRef      := p_OapfTrxnRef;
1417         inparam.OapfCashRecId    := p_OapfCashRecId;
1418 
1419         PMT_UTIL.oracapture(p_baseurl, inparam, outparam);
1420 
1421         /* vcrisost : put messages to debug 1471726 */
1422         arp_standard.debug('PRINTING OUTPARAM VARIABLES');
1423         arp_standard.debug('p_OapfOrderId           = ' || outparam.OapfOrderId) ;
1424         arp_standard.debug('p_OapfStatus            = ' || outparam.OapfStatus) ;
1425         arp_standard.debug('p_OapfStatusMsg         = ' || outparam.OapfStatusMsg) ;
1426         arp_standard.debug('p_OapfTrxnType          = ' || outparam.OapfTrxnType) ;
1427         arp_standard.debug('p_OapfTrxnDate          = ' || outparam.OapfTrxnDate) ;
1428         arp_standard.debug('p_OapfPmtInstrType      = ' || outparam.OapfPmtInstrType) ;
1429         arp_standard.debug('p_OapfRefcode           = ' || outparam.OapfRefcode) ;
1430         arp_standard.debug('p_OapfErrLocation       = ' || outparam.OapfErrLocation) ;
1431         arp_standard.debug('p_OapfVendErrCode       = ' || outparam.OapfVendErrCode) ;
1432         arp_standard.debug('p_OapfVendErrmsg        = ' || outparam.OapfVendErrmsg) ;
1433 
1434         /* start workaround :
1435            setting p_OapfOrderId to inparam.OapfOrderId is a workaround so that
1436            indicator variables in c-code are initialized properly, when these
1437            variables are returned to calling c program arzarm.lpc */
1438 
1439         p_OapfOrderId           := inparam.OapfOrderId ;
1440 
1441         /* end worakround */
1442 
1443         p_OapfStatus            := outparam.OapfStatus ;
1444         p_OapfStatusMsg         := outparam.OapfStatusMsg ;
1445         p_OapfTrxnType          := outparam.OapfTrxnType ;
1446         p_OapfTrxnDate          := outparam.OapfTrxnDate ;
1447         p_OapfPmtInstrType      := outparam.OapfPmtInstrType ;
1448         p_OapfRefcode           := outparam.OapfRefcode ;
1449         p_OapfErrLocation       := outparam.OapfErrLocation ;
1450         p_OapfVendErrCode       := outparam.OapfVendErrCode ;
1451         p_OapfVendErrmsg        := outparam.OapfVendErrmsg ;
1452 
1453         fnd_file.put_line(FND_FILE.LOG, 'oracapture ()-');
1454 END;
1455 end PMT_UTIL;