no sorry Scott, this option is only for this payment method, other payment methods used: paypal, google.
One could sure have this setting at a higher level, however still it needs an override at a lower level too..... I am sorry, but this is all I can say and do not have more time to spend on this. Regards, Hans On Thu, 2011-02-17 at 22:52 +1300, Scott Gray wrote: > But you're typically only using one payment processor per store right? So > the store settings should be sufficient, but even if not this should really > be solved in a more generic way with some sort of setting at a higher level. > > Also it looks like your using the deprecated payment.properties for > configuration instead of the PaymentGatewayConfig entities. > > Regards > Scott > > On 17/02/2011, at 10:28 PM, Hans Bakker wrote: > > > This feature is not always for all paymentmethods for every order. > > > > Certain payment processors can be easily checked and approved afterwards > > with the payment processor while others do not have this feature. > > > > Regards, > > Hans > > > > > > On Thu, 2011-02-17 at 22:11 +1300, Scott Gray wrote: > >> Hi Hans, > >> > >> Isn't that more of an order related setting rather than anything the > >> payment gateway needs to worry about? Surely we already have processes > >> for this sort of thing? > >> > >> Also, we're going to end up with a hell of a mess if we keep putting > >> payment processor specific code in the order logic. > >> > >> Regards > >> Scott > >> > >> On 17/02/2011, at 7:57 PM, [email protected] wrote: > >> > >>> Author: hansbak > >>> Date: Thu Feb 17 06:57:51 2011 > >>> New Revision: 1071517 > >>> > >>> URL: http://svn.apache.org/viewvc?rev=1071517&view=rev > >>> Log: > >>> update to cybersource payment gateway: added a properties setting that > >>> orders are still accepted but put into the created stage when a credit > >>> card fails authorisation. The default is the current setting: order is > >>> not created > >>> > >>> Modified: > >>> ofbiz/trunk/applications/accounting/config/payment.properties > >>> > >>> ofbiz/trunk/applications/accounting/servicedef/services_paymentmethod.xml > >>> > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java > >>> > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/cybersource/IcsPaymentServices.java > >>> > >>> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java > >>> > >>> Modified: ofbiz/trunk/applications/accounting/config/payment.properties > >>> URL: > >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/payment.properties?rev=1071517&r1=1071516&r2=1071517&view=diff > >>> ============================================================================== > >>> --- ofbiz/trunk/applications/accounting/config/payment.properties > >>> (original) > >>> +++ ofbiz/trunk/applications/accounting/config/payment.properties Thu Feb > >>> 17 06:57:51 2011 > >>> @@ -118,6 +118,12 @@ payment.cybersource.ignoreAvs=false > >>> # AVS Decline Codes -- May not be supported any longer > >>> #payment.cybersource.avsDeclineCodes= > >>> > >>> +# Ignore status of cybersource transaction reply (Y|N) (if cybersource > >>> response transaction status not equals "ACCEPT" then OFBiz will still > >>> create the order but in status 'created'. > >>> +# default N = Don't create order if cybersource reported transaction > >>> status not equals "ACCEPT". > >>> +payment.cybersource.ignoreStatus=N > >>> +# It happens pretty often that a creditcard is rejected for not valid > >>> reasons, one can check to Cybersource fraud queue and after that the > >>> order can still be rejected or approved. > >>> + > >>> + > >>> ############################################ > >>> # ClearCommerce Configuration > >>> ############################################ > >>> > >>> Modified: > >>> ofbiz/trunk/applications/accounting/servicedef/services_paymentmethod.xml > >>> URL: > >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_paymentmethod.xml?rev=1071517&r1=1071516&r2=1071517&view=diff > >>> ============================================================================== > >>> --- > >>> ofbiz/trunk/applications/accounting/servicedef/services_paymentmethod.xml > >>> (original) > >>> +++ > >>> ofbiz/trunk/applications/accounting/servicedef/services_paymentmethod.xml > >>> Thu Feb 17 06:57:51 2011 > >>> @@ -267,6 +267,7 @@ under the License. > >>> <attribute name="errors" type="Boolean" mode="OUT" > >>> optional="false"/> > >>> <attribute name="messages" type="List" mode="OUT" optional="true"/> > >>> <attribute name="processAmount" type="BigDecimal" mode="OUT" > >>> optional="true"/> > >>> + <attribute name="authCode" type="String" mode="OUT" > >>> optional="true"/> > >>> </service> > >>> > >>> <service name="authOrderPayments" engine="java" > >>> @@ -276,6 +277,7 @@ under the License. > >>> <attribute name="processResult" type="String" mode="OUT" > >>> optional="false"/> > >>> <attribute name="authResultMsgs" type="List" mode="OUT" > >>> optional="true"/> > >>> <attribute name="reAuth" type="Boolean" mode="IN" optional="true"/> > >>> + <attribute name="authCode" type="String" mode="OUT" > >>> optional="true"/> > >>> </service> > >>> > >>> <service name="releaseOrderPayments" engine="java" > >>> > >>> Modified: > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java > >>> URL: > >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java?rev=1071517&r1=1071516&r2=1071517&view=diff > >>> ============================================================================== > >>> --- > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java > >>> (original) > >>> +++ > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/payment/PaymentGatewayServices.java > >>> Thu Feb 17 06:57:51 2011 > >>> @@ -201,6 +201,7 @@ public class PaymentGatewayServices { > >>> results.put("processAmount", thisAmount); > >>> results.put("finished", Boolean.TRUE); > >>> results.put("errors", Boolean.FALSE); > >>> + results.put("authCode", > >>> authPaymentResult.get("authCode")); > >>> return results; > >>> } else { > >>> boolean needsNsfRetry = > >>> needsNsfRetry(orderPaymentPreference, authPaymentResult, delegator); > >>> @@ -399,6 +400,9 @@ public class PaymentGatewayServices { > >>> continue; > >>> } > >>> > >>> + // add authorization code to the result > >>> + result.put("authCode", results.get("authCode")); > >>> + > >>> if (ServiceUtil.isError(results)) { > >>> hadError += 1; > >>> messages.add("Could not authorize OrderPaymentPreference > >>> [" + paymentPref.getString("orderPaymentPreferenceId") + "] for order [" > >>> + orderId + "]: " + results.get(ModelService.ERROR_MESSAGE)); > >>> > >>> Modified: > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/cybersource/IcsPaymentServices.java > >>> URL: > >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/cybersource/IcsPaymentServices.java?rev=1071517&r1=1071516&r2=1071517&view=diff > >>> ============================================================================== > >>> --- > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/cybersource/IcsPaymentServices.java > >>> (original) > >>> +++ > >>> ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/thirdparty/cybersource/IcsPaymentServices.java > >>> Thu Feb 17 06:57:51 2011 > >>> @@ -536,12 +536,17 @@ public class IcsPaymentServices { > >>> > >>> private static void processAuthResult(Map<String, Object> reply, > >>> Map<String, Object> result) { > >>> String decision = getDecision(reply); > >>> + String checkModeStatus = > >>> UtilProperties.getPropertyValue("payment.properties", > >>> "payment.cybersource.ignoreStatus"); > >>> if ("ACCEPT".equalsIgnoreCase(decision)) { > >>> result.put("authCode", > >>> reply.get("ccAuthReply_authorizationCode")); > >>> result.put("authResult", Boolean.TRUE); > >>> } else { > >>> result.put("authCode", decision); > >>> - result.put("authResult", Boolean.FALSE); > >>> + if ("N".equals(checkModeStatus)) { > >>> + result.put("authResult", Boolean.FALSE); > >>> + } else { > >>> + result.put("authResult", Boolean.TRUE); > >>> + } > >>> // TODO: based on reasonCode populate the following flags as > >>> applicable: resultDeclined, resultNsf, resultBadExpire, > >>> resultBadCardNumber > >>> } > >>> > >>> > >>> Modified: > >>> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java > >>> URL: > >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1071517&r1=1071516&r2=1071517&view=diff > >>> ============================================================================== > >>> --- > >>> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java > >>> (original) > >>> +++ > >>> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java > >>> Thu Feb 17 06:57:51 2011 > >>> @@ -1067,9 +1067,27 @@ public class CheckOutHelper { > >>> > >>> // set the order and item status to approved > >>> if (autoApproveOrder) { > >>> - boolean ok = > >>> OrderChangeHelper.approveOrder(dispatcher, userLogin, orderId, > >>> manualHold); > >>> - if (!ok) { > >>> - throw new GeneralException("Problem with > >>> order change; see above error"); > >>> + List<GenericValue> > >>> productStorePaymentSettingList = > >>> delegator.findByAnd("ProductStorePaymentSetting", > >>> UtilMisc.toMap("productStoreId", > >>> productStore.getString("productStoreId"), "paymentMethodTypeId", > >>> "CREDIT_CARD", "paymentService", "cyberSourceCCAuth")); > >>> + if (productStorePaymentSettingList.size() > 0) { > >>> + String decision = (String) > >>> paymentResult.get("authCode"); > >>> + if (UtilValidate.isNotEmpty(decision)) { > >>> + if ("ACCEPT".equalsIgnoreCase(decision)) > >>> { > >>> + boolean ok = > >>> OrderChangeHelper.approveOrder(dispatcher, userLogin, orderId, > >>> manualHold); > >>> + if (!ok) { > >>> + throw new > >>> GeneralException("Problem with order change; see above error"); > >>> + } > >>> + } > >>> + } else { > >>> + boolean ok = > >>> OrderChangeHelper.approveOrder(dispatcher, userLogin, orderId, > >>> manualHold); > >>> + if (!ok) { > >>> + throw new GeneralException("Problem > >>> with order change; see above error"); > >>> + } > >>> + } > >>> + } else { > >>> + boolean ok = > >>> OrderChangeHelper.approveOrder(dispatcher, userLogin, orderId, > >>> manualHold); > >>> + if (!ok) { > >>> + throw new GeneralException("Problem with > >>> order change; see above error"); > >>> + } > >>> } > >>> } > >>> } else if (authResp.equals("ERROR")) { > >>> > >>> > >> > > > > -- > > Ofbiz on twitter: http://twitter.com/apache_ofbiz > > Myself on twitter: http://twitter.com/hansbak > > Antwebsystems.com: Quality services for competitive rates. > > > -- Ofbiz on twitter: http://twitter.com/apache_ofbiz Myself on twitter: http://twitter.com/hansbak Antwebsystems.com: Quality services for competitive rates.
