📄 checkoutevents.java
字号:
HttpSession session = request.getSession();
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);
// load the ProductStore settings
GenericValue productStore = ProductStoreWorker.getProductStore(cart.getProductStoreId(), delegator);
Map callResult = checkOutHelper.processPayment(productStore, userLogin);
// generate any messages required
ServiceUtil.getMessages(request, callResult, null, "<li>", "</li>", "<ul>", "</ul>", null, null);
// determine whether it was a success or failure
return (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_SUCCESS));
}
public static String checkOrderBlacklist(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
ShoppingCart cart = (ShoppingCart) session.getAttribute("shoppingCart");
GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
CheckOutHelper checkOutHelper = new CheckOutHelper(null, delegator, cart);
String result;
Map callResult = checkOutHelper.checkOrderBlacklist(userLogin);
if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {
result = (String)callResult.get(ModelService.ERROR_MESSAGE);
} else {
result = (String)callResult.get(ModelService.SUCCESS_MESSAGE);
}
return result;
}
public static String failedBlacklistCheck(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
ShoppingCart cart = (ShoppingCart) session.getAttribute("shoppingCart");
GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
String result;
// Load the properties store
GenericValue productStore = ProductStoreWorker.getProductStore(cart.getProductStoreId(), delegator);
CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);
Map callResult = checkOutHelper.failedBlacklistCheck(userLogin, productStore);
//Generate any messages required
ServiceUtil.getMessages(request, callResult, null, "<li>", "</li>", "<ul>", "</ul>", null, null);
// wipe the session
session.invalidate();
//Determine whether it was a success or not
if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {
result = (String)callResult.get(ModelService.ERROR_MESSAGE);
request.setAttribute("_ERROR_MESSAGE_", result);
result = "error";
} else {
result = (String)callResult.get(ModelService.ERROR_MESSAGE);
request.setAttribute("_ERROR_MESSAGE_", result);
result = "success";
}
return result;
}
public static String checkExternalPayment(HttpServletRequest request, HttpServletResponse response) {
// warning there can only be ONE payment preference for this to work
// you cannot accept multiple payment type when using an external gateway
GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
String result;
String orderId = (String) request.getAttribute("order_id");
CheckOutHelper checkOutHelper = new CheckOutHelper(null, delegator, null);
Map callResult = checkOutHelper.checkExternalPayment(orderId);
//Generate any messages required
ServiceUtil.getMessages(request, callResult, null, "<li>", "</li>", "<ul>", "</ul>", null, null);
// any error messages have prepared for display, return the type ('error' if failed)
result = (String)callResult.get("type");
return result;
}
public static String finalizeOrderEntry(HttpServletRequest request, HttpServletResponse response) {
ShoppingCart cart = (ShoppingCart) request.getSession().getAttribute("shoppingCart");
GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
Map paramMap = UtilHttp.getParameterMap(request);
Boolean offlinePayments;
String shippingContactMechId = null;
String shippingMethod = null;
String shippingInstructions = null;
String maySplit = null;
String giftMessage = null;
String isGift = null;
String methodType = null;
String checkOutPaymentId = null;
String singleUsePayment = null;
String appendPayment = null;
String mode = request.getParameter("finalizeMode");
Debug.logInfo("FinalizeMode: " + mode, module);
// check the userLogin object
GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
// if null then we must be an anonymous shopper
if (userLogin == null) {
// remove auto-login fields
request.getSession().removeAttribute("autoUserLogin");
request.getSession().removeAttribute("autoName");
}
// set the customer info
if (mode != null && mode.equals("cust")) {
String partyId = (String) request.getAttribute("partyId");
if (partyId != null) {
request.getSession().setAttribute("orderPartyId", partyId);
// no userLogin means we are an anonymous shopper; fake the UL for service calls
if (userLogin == null) {
try {
userLogin = delegator.findByPrimaryKey("UserLogin", UtilMisc.toMap("userLoginId", "anonymous"));
} catch (GenericEntityException e) {
Debug.logError(e, module);
}
if (userLogin != null) {
userLogin.set("partyId", partyId);
}
request.getSession().setAttribute("userLogin", userLogin);
}
}
}
// get the shipping method
shippingContactMechId = request.getParameter("shipping_contact_mech_id");
if (shippingContactMechId == null) {
shippingContactMechId = (String) request.getAttribute("contactMechId");
}
// get the options
shippingMethod = request.getParameter("shipping_method");
shippingInstructions = request.getParameter("shipping_instructions");
maySplit = request.getParameter("may_split");
giftMessage = request.getParameter("gift_message");
isGift = request.getParameter("is_gift");
// payment option; if offline we skip the payment screen
methodType = request.getParameter("paymentMethodType");
// get the payment
checkOutPaymentId = request.getParameter("checkOutPaymentId");
if (checkOutPaymentId == null) {
checkOutPaymentId = (String) request.getAttribute("paymentMethodId");
}
singleUsePayment = request.getParameter("singleUsePayment");
appendPayment = request.getParameter("appendPayment");
boolean isSingleUsePayment = singleUsePayment != null && "Y".equalsIgnoreCase(singleUsePayment) ? true : false;
boolean doAppendPayment = appendPayment != null && "Y".equalsIgnoreCase(appendPayment) ? true : false;
CheckOutHelper checkOutHelper = new CheckOutHelper(dispatcher, delegator, cart);
// get the currency format
String currencyFormat = UtilProperties.getPropertyValue("general.properties", "currency.decimal.format", "##0.00");
DecimalFormat formatter = new DecimalFormat(currencyFormat);
// Set the payment options
Map selectedPaymentMethods = getSelectedPaymentMethods(request);
if (selectedPaymentMethods == null) {
return "error";
}
String billingAccountId = request.getParameter("billingAccountId");
String billingAcctAmtStr = request.getParameter("amount_" + billingAccountId);
Double billingAccountAmt = null;
// parse the amount to a decimal
if (billingAcctAmtStr != null) {
try {
billingAccountAmt = new Double(formatter.parse(billingAcctAmtStr).doubleValue());
} catch (ParseException e) {
Debug.logError(e, module);
request.setAttribute("_ERROR_MESSAGE_", "<li>Invalid amount set for Billing Account #" + billingAccountId);
return "error";
}
}
checkOutHelper.setCheckOutPayment(selectedPaymentMethods, null, billingAccountId, billingAccountAmt);
Map callResult = checkOutHelper.finalizeOrderEntry(mode, shippingContactMechId, shippingMethod, shippingInstructions,
maySplit, giftMessage, isGift, methodType, checkOutPaymentId, isSingleUsePayment, doAppendPayment, paramMap);
// generate any messages required
ServiceUtil.getMessages(request, callResult, null, "<li>", "</li>", "<ul>", "</ul>", null, null);
// determine whether it was a success or not
if (callResult.get(ModelService.RESPONSE_MESSAGE).equals(ModelService.RESPOND_ERROR)) {
return "error";
} else {
// seems a bit suspicious that these properties have slightly different names
offlinePayments = (Boolean)callResult.get("OFFLINE_PAYMENT");
request.setAttribute("OFFLINE_PAYMENT", offlinePayments);
offlinePayments = (Boolean)callResult.get("OFFLINE_PAYMENTS");
request.getSession().setAttribute("OFFLINE_PAYMENTS", offlinePayments);
}
// determine where to direct the browser
String requireCustomer = null;
String requireShipping = null;
String requireOptions = null;
String requirePayment = null;
// these options are not available to anonymous shoppers (security)
if (userLogin != null && !"anonymous".equals(userLogin.getString("userLoginId"))) {
requireCustomer = request.getParameter("finalizeReqCustInfo");
requireShipping = request.getParameter("finalizeReqShipInfo");
requireOptions = request.getParameter("finalizeReqOptions");
requirePayment = request.getParameter("finalizeReqPayInfo");
}
// these are the default values
if (requireCustomer == null)
requireCustomer = "true";
if (requireShipping == null)
requireShipping = "true";
if (requireOptions == null)
requireOptions = "true";
if (requirePayment == null)
requirePayment = "true";
String shipContactMechId = cart.getShippingContactMechId();
String customerPartyId = cart.getPartyId();
String shipmentMethodTypeId = cart.getShipmentMethodTypeId();
List paymentMethodIds = cart.getPaymentMethodIds();
List paymentMethodTypeIds = cart.getPaymentMethodTypeIds();
if (requireCustomer.equalsIgnoreCase("true") && (customerPartyId == null || customerPartyId.equals("_NA_"))) {
return "customer";
}
if (requireShipping.equalsIgnoreCase("true") && shipContactMechId == null) {
return "shipping";
}
if (requireOptions.equalsIgnoreCase("true") && shipmentMethodTypeId == null) {
return "options";
}
if (requirePayment.equalsIgnoreCase("true")) {
if (paymentMethodIds == null || paymentMethodIds.size() == 0) {
if (paymentMethodTypeIds == null || paymentMethodTypeIds.size() == 0) {
return "payment";
}
}
}
if (isSingleUsePayment) {
return "paysplit";
}
if ("SALES_ORDER".equals(cart.getOrderType())) {
return "sales";
} else {
return "po";
}
}
public static String finalizeOrderEntryError(HttpServletRequest request, HttpServletResponse response) {
String finalizePage = request.getParameter("finalizeMode");
if (finalizePage == null || finalizePage.length() == 0) {
return "error";
} else {
return finalizePage;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -