CFHTTP/PayPal SetExpressCheckout Api

I am slowly but surely getting to grips with PayPal integration. I am trying to connect to their SetExpressCheckout API
I have a CFHTTP set up as a GET (also tried post)
It manages to authenticate me, but as soon as I give the CFHTTP a NAME="test_paypal" for example along with DELIMITER="&", it gives me a problem.
It says that the first variable returned which is TOKEN is an invalid name, it looks like this is a reserved name in CF?
I see this and a few other variables that I need using CFHTTP.FILECONTENT
Is there another way to correctly read all the variables returned without running into this issue?
Btw Any developers out there interested in working on this for me please let me know, I'll be on this for a lifetime at this rate!
Thanks
Mark

Hi Ian,
Here is the code, and the server response that I get. If I try to use NAME= , it just goes into invalid variable for TOKEN
<CFHTTP URL="#serverURL#" METHOD="post" THROWONERROR="YES" delimiter="&" >
<CFHTTPPARAM NAME="METHOD" VALUE="SetExpressCheckout" TYPE="FormField"
ENCODED="YES">
<CFHTTPPARAM NAME="USER" VALUE="#APIUserName#" TYPE="FormField" ENCODED="YES">
<CFHTTPPARAM NAME="PWD" VALUE="#APIPassword#" TYPE="FormField" ENCODED="YES">
<CFHTTPPARAM NAME="SIGNATURE" VALUE="#APISignature#" TYPE="FormField"
ENCODED="YES">
<CFHTTPPARAM NAME="VERSION" VALUE="#version#" TYPE="FormField" ENCODED="YES">
<CFHTTPPARAM NAME="AMT" VALUE="1.00" TYPE="FormField" ENCODED="YES">
<CFHTTPPARAM NAME="RETURNURL" VALUE="http://www.xxxxxxxxxxx.com/buy.cfm"
TYPE="FormField" ENCODED="YES">
<CFHTTPPARAM NAME="CANCELURL" VALUE="http://www.xxxxxxxxxxxxxx.com"
TYPE="FormField" ENCODED="YES">
</CFHTTP>
<CFOUTPUT>
#cfhttp.fileContent#
</CFOUTPUT>
server gives
TOKEN=EC%2d5HNxxxxxxxxxxxxxT&TIMESTAMP=2009%2d09%2d02T20%3a50%3a33Z&CORRELATIONID=52f09a09 72424&ACK=Success&VERSION=59%2e0&BUILD=000000
Now if I add the NAME, I get
The web site you are  accessing has experienced an unexpected error.
Please contact the website  administrator.
The following information is meant for the website developer for  debugging purposes.
Error Occurred While Processing Request
The column  name TOKEN=EC%2d5T01xxxxxxxxxx42G is invalid.
Column names must be valid variable  names. They must start with a letter and can only include letters, numbers, and  underscores.
The  error occurred in D:\ACS\paypal\index.cfm: line 27
25 : <CFHTTPPARAM NAME="RETURNURL" VALUE="http://www.xxxxxxxxxxx.com/buy.cfm" TYPE="FormField" ENCODED="YES">
26 :
27 : <CFHTTPPARAM NAME="CANCELURL" VALUE="http://www.xxxxxxxxxxx.com" TYPE="FormField" ENCODED="YES">
28 :
29 :

