That's really not good enough, but I'm not going to waste my time arguing with 
you.

Regards
Scott

On 17/02/2011, at 11:00 PM, Hans Bakker wrote:

> 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, hans...@apache.org 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.
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to