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. -
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 -
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. -
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> -
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/extAnd 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 -
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?
thanxhttp://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
-
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