Similar Messages

  • This CFHTTP works under CF5 but not CF7

    Hi,
    Can some one explains to me why this code works under CF5,
    the page is returned in fileContent, but under CF7, the fileContent
    only contains "connection failure", although the status is reported
    as "200 OK".
    Also, i'd appreciate if someone could test it under CF8 and
    tell mes if the page is returned.
    Thanks.

    Hi everyone, I’m experiencing a similar prob but find
    that your suggested solutions don’t seem to work for me.
    On my remoteserever (CF7.02). it returns 408 Request Time-out
    no matter what I do. It just never connects. When submitted from my
    local server (cf8 developer) I get connected everytime. I have a
    friend with the same host (on a different server) and he has no
    probs cfttp’ing to this url with the same code.
    <cfhttp
    url="
    http://api.clickatell.com/http/sendmsg"
    resolveurl="false"
    timeout="5"
    method="post"
    >
    <cfhttpparam type="formfield" name="api_id"
    value="9999999">
    <cfhttpparam type="formfield" name="user"
    value="aaaaaaa">
    <cfhttpparam type="formfield" name="password"
    value="xxxxxx">
    <cfhttpparam type="formfield" name="from"
    value="61400000000">
    <cfhttpparam type="formfield" name="to"
    value="27999100000">
    </cfhttp>
    I’m not sure if it’s a compression issue or not.
    I tried
    <cfhttp
    url="
    http://api.clickatell.com/http/sendmsg"
    resolveurl="false"
    timeout="5"
    method="post"
    >
    <cfhttpparam type="Header" name="Accept-Encoding"
    value="deflate;q=0">
    <cfhttpparam type="Header" name="TE"
    value="deflate;q=0">
    <cfhttpparam type="formfield" name="api_id"
    value="9999999">
    <cfhttpparam type="formfield" name="user"
    value="aaaaaaa">
    <cfhttpparam type="formfield" name="password"
    value="xxxxxx">
    <cfhttpparam type="formfield" name="from"
    value="61400000000">
    <cfhttpparam type="formfield" name="to"
    value="27999100000">
    </cfhttp>
    AND
    <cfhttp
    url="
    http://api.clickatell.com/http/sendmsg"
    resolveurl="false"
    timeout="5"
    method="post"
    >
    <cfhttpparam type="header" name="Accept-Encoding"
    value="*" />
    <cfhttpparam type="Header" name="TE"
    value="deflate;q=0">
    <cfhttpparam type="formfield" name="api_id"
    value="9999999">
    <cfhttpparam type="formfield" name="user"
    value="aaaaaaa">
    <cfhttpparam type="formfield" name="password"
    value="xxxxxx">
    <cfhttpparam type="formfield" name="from"
    value="61400000000">
    <cfhttpparam type="formfield" name="to"
    value="27999100000">
    </cfhttp>
    As per
    http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729/
    and
    your suggestions only to note that none of these suggestions
    permitted a successful connection from my remote host. They all
    connect immediately from my local host.
    I also noted Dan’s quote:
    “After some more testing, it appears CFMX 7 reports the
    user agent string of "CFSCHEDULE" and not "ColdFusion". This means
    you should also add the "CFSCHEDULE" string along with the string
    "ColdFusion" to your MIME type exceptions list. “
    From:
    http://blog.pengoworks.com/index.cfm/2006/3/13/CFHTTP-Connection-Failures-issues-with-Gzip
    I’m not sure of the syntax to do this or if the GZIP
    stuff is even relevant to my server. (Yep, I’m with Godaddy)
    Anyone???

  • PayPal integration using SOAP messages

    Hello,
    for a integration scenario we want to call a PayPal SOAP API as described in https://www.x.com/docs/DOC-1244.
    The PayPal safety requirements are fullfilled by giving a Username, Password and Signature in the SOAP Header:
    <SOAP-ENV:Header>     
      <RequesterCredentials xmlns=u201Durn:ebay:api:PayPalAPIu201D xsi:type=u201Debl:CustomSecurityHeaderTypeu201D>          
       <Credentials xmlns=u201Durn:ebay:apis:eBLBaseComponentsu201D xsi:type=u201Debl:UserIdPasswordTypeu201D>                       
        <Username>api_username</Username>               
        <Password>api_password</Password>              
        <Signature>api_signature</Signature>               
        <Subject>authorizing_account_emailaddress</Subject>         
       </Credentials>    
      </RequesterCredentials>
    </SOAP-ENV:Header>
    I have given the three values as Adapter-Specific Message Attributes filled by UDF in Message Mapping.
    The filled values are also visible in monitoring in section DynamicConfiguration.
    SOAP Adapter: http://s3.directupload.net/file/d/2127/r8y4aywt_jpg.htm
    Monitoring: http://s5.directupload.net/file/d/2127/cqvfds35_jpg.htm
    But PayPal responded:
    Authentication/Authorization Failed
    You do not have permissions to make this API call
    My credentials are ok. I have tested it within the PayPal NVP API Tester: http://www.shopsandbox.de/PayPal/Refund/ .
    How do I have to manipulate the SOAP header for a successful SOAP API call?
    Is it necessary also to insert the nodes ?
    If yes, how?
    Thanks in advance,
    André

    Hi,
    I´ve created the whole SOAP message in Message Mapping and changed the SOAP receiver adapter sending the message without envelope. But the response is:
    ADAPTER.HTTP_EXCEPTION
    HTTP 500 Internal Server Error
    <?xml version="1.0" encoding="UTF-8"?>
    <Envelope>
    <Header>
      <RequesterCredentials>
       <Credentials>
         <Username>xxxxx</Username>
         <Password>xxxx</Password>
         <Signature>xxxxxx</Signature>
         </Credentials>
       </RequesterCredentials>
      </Header>
      <Body>
       <RefundTransactionReq>
        <RefundTransactionRequest>
         <Version>54.0</Version>
         <TransactionID>xxxxxxxxx</TransactionID>
         <InvoiceID>222222</InvoiceID>
         <RefundType>Partial</RefundType>
        <Amount>1</Amount>
        <Memo>memotext</Memo>
       </RefundTransactionRequest>
      </RefundTransactionReq>
    </Body>
    </Envelope>
    Have I missed sth?
    Thanks,
    André

  • Integrate PayPal in AIR Android application?

    I'd like to integrate PayPal within a AIR Android application.  Since everything is so new, I wonder what approach I should use.  It seems to me that I might have the following options:
    Create an Android native button with PayPal Android library and add it to AIR application.  But I doubt that it's possible.
    Create a web service to communicate with PayPal using PayPal Java API.
    Create a PayPal button on a web page and display it in Android native browser.
    Create a PayPal button on a web page and display it in AIR component if possible.
    Or maybe I should just create an Android native application instead because PayPal's Android library is very easy to use?

    Native extension + in-app billing.
    http://www.adobe.com/devnet/air/native-extensions-for-air.html
    http://developer.android.com/guide/google/play/billing/index.html
    Had to do the same thing for my educational app. Technically, it seems to be working well. Financially, Google Play is way behind than Apple App Store for me. So I would recommend considering developing a version for Apple App Store as well.

  • Director & PayPal

    I was just wondering if anyone has came accross any solution
    to integrate PayPal with a standalone Director projector?
    I am creating a digital vending machine and was hoping there
    may be a way to add a pay by PayPal part where the user can enter
    their details via the Director program and then hook up to PayPal
    and authorise their payment in the background.
    Any ideas?
    Thanks,
    Dave

    "comedydave" <[email protected]> posted in
    macromedia.director.basics:
    > I was just wondering if anyone has came accross any
    solution to
    > integrate PayPal with a standalone Director projector?
    I know nothing about PayPal's API, but I'd bet that the worst
    case scenario
    would be to have the projector communicate with a server
    script on a site you
    have access to.
    If I recall correctly, Director's get/postNetText does not
    work with https
    SSL from a projector (do check me on this), so I wouldn't
    recommend using
    those commands to send sensitive information over plain http
    protocol[1].
    I would probably start my Director side research with the
    SecureNet Xtra.
    http://www.inm.com/products/snxdirector/
    . With that Xtra, you could probably
    connect directly to PayPal's servers (again, I haven't looked
    into PayPal's
    API).
    It seems that my favorite Website for a list of Xtras is
    going through some
    changes
    http://www.updatestage.com
    Mile High Table O'Products. You could
    check for other Xtras that support secure communications over
    the Internet.
    IIRC, the technote to look for on the Adobe Director support
    site that lists
    other Director sites was tn_3104 (there's probably a link
    right on the
    support pages). It should be easy enough to find in the
    Technotes at
    http://www.adobe.com/support/director
    [1] If you have good control of the Web server (and PHP is
    available), you
    might want to check out Robert Tweed's Lingo implementation
    of Blowfish,
    LingoFish.
    http://killingmoon.com/director/lingofish/
    . I can happily report
    that I used it very successfully in a project a few years
    ago. Very well
    written.
    Mark A. Boyd
    Keep-On-Learnin' :)

  • Is it possible to...

    First of all Good Morning/Afternoon/Night! How are you people doing? You see, I'm currently developing a web app that will allow multi-vendor processing. I thought everything was going to be very joyful but the more I started to investigate, the more I started to question. First of all, I live in the Domnican Republic, and what I'm trying to do is to allow something a-la eBay but from some specific products (No competence here). I'd like to allow people to receive money from their customers through Credit Card Payments. That's why I thought of PayPal as an excellent solution. I've gotten some problems at first because PayPal didn't support my currency. I got over that by fetching from Yahoo the current currency and converting it to USD. But, after investigating a little bit more there has been some problems that have sprout. I have multiple questions: Is it true that I need to wait 3 - 4 business days for me to retrieve my payment. I read that it only applies to US banks. Since my bank is dominican, do I sitll need to wait 3 - 4 days for retrieving a payment?  Because if that's true, then it defeats its purpose.I've seen through the PayPal REST API that it is possible to create Credit Card Payments through my site's code (Currenty building it in ASP.NET MVC 5). Do I still need PayPal Pro when I go live?Where do I specify in the PayPal REST API the seller's info? Does the selller need to specify me the ID and the Secret???Thanks a million!!

    hi Scott,
    I don't think it's possible to NAT the VPN packets (maybe there is some
    sort of hack in the tcpip configuration, but I suspect it would break
    the VPN).
    Cat
    NSC Volunteer Sysop

  • CairngormCommand - EventHandler - ExternalInterface - HTMLPopup - window.opener == null !!!

    Hey,
    I stumbled over a strange behavior... First I thought it's the PopUpBlocker
    I successfully implemented the payPalFlex solution. Only difference is, that I need to create a OrderHeader Entity before calling the PayPal-PopUp Window.
    So if I cancel the PayPal process and want to make the callback via. JavaScript to Flex (it's the onCancel part...)  the window.opener is null?! So I am already searching about 5 hours to find out what happened there. I think it's because I am not running in the main thread anymore.
    (I already tried to implement this with a changeWatcher and the Cairngorm successHandler Pattern...)
    Do you have a clue what's the Problem?
    Thanks!!!!
    some code out of my cart:
    // this gets called from button "Pay with PayPal"
    private function doPayWithPayPal(event:Event):void {
            // first create the OrderHeader
         var orderHeader:EOrderHeader = new EOrderHeader();
         orderHeader.id = 0;                    
         orderHeader.orderNumber = 0;               
         orderHeader.customerID = 0;                
         orderHeader.giftCodeID = 0;
         orderHeader.shipmentTypeID = 0;
         orderHeader.fulfillmentFlag = 'F';
         orderHeader.dateOrderDate = new Date();          
         orderHeader.orderTotal = sumOrder;
            // dispatch event to create orderHeader on Server
         var orderHeaderEvent:OrderHeaderEvent = new OrderHeaderEvent(OrderHeaderEvent.SAVE_ORDER_HEADER);
         orderHeaderEvent.orderHeader = orderHeader;
            orderHeaderEvent.successHandler = orderHeaderSaved;
         orderHeaderEvent.dispatch();
    protected function orderHeaderSaved():void {
         if( AdminModel.getInstance().returnedOrderHeader == null ) {
              Alert.show("Error!!!");
         var orderID:Number = AdminModel.getInstance().returnedOrderHeader.id;
         var requestURL:String = "remote/payPalFlex/startPaymentFlex.php";
         ExternalInterface.call('window.open','about:blank',
              'myWindow','height=500,width=900,toolbar=no,scrollbars=yes' );
         var url:URLRequest = new URLRequest("remote/payPalFlex/startPaymentFlex.php");
         url.data = new URLVariables();
         var obj:URLVariables = new URLVariables();
         url.data.useAs = orderID;
         url.method = "GET";
         navigateToURL(url,"DomainStickersWindow");
    in cancle.php:
    <html>
    <head>
    <title>PayPal PHP API Response</title>
    <script type="text/javascript">
         function doCancel() {
              window.opener.window.document.getElementById('index').doCancel();
              window.close();
    </script>
    </head>
    <body>
      You canceled, close to go back to the shop blablabl...
    <a href="javascript:doCancel()">ZurŸck zum Shop</a>
    </body>
    </html>

    Not solved yet but it seems to be a Safari specific Problem.

  • How do I add more than 10 options to the drop down menu?

    Presently, I'm only able to give ten options but many of my items have 20-30 options.How do I add more than ten options to the drop down menu?

    BrazenChick wrote:
    Presently, I'm only able to give ten options but many of my items have 20-30 options.How do I add more than ten options to the drop down menu?
    It depends on the type of option. If each option has a separate price, then I don't know of a way to add more than 10 options since those options with the prices are encoded into the button id. (Well, you could encode the information yourself with PayPal's API, but that is way more involved than I've been willing to tackle.) If you have more than 10 options such as color, scent, etc that don't affect the price, then you can edit the code you have added to your website to add additional items in the list. For example, suppose you had options "red" and "green", the relevant part of the code would look something like this: <select name="os0">
    <option value="red">red </option>
    <option value="green">green </option></select> If you want to add the option "blue", you would insert the line : <option value="blue">blue </option> before the closing </select> tag. More than 10 options won't be saved in the PayPal button creator, but it will work just fine in your website since this type of option isn't encoded in the id.

  • Making an order payment using SecurePay and Paypal Standard gateway by API call-Order_PaymentProcess

    PART_1
    ==================================
    Hi,
    I'm working at third party system which by API communicate with BC and in short:
    1) create an order with specified products for specific customer) etc. at BC account ofcourse (works fine)
    2) Make the payment using one of the payment gateway (defined in BC Payment gateway section)
        a) SecurePay, or (works fine)
        b) Paypal Website Standard (problem)
    I found a litttle problem in API call to make the payment using paypal website standard (to be presice in case of Paypal option actually the user should be moved to the paypal website so the system should generate some link i think which will have some data which identify payment for specific order). I tried to use the Order_PaymentProcess (https://worldsecuresystems.com/catalystwebservice/catalystcrmwebservice.asmx?op=Order_Paym entProcess)
    call but it looks it can't be done?
    Please note the payment with this call using credit card details cause successfully use the SecurePay Payment gateway. Is here anyway who know the trick how to force (and what parameter should be used) to
    make the payment using Paypal Website Standard?
    And Yes I tried to obtain some additional documentation from BC support but without success (They said they are working at the new version of it... about 2 years ago they said they probably will prepare more detailed documentation ).
    ==================================
    PART_2
    In case if there is no possible to use the API call to force using the Paypal Website Standard is there any workaround of this?
    I mean is it possible to move the user to the paypal site but in post data set some value which can be handled directly by the BC after making the payment at paypal site, so the BC then could for specific order automatically register this operation after paypal send the successfull payment notification?
    ==================================
    PART_3
    The third part is the question how to force by API call BC to send the invoice to the customer after the order will be created (and before making the payment).
    The invoice is actually created only when the Order_PaymentProcess call will be finished with success (and the option "emailInvoiceToCustomer" will be set to true).
    Is there any way to do that?
    ==================================
    When You will answer please set note of what part is that answer.
    Thanks for advice!

    Dude, I don't know what you're saying. There's too much text and too much code, and the code is unformatted. When you post code, please use[code] and [/code] tags as described in Formatting tips on the message entry page. It makes it much easier to read.
    However, based on the subject of your post, there's one thing I can say: If your key's state changes in a way that can affect the value of its hashcode, then you'll have to remove and re-add that key/value pair. Since the hashcode determines which subset the HashMap searches though to find your key, if your key doesn't have the same hashCode it has when you put it into the map, then the map will search the wrong bucket for your key.
    If that doesn't help, please try to provide more concise, formatted code and a more concise explanation of the problem.

  • Paypal Express Checkout Integration

    Hi All,
    I have paypal express checkout account. I want to integrate it with my apex application. So when a customer wants to pay, he can just click the paypal button on my app's page which takes him to the paypal payment screen.
    I would appreciate if someone tells me how to add paypal checkout button on the page?
    Thanks in advance.

    Hi,
    Did you actually read the document or just looked at the title and decided it was not what you wanted?
    Here is the text from the PDF document that talks about Express Checkout on Page 4.
    >
    <p>Integrating with the Express Checkout is a little more involved and requires calling three distinct APIs. You first establish with PayPal that you want to start an express checkout transaction by calling SetExpressCheckout. PayPal responds with a token which you will need for subsequent API calls and a redirect. In the call to SetExpressCheckout you pass a URL as a parameter to tell PayPal where to redirect back to. You then redirect to PayPal and pass the token you received.</p>
    <p>The consumer then chooses their payment option on the PayPal site and can optionally change their shipping address. Once they finalize the transaction at PayPal, they are redirected to the URL you provided in the call to SetExpressCheckout. Two parameters are passed with the URL you provide, token and payerid.</p>
    <p>You create a PL/SQL procedure that has exactly two parameters, token and payerid. This procedure is the URL you pass in SetExpressCheckout to let PayPal know where to redirect to once the transaction is done. The procedure looks up the Application Express session for your application using the token.</p>
    <p>Now that the consumer is back at your site, you will make a call to the second API, GetExpressCheckoutDetails. This retrieves information from PayPal about the consumer, such as their name, email, phone number, and shipping address. Your application can use that information to display a summary page and a Pay Now button.</p>
    <p>Finally, when the consumer clicks the Pay Now button, you call the third API, DoExpressCheckoutPayment. PayPal responds with an acknowledgement and transaction details which your application can store in a local table.</p>
    >
    As for your query
    >
    Then I copied the script in the html header section of my apex page. But the buy now button is being displayed in the top left corner of my page. How can I display it somewhere in the body of the page?
    >
    You can put the script into the Region Source, Region Header or Region Footer to get the position you want in the regions.
    Cheers,
    PS: You will find some good tips here as well http://www.apexskins.com/~andrewro/paypal/Paypal_Website_Payments_Standard_and_IPN_Integration.pdf
    Edited by: Prabodh on Jul 30, 2012 12:10 PM

  • Creating a cfhttp multi part form post for google docs upload

    Hey all,
    If you saw my last thread, you know I am working with google docs and uploading documents to it. Well I got basic document uploading working, but now I am trying to include meta data. Google requires you to include the metadata with the actual file data and seperate them by using a multi part form upload. I don't know exactly the process for doing so, but they have a handy code snippet of the desired results at
    http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDoc s
    So I am basically trying to mimic that payload, however I am continually getting an error stating that there are no parts in a multi part form upload.
    <errors xmlns='http://schemas.google.com/g/2005'><error><domain>GData</domain><code>InvalidEntryException</code><internalReason>No parts detected in multipart message</internalReason></error></errors>
    to be exact. I am not really sure what I am doing wrong here. I figure it is one of two things, either I am not including the actual data in the payload properly (I am currently using a body type param for the payload, but I have also tried a formfield named content to deliver it. Neither worked). So maybe I need to do something else tricky there? The other thing which I am not reallly sure about is the content-length attribute. I don't know exactly how to calculate that, and I read in another forum that a content length attribute was messing that guy up. Right now I am just taking the lenght of the payload string and multiplying by 8 (to get the number of bytes for the entire payload) but hell if I know if that is right. It could be I just don't know how to set up the parts for the message, it seems pretty straight forward though. Just define a boundary in the content-type, then put two dashes before it wherever you define a new part, and two dashes trailing the last part.
    Anyway, here is my code, any help is much appreciate. I'm a bit beyond my expertise here (not really used to trying to have to roll my own http requests, nevermind multipart post form data) so I'm kinda flailing around. Thanks again.
    <cffunction name="upload" access="public" returnType="any" hint="I upload the document." output="false">
        <cfargument name="filePath" type="string" required="false" hint="file to upload.">
        <cfargument name="docType" type="string" required="yes" hint="The document type to identify this document see google list api supported documents">
        <cfargument name="parentCollectionId" type="string" required="no" hint="the name of the collection/collection to create (include collection%3A)">
        <cfargument name="metaData" type="struct" required="no" hint="structure containing meta data. Keyname is attribute name, value is the value">
        <cfset var result = structnew()>
        <cfset result.success = true>
        <cftry>
            <cfif structkeyexists(arguments,"parentCollectionId")>
                      <cfset arguments.parentCollectionId = urlencodedformat(parentCollectionId)>             
                      <cfset result.theUrl = "https://docs.google.com/feeds/default/private/full/#arguments.parentCollectionId#/contents">
                <cfelse>
                        <cfset result.theUrl = "https://docs.google.com/feeds/default/private/full/">
            </cfif>
             <cfoutput>
                  <cffile action="read" file="#arguments.filePath#" variable="theFile">
                <cfsavecontent variable="atomXML">
                     Content-Type: application/atom+xml
                    <?xml version='1.0' encoding='UTF-8'?>
                    <entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">
                      <category scheme="http://schemas.google.com/g/2005##kind"
                          term="http://schemas.google.com/docs/2007###arguments.docType#"/>
                        <cfloop collection="#arguments.metaData#" item="key">
                            <#key#>#arguments.metadata[key]#</#key#>
                        </cfloop>
                    </entry>
                    --END_OF_PART
                    Content-Type: text/plain
                    #theFile#
                    --END_OF_PART--
                </cfsavecontent>       
            </cfoutput>      
            <cfset result.postData = atomXML>
            <cfhttp url="#result.theUrl#" method="post" result="httpRequest" charset="utf-8" multipart="yes">
                <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#getAuth()#">
                <cfhttpparam type="header" name="GData-Version" value="3">
                <cfhttpparam type="header" name="Content-Length" value="#len(trim(atomXML))*8#">           
                <cfhttpparam type="header" name="Content-Type" value="multipart/related; boundary=END_OF_PART">
                <cfhttpparam type="header" name="Slug" value="test file --END_OF_PART">
                <cfhttpparam type="body" name="content" value="#trim(atomXML)#">
            </cfhttp>
            <cftry>
                   <cfset packet = xmlParse(httpRequest.fileContent)>
                <cfif httpRequest.statusCode neq "201 created">
                    <cfthrow message="HTTP Error" detail="#httpRequest.fileContent#" type="HTTP CODE #httpRequest.statusCode#">
                </cfif>
                <cfset result.data.resourceId = packet.entry['gd:resourceId'].xmlText>
                <cfset result.data.feedLink = packet.entry['gd:feedLink'].xmlText>
                <cfset result.data.title = packet.entry.title.xmlText>  
                <cfset result.data.link = packet.entry.title.xmlText>    
                <cfcatch>
                     <cfset result.data = httpRequest>
                </cfcatch>
            </cftry>       
            <cfcatch type="any">
                 <cfset result.error = cfcatch>
                <cfset result.success = false>
            </cfcatch>
        </cftry>   
        <cfreturn result>
    </cffunction>
    Also, this is what my atomXML data ended up looking like when it got sent to google. This isn't the WHOLE request (it doesn't include the headers, just the body).
    Content-Type: application/atom+xml
    <?xml version='1.0' encoding='UTF-8'?>
    <entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">
    <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#document"/>
    <TITLE>Woot Test</TITLE> </entry>
    --END_OF_PART
    Content-Type: text/plain
    I'm a test document lol!
    --END_OF_PART--

    Woot, I got it. I had to send the gData version number, and change the URL.
    Here is the working function.
    <cffunction name="upload" access="public" returnType="any" hint="I upload the document." output="false">
        <cfargument name="myFile" type="string" required="false" hint="file to upload.">
        <cfset var result = "">
        <cfset theUrl = "https://docs.google.com/feeds/default/private/full">
        <cffile action="read" file="C:\website\xerointeractive\testing\test.txt" variable="theFile">
        <cfset fileSize = createObject("java","java.io.File").init("C:\website\xerointeractive\testing\test.txt").length()>
        <cfhttp url="#theURL#" method="post" result="result" charset="utf-8" >
            <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#getAuth()#">
            <cfhttpparam type="header" name="Content-Type" value="text/plain">
            <cfhttpparam type="header" name="Slug" value="test file">
            <cfhttpparam type="header" name="GData-Version" value="3">
            <cfhttpparam type="header" name="Content-Length" value="#fileSize#">
            <cfhttpparam type="body" value="#theFile#">
        </cfhttp>
        <cfreturn result>
    </cffunction>

  • Coldfusion 11 java/jre ssl mutual auth api calls.  Help with coldfusion/java logs.

    Hello,
    I am here because I have exhausted my Coldfusion/Java ssl keystore certs trouble shooting abilities.  Here is the issue. I am developing a Coldfusion 11 application that must make api calls to Chase payconnexion SOAP services. I am using the coldfusion cfhttp tags to do this, which is using the java jre 1.7.x to accomplish this. The problem, I am getting generic 500 internal server errors from Chase.   They claim that I am not sending a cert during the ssl exchange.    What I have done is:
    - put our wildcard cert/key pair in the coldfusion keystore
    - put our root and chain in the keystore
    - put the chase server cert in the keystore
    - converted the key/crt files to .pfx and make the calls
      to chase with those, something like:
      <cfset objSecurity = createObject("java", "java.security.Security") />
      <cfset storeProvider = objSecurity.getProvider("JsafeJCE")/>
      <cfset Application.sslfix = true />
      <cfhttp url="#chase_api_server#/"
              result="http_response"
            method="post"
            port="1401" charset="utf-8"
            clientCert = "#cert_path#/#cert_file1#"
            clientCertPassword = "#cert_password#">
            <cfhttpparam type="header" name="SOAPAction" value="updateUserProfileRequest"/>
        <cfhttpparam type="header" name="Host" value="ws.payconnexion.com" />
        <cfhttpparam type="xml" value="#trim(my_xml)#"/>
        </cfhttp>
    Here is what I see in the Cf logs, can anyone help me interpret what
    is happening ??
    Thanks,
    Bob
    =============================================================
    found key for : 1
    chain [0] = [
      Version: V3
      Subject: CN=*.payments.austintexas.gov, O=City of Austin, L=Austin, ST=Texas, C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      Validity: [From: Mon Aug 11 12:39:37 CDT 2014,
                   To: Thu Sep 01 18:34:24 CDT 2016]
      Issuer: CN=Entrust Certification Authority - L1C, OU="(c) 2009 Entrust, Inc.", OU=www.entrust.net/rpa is incorporated by reference, O="Entrust, Inc.", C=US
      SerialNumber: [<snip>7]
    Certificate Extensions: 9
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.entrust.net
       accessMethod: caIssuers
       accessLocation: URIName: http://aia.entrust.net/2048-l1c.cer
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:false
      PathLen: undefined
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.entrust.net/level1c.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [1.2.840.113533.7.75.2]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
      [CertificatePolicyId: [2.23.140.1.2.2]
    [6]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
    [7]: ObjectId: 2.5.29.15 Criticality=false
    KeyUsage [
      DigitalSignature
      Key_Encipherment
    [8]: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: *.payments.austintexas.gov
      DNSName: payments.austintexas.gov
    [9]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [1] = [
      Version: V3
      Subject: CN=Entrust Certification Authority - L1C, OU="(c) 2009 Entrust, Inc.", OU=www.entrust.net/rpa is incorporated by reference, O="Entrust, Inc.", C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      public exponent: 65537
      Validity: [From: Fri Nov 11 09:40:40 CST 2011,
                   To: Thu Nov 11 20:51:17 CST 2021]
      Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      SerialNumber: [    <snip>]
    Certificate Extensions: 7
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.entrust.net
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:0
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.entrust.net/2048ca.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.5.29.32.0]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    [6]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [7]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [2] = [
      Version: V3
      Subject: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>public exponent: 65537
      Validity: [From: Fri Dec 24 11:50:51 CST 1999,
                   To: Tue Jul 24 09:15:12 CDT 2029]
      Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      SerialNumber: [<snip>]
    Certificate Extensions: 3
    [1]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:2147483647
    [2]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [3]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    trustStore is: /opt/coldfusion11/jre/lib/security/cacerts
    trustStore type is : jks
    trustStore provider is :
    init truststore
    adding as trusted cert:
    <snip 85 certs> 
    trigger seeding of SecureRandom
    done seeding SecureRandom
    Jan 23, 2015 13:15:37 PM Information [ajp-bio-8014-exec-7] - Starting HTTP request {URL='https://ws.payconnexion.com:1401/pconWS/9_5/', method='post'}
    Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
    Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
    Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
    Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256
    Allow unsafe renegotiation: true
    Allow legacy hello messages: true
    Is initial handshake: true
    Is secure renegotiation: false
    %% No cached client session
    *** ClientHello, TLSv1
    RandomCookie:  GMT: 1405197529 bytes = { 191, 115, 95, 85, 79, 234, 145, 176, 62, 70, 36, 102, 168, 15, 127, 174, 88, 118, 4, 177, 226, 5, 254, 55, 108, 203, 80, 80 }
    Session ID:  {}
    Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
    Compression Methods:  { 0 }
    Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1}
    Extension ec_point_formats, formats: [uncompressed]
    Extension server_name, server_name: [host_name: ws.payconnexion.com]
    ajp-bio-8014-exec-7, WRITE: TLSv1 Handshake, length = 191
    ajp-bio-8014-exec-7, READ: TLSv1 Handshake, length = 81
    *** ServerHello, TLSv1
    RandomCookie:  <snip>
    Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA
    Compression Method: 0
    Extension renegotiation_info, renegotiated_connection: <empty>
    %% Initialized:  [Session-5, TLS_RSA_WITH_AES_256_CBC_SHA]
    ** TLS_RSA_WITH_AES_256_CBC_SHA
    ajp-bio-8014-exec-7, READ: TLSv1 Handshake, length = 4183
    *** Certificate chain
    chain [0] = [
      Version: V3
      Subject: CN=ws.payconnexion.com, OU=PayConnexion, O=JPMorgan Chase, L=New York, ST=New York, C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      public exponent: 65537
      Validity: [From: Sun Apr 20 19:00:00 CDT 2014,
                   To: Tue Jun 02 18:59:59 CDT 2015]
      Issuer: CN=VeriSign Class 3 International Server CA - G3, OU=Terms of use at https://www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
      SerialNumber: [   <snip>]
    Certificate Extensions: 8
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://se.symcd.com
       accessMethod: caIssuers
       accessLocation: URIName: http://se.symcb.com/se.crt
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:false
      PathLen: undefined
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://se.symcb.com/se.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.16.840.1.113733.1.7.54]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    ], PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.2
      qualifier: <snip>
    [6]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
      2.16.840.1.113730.4.1
    [7]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      DigitalSignature
      Key_Encipherment
    [8]: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: ws.payconnexion.com
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [1] = [
      Version: V3
      Subject: CN=VeriSign Class 3 International Server CA - G3, OU=Terms of use at https://www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      public exponent: 65537
      Validity: [From: Sun Feb 07 18:00:00 CST 2010,
                   To: Fri Feb 07 17:59:59 CST 2020]
      Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
      SerialNumber: [    <snip>]
    Certificate Extensions: 10
    [1]: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false
    Extension unknown: DER encoded OCTET string =
    <snip>
    [2]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.verisign.com
    [3]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [4]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:0
    [5]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.verisign.com/pca3-g5.crl]
    [6]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.16.840.1.113733.1.7.23.3]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    ], PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.2
      qualifier: <snip>
    [7]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
      2.16.840.1.113730.4.1
      2.16.840.1.113733.1.8.1
    [8]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [9]: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      CN=VeriSignMPKI-2-7
    [10]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [2] = [
      Version: V3
      Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      public exponent: 65537
      Validity: [From: Tue Nov 07 18:00:00 CST 2006,
                   To: Sun Nov 07 17:59:59 CST 2021]
      Issuer: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
      SerialNumber: [<snip>]
    Certificate Extensions: 8
    [1]: ObjectId: 1.3.6.1.5.5.7.1.12 Criticality=false
    Extension unknown: DER encoded OCTET string =
    <snip>
    [2]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.verisign.com
    [3]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:2147483647
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.verisign.com/pca3.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.5.29.32.0]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    [6]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
      codeSigning
      2.16.840.1.113730.4.1
      2.16.840.1.113733.1.8.1
    [7]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [8]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    Found trusted certificate:
      Version: V3
      Subject: CN=ws.payconnexion.com, OU=PayConnexion, O=JPMorgan Chase, L=New York, ST=New York, C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus:   public exponent: 65537
      Validity: [From: Sun Apr 20 19:00:00 CDT 2014,
                   To: Tue Jun 02 18:59:59 CDT 2015]
      Issuer: CN=VeriSign Class 3 International Server CA - G3, OU=Terms of use at https://www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
      SerialNumber: [ <snip>]
    Certificate Extensions: 8
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://se.symcd.com
       accessMethod: caIssuers
       accessLocation: URIName: http://se.symcb.com/se.crt
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:false
      PathLen: undefined
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://se.symcb.com/se.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.16.840.1.113733.1.7.54]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    ], PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.2
      qualifier: <snip>
    [6]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
      2.16.840.1.113730.4.1
    [7]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      DigitalSignature
      Key_Encipherment
    [8]: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: ws.payconnexion.com
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    ajp-bio-8014-exec-7, READ: TLSv1 Handshake, length = 13
    *** CertificateRequest
    Cert Types: RSA, DSS
    Cert Authorities:
    <Empty>
    *** ServerHelloDone
    matching alias: 1
    *** Certificate chain
    chain [0] = [
      Version: V3
      Subject: CN=*.payments.austintexas.gov, O=City of Austin, L=Austin, ST=Texas, C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      <snip>public exponent: 65537
      Validity: [From: Mon Aug 11 12:39:37 CDT 2014,
                   To: Thu Sep 01 18:34:24 CDT 2016]
      Issuer: CN=Entrust Certification Authority - L1C, OU="(c) 2009 Entrust, Inc.", OU=www.entrust.net/rpa is incorporated by reference, O="Entrust, Inc.", C=US
      SerialNumber: [<snip>]
    Certificate Extensions: 9
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.entrust.net
       accessMethod: caIssuers
       accessLocation: URIName: http://aia.entrust.net/2048-l1c.cer
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:false
      PathLen: undefined
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.entrust.net/level1c.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [1.2.840.113533.7.75.2]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
      [CertificatePolicyId: [2.23.140.1.2.2]
    [6]: ObjectId: 2.5.29.37 Criticality=false
    ExtendedKeyUsages [
      serverAuth
      clientAuth
    [7]: ObjectId: 2.5.29.15 Criticality=false
    KeyUsage [
      DigitalSignature
      Key_Encipherment
    [8]: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
      DNSName: *.payments.austintexas.gov
      DNSName: payments.austintexas.gov
    [9]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [1] = [
      Version: V3
      Subject: CN=Entrust Certification Authority - L1C, OU="(c) 2009 Entrust, Inc.", OU=www.entrust.net/rpa is incorporated by reference, O="Entrust, Inc.", C=US
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>
      public exponent: 65537
      Validity: [From: Fri Nov 11 09:40:40 CST 2011,
                   To: Thu Nov 11 20:51:17 CST 2021]
      Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      SerialNumber: [<snip>]
    Certificate Extensions: 7
    [1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
    AuthorityInfoAccess [
       accessMethod: ocsp
       accessLocation: URIName: http://ocsp.entrust.net
    [2]: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    <snip>]
    [3]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:0
    [4]: ObjectId: 2.5.29.31 Criticality=false
    CRLDistributionPoints [
      [DistributionPoint:
         [URIName: http://crl.entrust.net/2048ca.crl]
    [5]: ObjectId: 2.5.29.32 Criticality=false
    CertificatePolicies [
      [CertificatePolicyId: [2.5.29.32.0]
    [PolicyQualifierInfo: [
      qualifierID: 1.3.6.1.5.5.7.2.1
      qualifier: <snip>
    [6]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [7]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    chain [2] = [
      Version: V3
      Subject: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
      Key:  Sun RSA public key, 2048 bits
      modulus: <snip>public exponent: 65537
      Validity: [From: Fri Dec 24 11:50:51 CST 1999,
                   To: Tue Jul 24 09:15:12 CDT 2029]
      Issuer: CN=Entrust.net Certification Authority (2048), OU=(c) 1999 Entrust.net Limited, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), O=Entrust.net
      SerialNumber: [<snip>]
    Certificate Extensions: 3
    [1]: ObjectId: 2.5.29.19 Criticality=true
    BasicConstraints:[
      CA:true
      PathLen:2147483647
    [2]: ObjectId: 2.5.29.15 Criticality=true
    KeyUsage [
      Key_CertSign
      Crl_Sign
    [3]: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    <snip>]
      Algorithm: [SHA1withRSA]
      Signature:
    <snip>
    *** ClientKeyExchange, RSA PreMasterSecret, TLSv1
    ajp-bio-8014-exec-7, WRITE: TLSv1 Handshake, length = 3970
    SESSION KEYGEN:
    PreMaster Secret:
    <snip>
    CONNECTION KEYGEN:
    Client Nonce:
    <snip>
    Server Nonce:
    <snip>
    Master Secret:
    <snip>
    Client MAC write Secret:
    <snip>
    Server MAC write Secret:
    <snip>
    Client write key:
    <snip>
    Server write key:
    <snip>
    Client write IV:
    <snip>
    Server write IV:
    <snip>
    *** CertificateVerify
    ajp-bio-8014-exec-7, WRITE: TLSv1 Handshake, length = 262
    ajp-bio-8014-exec-7, WRITE: TLSv1 Change Cipher Spec, length = 1
    *** Finished
    verify_data:  { 51, 254, 40, 56, 247, 218, 130, 183, 112, 239, 95, 4 }
    ajp-bio-8014-exec-7, WRITE: TLSv1 Handshake, length = 48
    ajp-bio-8014-exec-7, READ: TLSv1 Change Cipher Spec, length = 1
    ajp-bio-8014-exec-7, READ: TLSv1 Handshake, length = 48
    *** Finished
    verify_data:  { 89, 182, 137, 178, 177, 31, 27, 115, 151, 90, 169, 49 }
    %% Cached client session: [Session-5, TLS_RSA_WITH_AES_256_CBC_SHA]
    ajp-bio-8014-exec-7, setSoTimeout(60000) called
    ajp-bio-8014-exec-7, WRITE: TLSv1 Application Data, length = 1520
    ajp-bio-8014-exec-7, READ: TLSv1 Application Data, length = 128
    Jan 23, 2015 13:15:38 PM Information [ajp-bio-8014-exec-7] - HTTP request completed  {Status Code=500 ,Time taken=1302 ms}
    ajp-bio-8014-exec-7, READ: TLSv1 Application Data, length = 256
    ajp-bio-8014-exec-7, READ: TLSv1 Alert, length = 32
    ajp-bio-8014-exec-7, RECV TLSv1 ALERT:  warning, close_notify
    ajp-bio-8014-exec-7, called closeInternal(false)
    ajp-bio-8014-exec-7, SEND TLSv1 ALERT:  warning, description = close_notify
    ajp-bio-8014-exec-7, WRITE: TLSv1 Alert, length = 32
    ajp-bio-8014-exec-7, called closeSocket(selfInitiated)
    ajp-bio-8014-exec-7, called close()
    ajp-bio-8014-exec-7, called closeInternal(true)

    Ok, apparently Chase person who said we were not sending the certs and achieving mutual auth
    was incorrect.   The https calls were connecting, and mutual auth was taking place.   The 500
    error was about a soap envelope being delivered, and NOT SSL as I directed to.   Everything
    is working fine now. 
    Thanks,
    Bob

  • Cfhttp: Migration of Webservice from CF 6.1 to CF 8.0.1 fails

    Hello,
    our application is consumer of a webservice. It works well on CF 6.1 (Sun Solaris) for longer time.
    Now we have to migrate to a new platform with CF 8.0.1 on Linux. The service returns "Connection Failure".
    Because of security reasons username and password must be in the SOAP header. So we implemented the service invocation via CFHTTP.
    Can please anybody help?
    We assume that the error has something to do with a wrong or wrong interpreted content length of the returned code.
    Thank you very much in advance and greetings from Germany.
    Rainer
    Facts:
    - The physical connection to the webservice server is ok. Requests of us can be found in the logfiles there. It seems they are processed there normally.
    - If we send wrong XML data intentionally (invalid XML-syntax, wrong user name...) the returned data contains sensible error messages which comes definitly from the target server.
    - If we send correct XML data the only file content which is return is "Connection Failure"
    - There are no hints in the logfiles.
    - The sended data does not contain any special character.
    - The returned data can contain special characters (e.g. German umlauts).
    The code:
    <cfprocessingdirective pageencoding="iso-8859-1">
    <!--- ... --->
    <cfsavecontent variable="soap"><?xml version="1.0" encoding="utf-8" ?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:opal="#request.opal_webservice_ns#">
       <soapenv:Header>
          <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext" soapenv:mustUnderstand="1">
           <wsse:UsernameToken>
            <wsse:Username>#request.opal_username#</wsse:Username>
            <wsse:Password Type="wsse:PasswordText">#request.opal_password#</wsse:Password>
           </wsse:UsernameToken>
         </wsse:Security>
       </soapenv:Header>
       <soapenv:Body>
          <opal:OPAL_spc-_spcGet_spcAREMIS_spcOpportunity_spcData_GetAREMISData_Input>
             <opal:Process_spcInstance_spcId></opal:Process_spcInstance_spcId>
             <opal:Object_spcId>#ucase(opalid)#</opal:Object_spcId>
             <opal:Siebel_spcOperation_spcObject_spcId>?</opal:Siebel_spcOperation_spcObject_spcId>
             <opal:Error_spcCode></opal:Error_spcCode>
             <opal:Error_spcMessage></opal:Error_spcMessage>
          </opal:OPAL_spc-_spcGet_spcAREMIS_spcOpportunity_spcData_GetAREMISData_Input>
       </soapenv:Body>
    </soapenv:Envelope>
    </cfsavecontent>
    <cfhttp method="post" url="#request.opal_webservice_url#" throwonerror="no" timeout="20" charset="utf-8">
        <cfhttpparam type="Header" name="charset" value="UTF-8" />
        <cfhttpparam type="header" name="SOAPAction" value="#request.opal_webservice_soapaction#">
        <cfhttpparam type="header" name="Host" value="#request.opal_webservice_host#">
        <cfhttpparam type="header" name="Content-Length" value="#len(soap)#">
        <cfhttpparam type="XML" name="XML" value="#soap#">
    </cfhttp>
    <cfdump var="#cfhttp#" label="cfhttp">
    Technical data of the new server (which fails):
    Operating system (uname -a):
    Linux mhpa3y4c 2.6.18-028stab060.8 #1 SMP Mon Feb 9 20:25:36 MSK 2009 i686 i686 i386 GNU/Linux
    Server Details 
    Server Product  ColdFusion 
    Version  8,0,1,195765   
    Edition  Enterprise   
    Serial Number  1185-5039-8342-3354-3033-xxxx   
    Operating System  UNIX   
    OS Version  2.6.18-028stab060.8   
    Update Level  /opt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/updates/hf801-1878 .jar   
    JVM Details 
    Java Version  1.6.0_14   
    Java Vendor  Sun Microsystems Inc.   
    Java Vendor URL  http://java.sun.com/ 
    Java Home  /usr/java/jdk1.6.0_14/jre   
    Java File Encoding  ASCII   
    Java Default Locale  en_US   
    File Separator  /   
    Path Separator  :   
    Line Separator  Chr(10) 
    User Name  webrun   
    User Home  /home/webrun   
    User Dir  /opt/jrun4/bin   
    Java VM Specification Version  1.0   
    Java VM Specification Vendor  Sun Microsystems Inc.   
    Java VM Specification Name  Java Virtual Machine Specification   
    Java VM Version  14.0-b16   
    Java VM Vendor  Sun Microsystems Inc.   
    Java VM Name  Java HotSpot(TM) Server VM   
    Java Specification Version  1.6   
    Java Specification Vendor  Sun Microsystems Inc.   
    Java Specification Name  Java Platform API Specification   
    Java Class Version  50.0   
    Java Class Path  CF Classpath
    pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/updates/hf801-1878.ja r:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/updates/chf8010002.ja r:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/mlibwrapper_jai.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jaxb-api.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-net-1.4.0.jar :  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jpedal.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/xml-apis.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/verity.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jai_core.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/asn1.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/xercesImpl.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/certj.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/smpp.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jnbcore.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/vparametric.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/wsdl2java.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/wsdl4j-1.5.1.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/derbytools.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/axis.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-beanutils-1.6 .jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/bcel.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jstack.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/java2wsdl.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jintegra.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cf-assembler.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/im.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/poi-2.5.1-final-20040 804.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/saaj.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/xsdlib.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ldap.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/clibwrapper_jiio.jar:   pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jutf7-0.9.0.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/mysql-connector-java- commercial-5.0.5-bin.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/flex-messaging.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/iTextAsian.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/derbyclient.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-discovery-0.2 .jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/smack.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/mm-mysql-jdbc.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/vsearch.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cfusion.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/postgresql-8.1-407.jd bc3.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ib6core.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/tools.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ib6swing.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cfusion-req.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/flashgateway.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-digester-1.7. jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ldapbp.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/mail.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/log4j-1.2.12.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/STComm.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jaxb-libs.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jsch-0.1.28m.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/vadmin.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cf4was.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cf-logging.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/crystal.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jai_imageio.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/xalan.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/pdfencryption.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/derbyrun.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cf-acrobat.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jax-qname.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/derby.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ri_generic.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/httpclient.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/izmado.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ant.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/derbynet.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/namespace.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/backport-util-concurr ent.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/iText.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-httpclient-3. 0.1.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-collections-2 .1.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/macromedia_drivers.ja r:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jaxb-xjc.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jakarta-oro-2.0.6.jar :  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cdo.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ib6addonpatch.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-logging-api.1 .0.4.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jaxrpc.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ant-launcher.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cf4was_ae.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ib6util.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/webchartsJava2D.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/cdohost.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jai_codec.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/metadata-extractor-2. 2.2.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jakarta-slide-webdavl ib-2.1.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/FCSj.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/relaxngDatatype.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jdom-1.0.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jaxb-impl.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/flex-messaging-opt.ja r:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/poi-contrib-2.5.1-fin al-20040804.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/flex-messaging-common .jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/wc50.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/flex-messaging-req.ja r:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/jeb.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-logging.1.0.4 .jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/rome-cf.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/commons-codec-1.3.jar :  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/ib6http.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/tt-bytecode.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/gateway/lib/examples.jar:   pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/gateway/lib/:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/flex.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/jcert.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/batik-css.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/batik-util.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/commons-logging.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/batik-transcoder.jar:   pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/oscache.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/jsse.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/jakarta-oro-2.0.7.jar :  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/commons-discovery.jar :  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/batik-awt-util.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/concurrent.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/jnet.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/batik-ext.jar:  pt/jrun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfform/jars/:  :
    Server Classpath
    /opt/jrun4/servers/lib:
    /opt/jrun4/servers/lib/jrun-patch.jar:
    /opt/jrun4/servers/lib/pbclient42RE.jar:
    /opt/jrun4/servers/lib/pbserver42RE.jar:
    /opt/jrun4/servers/lib/pointbase-service.jar:
    /opt/jrun4/servers/lib:
    /opt/jrun4/servers/lib/jrun-patch.jar:
    /opt/jrun4/servers/lib/pbclient42RE.jar:
    /opt/jrun4/servers/lib/pbserver42RE.jar:
    /opt/jrun4/servers/lib/pointbase-service.jar:
    /opt/jrun4/lib:
    /opt/jrun4/lib/instutil.jar:
    /opt/jrun4/lib/java2wsdl.jar:
    /opt/jrun4/lib/jrun-ant-tasks.jar:
    /opt/jrun4/lib/jrun-xdoclet.jar:
    /opt/jrun4/lib/jrun.jar:
    /opt/jrun4/lib/jrunwizard-installer.jar:
    /opt/jrun4/lib/jrunwizard.jar:
    /opt/jrun4/lib/jspc.jar:
    /opt/jrun4/lib/macromedia_drivers.jar:
    /opt/jrun4/lib/migrate.jar:
    /opt/jrun4/lib/mysql-connector-java-commercial-5.0.5-bin.jar:
    /opt/jrun4/lib/oem-xdoclet.jar:
    /opt/jrun4/lib/sniffer.jar:
    /opt/jrun4/lib/webservices.jar:
    /opt/jrun4/lib/wsconfig.jar:
    /opt/jrun4/lib/wsdl2java.jar:
    /opt/jrun4/lib/xmlscript.jar:
    /opt/jrun4/lib/jrun.jar
    Java Ext Dirs  /usr/java/jdk1.6.0_14/jre/lib/ext:/usr/java/packages/lib/ext
    Technical data former server (which runs well):
    Operating System (uname -a):
    SunOS MHPA24ZC 5.8 Generic_117350-45 sun4us sparc FJSV,GPUZC-M
    Server Details 
      Server Product 
       ColdFusion MX
      Version 
       6,1,0,hf52806_61
      Edition 
       Enterprise
      Serial Number 
       CED600-55949-37264-xxxxxx
      Operating System   
       UNIX
      OS Version 
       5.8
      JVM Details 
      Java Version 
       1.4.2
      Java Vendor 
       Sun Microsystems Inc.
      Java Vendor URL 
       http://java.sun.com/
      Java Home 
       /export/home/coldf/coldfusionmx/runtime/jre
      File Separator 
      Path Separator 
      Line Separator 
       Chr(10)
      User Name 
       coldf
      User Home 
       /export/home/coldf
      User Dir 
       /export/home/coldf/coldfusionmx/runtime/bin
      Java VM Specification Version 
       1.0
      Java VM Specification Vendor 
       Sun Microsystems Inc.
      Java VM Specification Name 
       Java Virtual Machine Specification
      Java VM Version 
       1.4.2-b28
      Java VM Vendor 
       Sun Microsystems Inc.
      Java VM Name 
       Java HotSpot(TM) Server VM
      Java Specification Version 
       1.4
      Java Specification Vendor 
       Sun Microsystems Inc.
      Java Specification Name 
       Java Platform API Specification
      Java Class Version 
       48.0
      Java Class Path 
       /export/home/coldf/coldfusionmx/runtime/servers/lib:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf52806_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53398_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53419_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53486_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53685_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53797_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53813_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf53852_61.jar:  /export/home/coldf/coldfusionmx/runtime/servers/lib/hf54464_61.jar:  /export/home/coldf/coldfusionmx/servers/lib:  /export/home/coldf/coldfusionmx/lib/cfusion.jar:  /export/home/coldf/coldfusionmx/lib:  /export/home/coldf/coldfusionmx/lib/NetComponents.jar:  /export/home/coldf/coldfusionmx/lib/bcel.jar:  /export/home/coldf/coldfusionmx/lib/cf4was.jar:  /export/home/coldf/coldfusionmx/lib/cf4was_ae.jar:  /export/home/coldf/coldfusionmx/lib/cfmx-ssl.jar:  /export/home/coldf/coldfusionmx/lib/cfmx_bootstrap.jar:  /export/home/coldf/coldfusionmx/lib/cfusion.jar:  /export/home/coldf/coldfusionmx/lib/cfx.jar:  /export/home/coldf/coldfusionmx/lib/collections.jar:  /export/home/coldf/coldfusionmx/lib/crimson.jar:  /export/home/coldf/coldfusionmx/lib/flashgateway.jar:  /export/home/coldf/coldfusionmx/lib/httpclient.jar:  /export/home/coldf/coldfusionmx/lib/izmado.jar:  /export/home/coldf/coldfusionmx/lib/jakarta-oro-2.0.6.jar:  /export/home/coldf/coldfusionmx/lib/java2wsdl.jar:  /export/home/coldf/coldfusionmx/lib/jaxp-api.jar:  /export/home/coldf/coldfusionmx/lib/jdom.jar:  /export/home/coldf/coldfusionmx/lib/ldap.jar:  /export/home/coldf/coldfusionmx/lib/ldapbp.jar:  /export/home/coldf/coldfusionmx/lib/log4j.jar:  /export/home/coldf/coldfusionmx/lib/macromedia_drivers.jar:  /export/home/coldf/coldfusionmx/lib/mail.jar:  /export/home/coldf/coldfusionmx/lib/pbclient42RE.jar:  /export/home/coldf/coldfusionmx/lib/pbembedded42RE.jar:  /export/home/coldf/coldfusionmx/lib/pbserver42RE.jar:  /export/home/coldf/coldfusionmx/lib/pbtools42RE.jar:  /export/home/coldf/coldfusionmx/lib/tools.jar:  /export/home/coldf/coldfusionmx/lib/tt-bytecode.jar:  /export/home/coldf/coldfusionmx/lib/webcharts.jar:  /export/home/coldf/coldfusionmx/lib/webchartsJava2D.jar:  /export/home/coldf/coldfusionmx/lib/webservices.jar:  /export/home/coldf/coldfusionmx/lib/wsdl2java.jar:  /export/home/coldf/coldfusionmx/lib/xalan.jar:  /export/home/coldf/coldfusionmx/runtime/lib/jrun.jar:  /export/home/coldf/coldfusionmx/runtime/lib:  /export/home/coldf/coldfusionmx/runtime/lib/instutil.jar:  /export/home/coldf/coldfusionmx/runtime/lib/java2wsdl.jar:  /export/home/coldf/coldfusionmx/runtime/lib/jrun-ant-tasks.jar:  /export/home/coldf/coldfusionmx/runtime/lib/jrun-xdoclet.jar:  /export/home/coldf/coldfusionmx/runtime/lib/jrun.jar:  /export/home/coldf/coldfusionmx/runtime/lib/jspc.jar:  /export/home/coldf/coldfusionmx/runtime/lib/migrate.jar:  /export/home/coldf/coldfusionmx/runtime/lib/oem-xdoclet.jar:  /export/home/coldf/coldfusionmx/runtime/lib/sniffer.jar:  /export/home/coldf/coldfusionmx/runtime/lib/webservices.jar:  /export/home/coldf/coldfusionmx/runtime/lib/wsconfig.jar:  /export/home/coldf/coldfusionmx/runtime/lib/wsdl2java.jar:  /export/home/coldf/coldfusionmx/runtime/lib/xmlscript.jar:  /oracle/orav920/jdbc/lib/classes12.jar:  /home5/coldf/java:  /home5/coldf/java/csvjdbc.jar:  /home5/coldf/java/verona:  /home5/coldf/java/verona/jCO.jar:  /home5/coldf/java/csvjdbc.jar:  /export/home/coldf/coldfusionmx/lib/cfusion.jar
      Java Ext Dirs 
       /export/home/coldf/coldfusionmx/runtime/jre/lib/ext

    And you can use the ColdFusion Code Analyzer
    http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0d04c -7fee.html
    But  yeah, as Dan said, definitely set up a test server and plan a series of tests that must pass.
    -Fernis

  • Adding PayPal's WS doesn't work

    When I try to add PayPal's sandbox Web Service to SJSC via the "Add Web Service" dialog, the Web Service's information is correctly displayed, but when I press the "Add" button, SJSC tells me: "Error occurred while creating the proxy!" This occurs even when I save the WSDL and pertinent XSD files to disk and try to load the Web Service from those.
    Thoughts?
    PayPalSvc.wsdl:
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns="urn:ebay:api:PayPalAPI" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:cc="urn:ebay:apis:CoreComponentTypes" targetNamespace="urn:ebay:api:PayPalAPI">
         <wsdl:types>
              <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ebay:api:PayPalAPI" elementFormDefault="qualified" attributeFormDefault="unqualified">
                   <import namespace="urn:ebay:apis:CoreComponentTypes" schemaLocation="CoreComponentTypes.xsd"/>
                   <import namespace="urn:ebay:apis:eBLBaseComponents" schemaLocation="eBLBaseComponents.xsd"/>
                   <!-- Custom Security header element-->
                   <xs:element name="RequesterCredentials" type="ebl:CustomSecurityHeaderType"/>
                   <!-- API Request/Responses -->
                   <xs:element name="RefundTransactionRequest" type="ns:RefundTransactionRequestType"/>
                   <xs:element name="RefundTransactionResponse" type="ns:RefundTransactionResponseType"/>
                   <xs:element name="RefundTransactionReq">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element ref="ns:RefundTransactionRequest"/>
                             </xs:sequence>
                           </xs:complexType>
                   </xs:element>
                   <xs:complexType name="RefundTransactionRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element name="TransactionID" type="ebl:TransactionId"/>
                                       <xs:element name="RefundType" type="ebl:RefundPurposeTypeCodeType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Amount" type="cc:BasicAmountType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Memo" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                        <xs:complexType name="RefundTransactionResponseType">
                             <xs:complexContent>
                                  <xs:extension base="ebl:AbstractResponseType">
                                  </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:element name="GetTransactionDetailsRequest" type="ns:GetTransactionDetailsRequestType"/>
                   <xs:element name="GetTransactionDetailsResponse" type="ns:GetTransactionDetailsResponseType"/>
                   <xs:element name="GetTransactionDetailsReq">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element ref="ns:GetTransactionDetailsRequest"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:complexType name="GetTransactionDetailsRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element name="TransactionID" type="ebl:TransactionId"/>
                               </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="GetTransactionDetailsResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                                  <xs:sequence>
                                       <xs:element ref="ebl:PaymentTransactionDetails"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:element name="BillUserRequest" type="ns:BillUserRequestType"/>
                   <xs:element name="BillUserResponse" type="ns:BillUserResponseType"/>
                   <xs:element name="BillUserReq">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element ref="ns:BillUserRequest"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:complexType name="BillUserRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element ref="ebl:MerchantPullPaymentDetails"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="BillUserResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                                  <xs:sequence>
                                      <xs:element ref="ebl:BillUserResponseDetails"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:element name="TransactionSearchRequest" type="ns:TransactionSearchRequestType"/>
                   <xs:element name="TransactionSearchResponse" type="ns:TransactionSearchResponseType"/>
                   <xs:element name="TransactionSearchReq">
                        <xs:complexType>
                                 <xs:sequence>
                                  <xs:element ref="ns:TransactionSearchRequest"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:complexType name="TransactionSearchRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element name="StartDate" type="xs:dateTime" minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="EndDate" type="xs:dateTime" minOccurs="0"/>
                                       <xs:element name="Payer" type="ebl:EmailAddressType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Receiver" type="ebl:EmailAddressType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element ref="ebl:ReceiptID" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="TransactionID" type="ebl:TransactionId" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="PayerName" type="ebl:PersonNameType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="AuctionItemNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="InvoiceID" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="TransactionClass" type="ebl:PaymentTransactionClassCodeType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Amount" type="cc:BasicAmountType" minOccurs="0" maxOccurs="1"/>                                   
                                       <xs:element name="CurrencyCode" type="ebl:CurrencyCodeType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Status" type="ebl:PaymentTransactionStatusCodeType" minOccurs="0" maxOccurs="1"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="TransactionSearchResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                                  <xs:sequence>
                                       <xs:element ref="ebl:PaymentTransactions" minOccurs="0" maxOccurs="unbounded"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:element name="MassPayRequest" type="ns:MassPayRequestType"/>
                   <xs:element name="MassPayResponse" type="ns:MassPayResponseType"/>
                   <xs:element name="MassPayReq">
                        <xs:complexType>
                            <xs:sequence>
                                  <xs:element ref="ns:MassPayRequest"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:complexType name="MassPayRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                      <xs:element name="EmailSubject" type="xs:string" minOccurs="0" maxOccurs="1" />
                                       <xs:element name="MassPayItem" type="ns:MassPayRequestItemType" minOccurs="1" maxOccurs="250"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="MassPayResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="MassPayRequestItemType">
                        <xs:annotation>
                             <xs:documentation>
                                  MassPayRequestItemType - Type declaration to be used by other schemas.
                                  Request data from the mass pay request
                             </xs:documentation>
                        </xs:annotation>
                         <xs:sequence>
                            <xs:element name="ReceiverEmail" type="ebl:EmailAddressType" minOccurs="1" maxOccurs="1" />
                             <xs:element name="Amount"        type="cc:BasicAmountType"  minOccurs="1" maxOccurs="1"/>
                            <xs:element name="UniqueId"      type="xs:string"           minOccurs="0" maxOccurs="1" />
                            <xs:element name="Note"          type="xs:string"           minOccurs="0" maxOccurs="1" />
                         </xs:sequence>
                  </xs:complexType>
                   <xs:element name="BAUpdateRequest" type="ns:BAUpdateRequestType"/>
                   <xs:element name="BAUpdateResponse" type="ns:BAUpdateResponseType"/>
                   <xs:element name="BillAgreementUpdateReq">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element ref="ns:BAUpdateRequest"/>
                             </xs:sequence>
                        </xs:complexType>
                   </xs:element>
                   <xs:complexType name="BAUpdateRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element name="MpID"    type="ebl:MerchantPullIDType" minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="Custom"  type="xs:string"             minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="Desc"    type="xs:string"             minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="MpStatus" type="ebl:MerchantPullStatusCodeType" minOccurs="0" maxOccurs="1"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="BAUpdateResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                                  <xs:sequence>
                                      <xs:element ref="ebl:BAUpdateResponseDetails"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:element name="AddressVerifyRequest" type="ns:AddressVerifyRequestType"/>
                   <xs:element name="AddressVerifyResponse" type="ns:AddressVerifyResponseType"/>
                   <xs:element name="AddressVerifyReq">
                        <xs:complexType>
                             <xs:sequence>
                                  <xs:element ref="ns:AddressVerifyRequest"/>
                             </xs:sequence>
                          </xs:complexType>
                   </xs:element>
                   <xs:complexType name="AddressVerifyRequestType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractRequestType">
                                  <xs:sequence>
                                       <xs:element name="Email" type="ebl:EmailAddressType"  minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="Street" type="xs:string"  minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="Zip" type="xs:string"  minOccurs="1" maxOccurs="1"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
                   <xs:complexType name="AddressVerifyResponseType">
                        <xs:complexContent>
                             <xs:extension base="ebl:AbstractResponseType">
                                  <xs:sequence>
                                       <xs:element name="ConfirmationCode" type="ebl:AddressStatusCodeType"  minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="StreetMatch" type="ebl:MatchStatusCodeType"  minOccurs="1" maxOccurs="1"/>
                                       <xs:element name="ZipMatch" type="ebl:MatchStatusCodeType" minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="CountryCode" type="ebl:CountryCodeType"  minOccurs="0" maxOccurs="1"/>
                                       <xs:element name="PayPalToken" type="xs:string" minOccurs="0" maxOccurs="1"/>
                                  </xs:sequence>
                             </xs:extension>
                        </xs:complexContent>
                   </xs:complexType>
              </schema>
         </wsdl:types>
         <wsdl:message name="RequesterCredentials">
              <wsdl:part name="RequesterCredentials" element="ns:RequesterCredentials"/>
         </wsdl:message>
         <wsdl:message name="RefundTransactionRequest">
              <wsdl:part name="RefundTransactionRequest" element="ns:RefundTransactionReq"/>
         </wsdl:message>
         <wsdl:message name="RefundTransactionResponse">
              <wsdl:part name="RefundTransactionResponse" element="ns:RefundTransactionResponse"/>
         </wsdl:message>
         <wsdl:message name="GetTransactionDetailsRequest">
              <wsdl:part name="GetTransactionDetailsRequest" element="ns:GetTransactionDetailsReq"/>
         </wsdl:message>
         <wsdl:message name="GetTransactionDetailsResponse">
              <wsdl:part name="GetTransactionDetailsResponse" element="ns:GetTransactionDetailsResponse"/>
         </wsdl:message>
         <wsdl:message name="BillUserRequest">
              <wsdl:part name="BillUserRequest" element="ns:BillUserReq"/>
         </wsdl:message>
         <wsdl:message name="BillUserResponse">
              <wsdl:part name="BillUserResponse" element="ns:BillUserResponse"/>
         </wsdl:message>
         <wsdl:message name="TransactionSearchRequest">
              <wsdl:part name="TransactionSearchRequest" element="ns:TransactionSearchReq"/>
         </wsdl:message>
         <wsdl:message name="TransactionSearchResponse">
              <wsdl:part name="TransactionSearchResponse" element="ns:TransactionSearchResponse"/>
         </wsdl:message>
         <wsdl:message name="MassPayRequest">
              <wsdl:part name="MassPayRequest" element="ns:MassPayReq"/>
         </wsdl:message>
         <wsdl:message name="MassPayResponse">
              <wsdl:part name="MassPayResponse" element="ns:MassPayResponse"/>
         </wsdl:message>
         <wsdl:message name="BillAgreementUpdateRequest">
              <wsdl:part name="BillAgreementUpdateRequest" element="ns:BillAgreementUpdateReq"/>
         </wsdl:message>
         <wsdl:message name="BAUpdateResponse">
              <wsdl:part name="body" element="ns:BAUpdateResponse"/>
         </wsdl:message>
         <wsdl:message name="AddressVerifyRequest">
              <wsdl:part name="AddressVerifyRequest" element="ns:AddressVerifyReq"/>
         </wsdl:message>
         <wsdl:message name="AddressVerifyResponse">
              <wsdl:part name="AddressVerifyResponse" element="ns:AddressVerifyResponse"/>
         </wsdl:message>
         <wsdl:portType name="PayPalAPIInterface">
              <wsdl:operation name="RefundTransaction">
                   <wsdl:input message="ns:RefundTransactionRequest"/>
                   <wsdl:output message="ns:RefundTransactionResponse"/>
              </wsdl:operation>
              <wsdl:operation name="GetTransactionDetails">
                   <wsdl:input message="ns:GetTransactionDetailsRequest"/>
                   <wsdl:output message="ns:GetTransactionDetailsResponse"/>
              </wsdl:operation>
              <wsdl:operation name="BillUser">
                   <wsdl:input message="ns:BillUserRequest"/>
                   <wsdl:output message="ns:BillUserResponse"/>
              </wsdl:operation>
              <wsdl:operation name="TransactionSearch">
                   <wsdl:input message="ns:TransactionSearchRequest"/>
                   <wsdl:output message="ns:TransactionSearchResponse"/>
              </wsdl:operation>
              <wsdl:operation name="MassPay">
                   <wsdl:input message="ns:MassPayRequest"/>
                   <wsdl:output message="ns:MassPayResponse"/>
              </wsdl:operation>
              <wsdl:operation name="BillAgreementUpdate">
                   <wsdl:input message="ns:BillAgreementUpdateRequest"/>
                   <wsdl:output message="ns:BAUpdateResponse"/>
              </wsdl:operation>
              <wsdl:operation name="AddressVerify">
                   <wsdl:input message="ns:AddressVerifyRequest"/>
                   <wsdl:output message="ns:AddressVerifyResponse"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="PayPalAPISoapBinding" type="ns:PayPalAPIInterface">
              <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="RefundTransaction">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="GetTransactionDetails">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="BillUser">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="TransactionSearch">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="MassPay">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="BillAgreementUpdate">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
              <wsdl:operation name="AddressVerify">
                   <wsdlsoap:operation/>
                   <wsdl:input>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <wsdlsoap:header use="literal" message="ns:RequesterCredentials" part="RequesterCredentials"/>
                        <wsdlsoap:body use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="PayPalAPIInterfaceService">
              <wsdl:port binding="ns:PayPalAPISoapBinding" name="PayPalAPI">
                   <wsdlsoap:address location="https://api.paypal.com/2.0/"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>

    The WSDL is incorrect. JAX-RPC can parse it correctly but generating Java source is another story.
    I get "missing "soapAction" attribute" messages when I run it through SOAPScope. The wsdl:soapoperation tags are supposed to have soapAction attributes according to the SOAP 1.1 spec:
    "SOAP 1.1 messages being sent over HTTP is indicated by the "transport" attribute on soap:binding extensions having a value of "http://schemas.xmlsoap.org/wsdl/http/". All SOAP 1.1 messages over HTTP must contain an HTTP header called "soapAction". The value for this header is specified in the "soapAction" attribute on the soap:operation for every wsdl:operation in the wsdl:binding. The soap:operation must be present for each operation and the "soapAction" attribute must be present and contain the appropriate value for the "soapAction" HTTP header. Either the "soapAction" attribute was missing or the soap:operation was missing for the wsdl:operation in question."
    I'm trying to work with the JAX-RPC folks to get better reporting out of the tools used in Creator so you'd see these kinds of messages in the results window.
    Cheers!
    -David

  • What are the ways to integrate PayPal (or other monetizing service) into an Adobe AIR desktop app?

    Hey all
    I just finished publishing my AIR mobile app for iOS and Android, both featuring freemium style in-app purchasing/billing, for a single purpose only - opening the app to be full featured.
    Now the client wants a desktop version of the app. I need a way to monetize the same way: the user wants all the features - they click a button in the app, pay the 2 dollars, and now all the features are accessible.
    I think going out to PayPal, paying there and returning to the app would be best, but I cannot get the files I found here to work.
    Do you have any suggestions of a workflow with examples, or a service with AS3 support?
    thanx

    http://www.as3gamegears.com/monetization/as3-paypal-api/

Maybe you are looking for

  • I can't update iPhoto. Help?

    I tried to update iPhoto and I can't because the wrong apple ID is automatically filled in (appears grey) and I cannot change it. Although the wrong apple ID is an email address that is recognized by my apple ID account (like my icloud email and back

  • How to have 2 different ipods on one itunes..

    For the longest time i've been the only one with an ipod in my family, so I just imported through my main music library. Now my sister has an ipod, and I need to know how to make it so we can have seperate song folders that won't sinc eachothers musi

  • GroupLayout can only be used with one Container at a time

    Dear all, I am a beginner so please don't throw rocks at me... I have created two frames with NetBeans. One is the main frame (extends from JPanel) and the other frame I put it to be started when pressing a button from the main frame (the second fram

  • Help with broken earbuds

    Ive had my ipod mini for about 17 months,and im not under warrenty. On my ear buds, the wire detached from the base of the earbud. Do you think Apple will replace this if i go to the store or send in a request? Or should I just buy new ones myself? T

  • Problems installing Windows8.1 on High Performance MBPr late 2013 running Mavericks.

    Hi, im currently new to MacOSX ( i made the jump from PCs) and although i think the overall experience on MacOSX is perfect i still need to run Windows natively on my mac ( i dont trust virtualisation programs.) and then i started to investigate how