📄 ccpaymentservices.java
字号:
Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String authAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("processAmount", new Double(Double.parseDouble(authAmountStr) / 100)); } else { result.put("authResult", Boolean.valueOf(false)); result.put("processAmount", Double.valueOf("0.00")); } result.put("authRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("authFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("authMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); // AVS String avsCode = UtilXml.childElementValue(procResponseElement, "AvsDisplay"); if (UtilValidate.isNotEmpty(avsCode)) { result.put("avsCode", avsCode); } // Fraud score Element fraudInfoElement = UtilXml.firstChildElement(orderFormElement, "FraudInfo"); if (fraudInfoElement != null) { result.put("scoreCode", UtilXml.childElementValue(fraudInfoElement, "TotalScore")); } List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static Map processCreditResponse(Document responseDocument) { Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); Element transactionElement = UtilXml.firstChildElement(orderFormElement, "Transaction"); Element procResponseElement = UtilXml.firstChildElement(transactionElement, "CardProcResp"); Map result = ServiceUtil.returnSuccess(); String errorCode = UtilXml.childElementValue(procResponseElement, "CcErrCode"); if ("1".equals(errorCode)) { result.put("creditResult", Boolean.valueOf(true)); result.put("creditCode", UtilXml.childElementValue(transactionElement, "AuthCode")); Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String creditAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("creditAmount", new Double(Double.parseDouble(creditAmountStr) / 100)); } else { result.put("creditResult", Boolean.valueOf(false)); result.put("creditAmount", Double.valueOf("0.00")); } result.put("creditRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("creditFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("creditMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static Map processCaptureResponse(Document responseDocument) { Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); Element transactionElement = UtilXml.firstChildElement(orderFormElement, "Transaction"); Element procResponseElement = UtilXml.firstChildElement(transactionElement, "CardProcResp"); Map result = ServiceUtil.returnSuccess(); String errorCode = UtilXml.childElementValue(procResponseElement, "CcErrCode"); if ("1".equals(errorCode)) { result.put("captureResult", Boolean.valueOf(true)); result.put("captureCode", UtilXml.childElementValue(transactionElement, "AuthCode")); Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String captureAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("captureAmount", new Double(Double.parseDouble(captureAmountStr) / 100)); } else { result.put("captureResult", Boolean.valueOf(false)); result.put("captureAmount", Double.valueOf("0.00")); } result.put("captureRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("captureFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("captureMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static Map processReleaseResponse(Document responseDocument) { Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); Element transactionElement = UtilXml.firstChildElement(orderFormElement, "Transaction"); Element procResponseElement = UtilXml.firstChildElement(transactionElement, "CardProcResp"); Map result = ServiceUtil.returnSuccess(); String errorCode = UtilXml.childElementValue(procResponseElement, "CcErrCode"); if ("1".equals(errorCode)) { result.put("releaseResult", Boolean.valueOf(true)); result.put("releaseCode", UtilXml.childElementValue(transactionElement, "AuthCode")); Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String releaseAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("releaseAmount", new Double(Double.parseDouble(releaseAmountStr) / 100)); } else { result.put("releaseResult", Boolean.valueOf(false)); result.put("releaseAmount", Double.valueOf("0.00")); } result.put("releaseRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("releaseFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("releaseMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static Map processRefundResponse(Document responseDocument) { Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); Element transactionElement = UtilXml.firstChildElement(orderFormElement, "Transaction"); Element procResponseElement = UtilXml.firstChildElement(transactionElement, "CardProcResp"); Map result = ServiceUtil.returnSuccess(); String errorCode = UtilXml.childElementValue(procResponseElement, "CcErrCode"); if ("1".equals(errorCode)) { result.put("refundResult", Boolean.valueOf(true)); result.put("refundCode", UtilXml.childElementValue(transactionElement, "AuthCode")); Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String refundAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("refundAmount", new Double(Double.parseDouble(refundAmountStr) / 100)); } else { result.put("refundResult", Boolean.valueOf(false)); result.put("refundAmount", Double.valueOf("0.00")); } result.put("refundRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("refundFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("refundMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static Map processReAuthResponse(Document responseDocument) { Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); Element transactionElement = UtilXml.firstChildElement(orderFormElement, "Transaction"); Element procResponseElement = UtilXml.firstChildElement(transactionElement, "CardProcResp"); Map result = ServiceUtil.returnSuccess(); String errorCode = UtilXml.childElementValue(procResponseElement, "CcErrCode"); if ("1".equals(errorCode)) { result.put("reauthResult", Boolean.valueOf(true)); result.put("reauthCode", UtilXml.childElementValue(transactionElement, "AuthCode")); Element currentTotalsElement = UtilXml.firstChildElement(transactionElement, "CurrentTotals"); Element totalsElement = UtilXml.firstChildElement(currentTotalsElement, "Totals"); String reauthAmountStr = UtilXml.childElementValue(totalsElement, "Total"); result.put("reauthAmount", new Double(Double.parseDouble(reauthAmountStr) / 100)); } else { result.put("reauthResult", Boolean.valueOf(false)); result.put("reauthAmount", Double.valueOf("0.00")); } result.put("reauthRefNum", UtilXml.childElementValue(orderFormElement, "Id")); result.put("reauthFlag", UtilXml.childElementValue(procResponseElement, "Status")); result.put("reauthMessage", UtilXml.childElementValue(procResponseElement, "CcReturnMsg")); List messages = getMessageList(responseDocument); if (UtilValidate.isNotEmpty(messages)) { result.put("internalRespMsgs", messages); } return result; } private static List getMessageList(Document responseDocument) { List messageList = new ArrayList(); Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element messageListElement = UtilXml.firstChildElement(engineDocElement, "MessageList"); List messageElementList = UtilXml.childElementList(messageListElement, "Message"); if (UtilValidate.isNotEmpty(messageElementList)) { for (Iterator i = messageElementList.iterator(); i.hasNext();) { Element messageElement = (Element) i.next(); int severity = 0; try { severity = Integer.parseInt(UtilXml.childElementValue(messageElement, "Sev")); } catch (NumberFormatException nfe) { Debug.logError("Error parsing message severity: " + nfe.getMessage(), module); severity = 9; } String message = "[" + UtilXml.childElementValue(messageElement, "Audience") + "] " + UtilXml.childElementValue(messageElement, "Text") + " (" + severity + ")"; messageList.add(message); } } return messageList; } private static int getMessageListMaxSev(Document responseDocument) { int maxSev = 0; Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); Element messageListElement = UtilXml.firstChildElement(engineDocElement, "MessageList"); String maxSevStr = UtilXml.childElementValue(messageListElement, "MaxSev"); if (UtilValidate.isNotEmpty(maxSevStr)) { try { maxSev = Integer.parseInt(maxSevStr); } catch (NumberFormatException nfe) { Debug.logError("Error parsing MaxSev: " + nfe.getMessage(), module); maxSev = 9; } } return maxSev; } private static String getReferenceNum(Document responseDocument) { String referenceNum = null; Element engineDocElement = UtilXml.firstChildElement(responseDocument.getDocumentElement(), "EngineDoc"); if (engineDocElement != null) { Element orderFormElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); if (orderFormElement != null) { referenceNum = UtilXml.childElementValue(orderFormElement, "Id"); } } return referenceNum; } private static Document buildPrimaryTxRequest(Map context, String type, Double amount, String refNum) { String paymentConfig = (String) context.get("paymentConfig"); if (UtilValidate.isEmpty(paymentConfig)) { paymentConfig = "payment.properties"; } Document requestDocument = createRequestDocument(paymentConfig); Element engineDocElement = UtilXml.firstChildElement(requestDocument.getDocumentElement(), "EngineDoc"); Element orderFormDocElement = UtilXml.firstChildElement(engineDocElement, "OrderFormDoc"); // add the reference number as a comment UtilXml.addChildElementValue(orderFormDocElement, "Comments", refNum, requestDocument); Element consumerElement = UtilXml.addChildElement(orderFormDocElement, "Consumer", requestDocument); // email address GenericValue billToEmail = (GenericValue) context.get("billToEmail"); if (billToEmail != null) { UtilXml.addChildElementValue(consumerElement, "Email", billToEmail.getString("infoString"), requestDocument); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -