package com.xxxxx.myapi;
import javax.servlet.http.HttpSession;
import javax.xml.xpath.*;
import java.net.*;
import java.io.*;
import org.xml.sax.*;
/* SAMPLE XML:
<myapi>
<ERROR_CODE>0</ERROR_CODE>
<ERROR_MESSAGE>SUCCESS</ERROR_MESSAGE>
<PAN_LENGTH>16</PAN_LENGTH>
<ISSUE_NR_LENGTH>0</ISSUE_NR_LENGTH>
<START_DATE>N</START_DATE>
<SCHEME_LETTER>V</SCHEME_LETTER>
<SCHEME_NAME>Visa</SCHEME_NAME>
<PROCESSING_REQUIREMENT>0</PROCESSING_REQUIREMENT>
<CRM_PAYMENT_TYPE>VISA</CRM_PAYMENT_TYPE>
<CREDIT_OR_DEBIT>CREDIT</CREDIT_OR_DEBIT>
<CONTINUITY>CONTINUOUS</CONTINUITY>
</myapi>
*/
public class myapi extends CallOutAction {
protected String xmpCallOutExecute(HttpSession session, Object[] args)
throws Exception {
String sXMLResponse = "";
/* -----------------------------------------------------------------
CODE HERE TO CALL HTTP API THAT RETURNS AN XML DOC IN A String OBJECT
SIMILAR TO THAT SHOWN IN THE EXAMPLE ABOVE, THIS IS STORED IN
sXMLResponse
----------------------------------------------------------------- */
// DECODE RESPONSE
try {
// CREATE NEW INSTANCES OF XPATH FACTORY OBJECT
XPathFactory factory = XPathFactory.newInstance();
XPath XPathObject = factory.newXPath();
// COLLECT DATA FROM XML RESPONSE
setResult(session, outResultCode, getXMLValue(sXMLResponse, XPathObject, "/myapi/ERROR_CODE"));
setResult(session, outErrorMessage, getXMLValue(sXMLResponse, XPathObject, "/myapi/ERROR_MESSAGE"));
setResult(session, outCardLength, getXMLValue(sXMLResponse, XPathObject, "/myapi/PAN_LENGTH"));
setResult(session, outIssueNumberLength, getXMLValue(sXMLResponse, XPathObject, "/myapi/ISSUE_NR_LENGTH"));
setResult(session, outRequireStartDate, getXMLValue(sXMLResponse, XPathObject, "/myapi/START_DATE"));
setResult(session, outSchemeLetter, getXMLValue(sXMLResponse, XPathObject, "/myapi/SCHEME_LETTER"));
setResult(session, outSchemeName, getXMLValue(sXMLResponse, XPathObject, "/myapi/SCHEME_NAME"));
setResult(session, outCreditDebit, getXMLValue(sXMLResponse, XPathObject, "/myapi/CREDIT_OR_DEBIT"));
setResult(session, outContinuity, getXMLValue(sXMLResponse, XPathObject, "/myapi/CONTINUITY"));
} catch (Exception e) {
log.error("MYAPI IDENTIFY FAILED [PARSE XML RESPONSE ERROR]: " + e.getMessage(), session);
return fwdFail;
}
return fwdSuccess;
}
private String getXMLValue(String sXMLResponse, XPath XPathObject, String sXPath)
throws XPathExpressionException {
// CREATE INPUT SOURCE
StringReader sr = new StringReader(sXMLResponse);
InputSource isXML = new InputSource(sr);
// CREATE XPATH EXPRESSION
XPathExpression xpeExpr = XPathObject.compile(sXPath);
// RETURN RESULT
return xpeExpr.evaluate(isXML);
}
}
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
by: Ben00GoldenPosted on 2009-07-22 at 03:38:59ID: 24913144
No response... so increasing points!