Login  Register

Re: worldpay integration

Posted by Iain Mac Donald on Jul 10, 2006; 11:46pm
URL: http://ofbiz.116.s1.nabble.com/worldpay-integration-tp140597p140603.html


I have wasted days trying to get Worldpay and Ofbiz to talk to each
other without success.

I am getting this in the logs

EXCEPTION com.worldpay.select.SelectException: Process failed
Caused By: EXCEPTION com.worldpay.protocols.crypto.CryptoException:
Failed to get keypair generator
Caused By: EXCEPTION com.worldpay.select.SelectException: Select key
generator algorithm not found
Caused By: java.security.NoSuchAlgorithmException: class
cryptix.provider.rsa.BaseRSAKeyPairGenerator configured for
KeyPairGenerator(provider: Cryptix) cannot be acces
sed.

The Tomcat docs suggest this is because the JVM cannot find the JSSE JAR
files. Can that be correct as Tomcat quite happily serves the correct
cert to browsers.

AND

I still think the callback URL isn't correct.

I had a look at SelectRespServlet.java and WorldPayEvents.java.

My understanding is that WorldPayEvents initializes the M_ variables
and
passes them to WorldPay; SelectRespServlet handles the callback and is
passed back the variable contents by WorldPay.

SelectRespServlet is addressed by the callback URL via

https://mysite.com/ecommerce/select

I notice that ofbiz requires various callback data to be returned via
the callback URL, which are initialized in WorldPayEvents:

M_controlPath
M_userLoginId
M_dispatchName
M_delegatorName
M_webSiteId
M_localLocale
M_confirmTemplate

SelectRespServlet requests those parameters (using the same name), so
presumably the callback URL should be defined as

https://mysite.com/ecommerce/select?M_controlPath=<wpdisplay
item=M_controlPath>


But what about the other M_ variables?
And what about

M_notifyEmail
M_confirmEmail

which are requested in SelectRespServlet but not initialized or used
anywhere else?





On Sat, 2006-07-08 at 21:13 -0700, BJ Freeman wrote:

> ok the M_ is used to pass back data to ofbiz. it is not  data processed
> by world pay.
> The URL for the pass back is already created.
>
> since each product store used diffenent settings, I don't see the need
> for m_somesetting_1
>
> hope that helps
>
>
> Iain Mac Donald sent the following on 7/8/2006 2:54 PM:
> > I think in about 6 months I will understand your reply :)
> > Currently I am at the bottom of a very steep learning curve.
> >
> > I could see from your previous post the URL needs to include the
> > variable M_controlpath. However, what I don't know is how I express that
> > URL so that Ofbiz understands it.
> >
> > Thanks in anticipation.
> >
> >
> > On Sat, 2006-07-08 at 11:28 -0700, BJ Freeman wrote:
> >> I have not used Worldpay, but have others.
> >>  From the Documentation from world pay M_ has a Different meaning the
> >> MC_. both are world pay defined.
> >> http://support.worldpay.com/kb/reference/faqs/callback_faqs.html
> >>
> >>
> >> here is sample code from world pay
> >> http://support.worldpay.com/integrations/invisible/iig/pro.java
> >> that shows how to send with different iinstallation and merchant ID's
> >>
> >>
> >> application/accounting/src/org/ofbiz/thirdparty/worldpay/SelectRespServlet.java
> >> and WorldPayEvents how the send-back (call back) is handled,
> >> and  shows the properties and how there are used.
> >>
> >> you can find reference to
> >> _CONTROL_PATH_ (       linkParms.setValue("M_controlPath",
> >> (String)request.getAttribute("_CONTROL_PATH_"));
> >> )
> >> in
> >> ControlServlet.java
> >> and
> >> makeLink in RequestHandler.java.
> >> this will let you figure out what the real address would be.
> >>
> >>
> >> so after all that the answer is:
> >> ofbiz code is setup to handle accounts from different ProductStore.
> >>          GenericValue paymentConfig =
> >> ProductStoreWorker.getProductStorePaymentSetting(delegator,
> >> productStore.getString("productStoreId"), "EXT_WORLDPAY", null, true);
> >>
> >> so based on the parms for that productStore, the URL is created.
> >> in this case M_ is passed back to ofbiz and handled in
> >> SelectRespServlet.java
> >>
> >>
> >>
> >>
> >> Iain Mac Donald sent the following on 7/8/2006 10:16 AM:
> >>> Hello BJ
> >>>
> >>>
> >>> On Sat, 2006-07-08 at 07:35 -0700, BJ Freeman wrote:
> >>>> I believe andy did some work on it. it should also be in the emails
> >>>> archives.
> >>> I had seen your contributions in the thread, I referenced before, but I
> >>> am probably being a bit dim
> >>>
> >>> <quote>
> >>> We don't have to change the code.
> >>> but the World pay setup for Call back has to be initialize
> >>> the instruction are under
> >>> "Can I have more than one callback URL per installation ID? "
> >>> Finally, on the Customer Management System, you will need to set your
> >>> Callback URL to include the name of the variable using wpdisplay, e.g.:
> >>> <wpdisplay item=M_controlpath>
> >>> the variable used by ofbiz is
> >>> M_controlpath
> >>> </quote>
> >>>
> >>> Are you saying that all I need to do is set the callback URL to...
> >>>
> >>> http://mysite.com:8080/ecommerce/select[something else here]
> >>>
> >>> I am not sure what the [something else here] should be
> >>>
> >>>
> >>>
> >>>> NOt sure if this was pre Jira or not. so you might check the Jira list
> >>>> as well.
> >>> Didn't find anything here.
> >>>
> >>>
> >>>> Iain Mac Donald sent the following on 7/8/2006 4:32 AM:
> >>>>> I have just come across this thread
> >>>>> http://lists.ofbiz.org/pipermail/users/2005-April/007461.html
> >>>>> and I am wondering if these issues have been resolved.
> >>>>>
> >>>>> It seems the callback feature isn't working which in turn means the
> >>>>> initialise from Worldpay fails. The currency files and Worldpay certs
> >>>>> seem to get written to the correct places but because the callback fails
> >>>>> the loop isn't closed.
> >>>>>
> >>>>> Anybody using Worldpay and Ofbiz successfully?
> >

--
Regards,
Iain.