I would think you could put all that code inside a CFLOOP that loops say 5 times.

-if you get a success <cfbreak> out of the loop
-if it fails the first time it tries 4 more times or until successful

That said...2 out of 5 times is totally unacceptable and I'd be riding someones hiney over at LinkPoint ;-)

Cheers

Bryan Stevenson B.Comm.
VP & Director of E-Commerce Development
Electric Edge Systems Group Inc.
t. 250.920.8830
e. [EMAIL PROTECTED]

---------------------------------------------------------
Macromedia Associate Partner
www.macromedia.com
---------------------------------------------------------
Vancouver Island ColdFusion Users Group
Founder & Director
www.cfug-vancouverisland.com
  ----- Original Message -----
  From: Bailey, Neal
  To: CF-Talk
  Sent: Monday, March 22, 2004 2:49 PM
  Subject: RE: Linkpoint API Host not responding problem.

  Yeah I am using their custom tag/dlls to connect to their system. I also
  thought that it should loop a few times before it errors out. I think the
  problem is with the creation of the com object or something, I'm not sure
  though. It seems to respond way to fast like it did not even try. Like I
  said before if I backup and try to process the order again it will work. It
  seem to happen way too often... 2 out of 5 orders will show a "Cannot
  resolve Host error".

  Here is the code that I think is responsible... it pull our store number,
  host and port number from another file.

  <!--- CONNECT TO THE COM OR CREATE IT IF NO CONNECTION EXISTS--->

  <CFTRY>
    <CFOBJECT
          ACTION=""
          CLASS="LpiCom_6_0.LinkPointTxn"
          NAME="LPI_CFX_COM"
          TYPE="COM">

              <!--- ELSE CREATE THE OBJECT --->

  <CFCATCH>
      <CFOBJECT
          ACTION=""
          CLASS="LpiCom_6_0.LinkPointTxn"
          NAME="LPI_CFX_COM"
          TYPE="COM">
  </CFCATCH>
  </CFTRY>

  <!--- SEND THE TRANSACTION USING THE COM --->
              <cfset resp = LPI_CFX_COM.send(keyfile,host,port,outXML)>

  <!--- RETRIEVE THE RESPONSE XML, CREATE A DOC ROOT --->

  <!--- SET THE STANDARD RESPONSE FOR TELECHECK --->
              <cfif listcontainsnocase(outxml, "telecheck", ">")>

  <!--- RESPONSE CONTAINS WHITE SPACE WHICH CAUSES AN ERROR SO TRIM IT --->
                          <CFSET resp = #trim(resp)#>

  <!--- CREDIT CARD RESPONSES NEED A DOC ROOT, WRAP RESPONSE --->
              <cfelse>
                          <CFSET resp = '<response>#resp#</response>'>
              </cfif>

  <!--- SET THE XML DOC IN A VARIABLE --->
              <CFSET XMLResp = XmlParse(resp)>

  <!--- SET THE DOC ROOT TO A VARIABLE --->
              <CFSET rootResp = XMLResp.XmlRoot>

  <!--- USED TO SEE THE XML DOCUMENT STRUCTURE (NOT FOR LIVE SITE) --->
  <!--- <cfdump var=#XMLResp#> --->

  <!--- LOOP THROUGH THE RETURN ELEMENTS --->
              <CFLOOP FROM="1" TO="#arrayLen(rootResp)#" index="i">

  <!--- CHECK IF THE SPECIFIED ELEMENT EXISTS. SET IT'S VALUE --->
  <cfif isDefined('rootResp.r_error')><Cfset r_error =
  "#rootResp[i].r_error.xmltext#"><cfelse><cfset r_error = ""></cfif>
  <cfif isDefined('rootResp.r_approved')><Cfset r_approved =
  "#rootResp[i].r_approved.xmltext#"><cfelse><cfset r_approved = ""></cfif>
  <cfif isDefined('rootResp.r_ordernum')><Cfset r_ordernum =
  "#rootResp[i].r_ordernum.xmltext#"><cfelse><cfset r_ordernum = ""></cfif>
  <cfif isDefined('rootResp.r_code')><Cfset r_code =
  "#rootResp[i].r_code.xmltext#"><cfelse><cfset r_code = ""></cfif>
  <cfif isDefined('rootResp.r_tdate')><Cfset r_tdate =
  "#rootResp[i].r_tdate.xmltext#"><cfelse><cfset r_tdate = ""></cfif>
  <cfif isDefined('rootResp.r_time')><cfset r_time =
  "#rootResp[i].r_time.xmltext#"><cfelse><cfset r_time = ""></cfif>
  <cfif isDefined('rootResp.r_ref')><cfset r_ref =
  "#rootResp[i].r_ref.xmltext#"><cfelse><cfset r_ref=""></cfif>
  <cfif isDefined('rootResp.r_authresponse')><cfset r_authresponse =
  "#rootResp[i].r_authresponse.xmltext#"><cfelse><cfset r_authresponse =
  ""></cfif>
  <cfif isDefined('rootResp.r_message')><cfset r_message =
  "#rootResp[i].r_message.xmltext#"><cfelse><cfset r_message = ""></cfif>
  <cfif isDefined('rootResp.r_avs')><cfset r_avs =
  "#rootResp[i].r_avs.xmltext#"><cfelse><cfset r_avs = ""></cfif>
  <cfif isDefined('rootResp.r_csp')><cfset r_csp =
  "#rootResp[i].r_csp.xmltext#"><cfelse><cfset r_csp = ""></cfif>
  <cfif isDefined('rootResp.r_vpasresponse')><cfset r_vpasresponse=
  "#rootResp[i].r_vpasresponse.xmltext#"><cfelse><cfset r_vpasresponse =
  ""></cfif>
  <cfif isDefined('rootResp.r_score')><cfset r_score =
  "#rootResp[i].r_score.r_providerone.xmltext#"><cfelse><cfset r_score =
  ""></cfif>
  <cfif isDefined('rootResp.r_shipping')><cfset r_shipping =
  "#rootResp[i].r_shipping.xmltext#"><cfelse><cfset r_shipping = ""></cfif>
  <cfif isDefined('apiversion')><cfset r_apiversion =
  "#apiversion#"><cfelse><cfset apiversion = ""></cfif>
  <!--- END THE LOOP --->
              </cfloop>

  Any ideas on what I could do to make it retry again?...

  Thnaks,
  Neal Bailey
  Internet Marketing Manager
  E-mail:  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]
    _____  

  From: Bryan Stevenson [mailto:[EMAIL PROTECTED]
  Sent: Monday, March 22, 2004 12:19 PM
  To: CF-Talk
  Subject: Re: Linkpoint API Host not responding problem.

  Oh ya....doesn't LinkPoint have a custom tag already built for you?  I would
  think that it would return an error code which you could use to inform the
  customer that the payment server is down (not ideal but at least you could
  handle it).  That said there is no way a p[ayment gateway should be down 30
  percent of the time (if they want to stay in business).  I know LinkPoint is
  merging with SharePay and YourPay....but it is associated with Chase
  Manhattan and I would expect top notch service (although I've chatted with
  them and didn't get said service).

  my 2 cents

  Bryan Stevenson B.Comm.
  VP & Director of E-Commerce Development
  Electric Edge Systems Group Inc.
  t. 250.920.8830
  e. [EMAIL PROTECTED]

  ---------------------------------------------------------
  Macromedia Associate Partner
  www.macromedia.com
  ---------------------------------------------------------
  Vancouver Island ColdFusion Users Group
  Founder & Director
  www.cfug-vancouverisland.com
    ----- Original Message -----
    From: Bailey, Neal
    To: CF-Talk
    Sent: Monday, March 22, 2004 10:06 AM
    Subject: Linkpoint API Host not responding problem.

    Hello <cfers>all</cfers>,

    I am having an issue with my credit card merchant gateway, I used the
    Linkpoint API and I have it working great except one little problem. About
    30 percent of the time I seem to get a "cannot resolve host" error. This
    will happen the instance someone places an order or I run a post order
    authentication against the order number. If you go back and run the order
    again it will go through with no problems. It seems like the
    secure.linkpoint.com sites does not respond quickly enough or is just not
    available.

    I was wondering if there is a way to make my processing code re-run if the
    Host is not responding. I was thinking of some type code that would loop
    through for maybe 5 times before it gave an error.

    Or maybe this is an issue with the merchant and they need to fix it... I'm
    not sure what to do or how to make it re-run the card if the host is not
    responding. What do you guys think I should do?.... I would think that the
    com object that it uses would already check for this.

    Thanks,

    Neal Bailey
    Internet Marketing Manager
    E-mail:  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]
    _____
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings]

Reply via email to