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.

Reply via email to