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. >
smime.p7s
Description: S/MIME cryptographic signature