[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;