Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
P is for Practical
 
PerlMonks  

Re^5: Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl

by tangent (Chaplain)
on Feb 20, 2012 at 21:44 UTC ( #955160=note: print w/ replies, xml ) Need Help??


in reply to Re^4: Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl
in thread Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl

AFAIK, the parameters passed in a WSDL tranaction are in XML format, so I think the PHP classes at some point serialize to XML, though that is not obvious from the PHP code you posted. From what I could make out of SOAP::WSDL::Manual - Accessing WSDL based web services, you will need to create a class (or classes) which is a subclass of SOAP::WSDL::XSD::Typelib::ComplexType and then use that in much the same way as the PHP call does. The information you need to define your classes will be in the wsdl file somewhere, though you might be able to just adapt what's there in the PHP.

Update - Looking at the docs again, it gives this example:

my $soap = SOAP::WSDL->new( wsdl => 'file://bla.wsdl', ); my $result = $soap->call('MyMethod', %data);
It says "Your data is serialized according to the rules in the WSDL" so it looks like you could feed in your wsdl file and then see what it expects %data to be. And do hang around for a bit, I'm sure someone else here can s/:-(/:-)/


Comment on Re^5: Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl
Select or Download Code
Re^6: Trouble getting started with SOAP (SOAP::Lite, SOAP::WSDL), translating from PHP to Perl
by Anonymous Monk on Feb 21, 2012 at 16:21 UTC

    Thanks Tangent

    Running "perl wsdl2perl.pl -b base_dir URL" on the wsdl file I'd saved worked fine, but trying it on the server, using the real URL, failed (with a server error - though it didn't specify what the error is).

    I suspect that the second argument in the PHP call is the equivalent of a typemap (given the way it is constructed), and the page you pointed to says a few things about a possible need to provide a typemap, but not how to make it. Moreover, either it doesn't say, of I missed, how you provide the typemap in a call to function new when creating a new SOAP object. Can 'wsdl2perl.pl' be used to create the typemap from the wsdl file? If so, how? And then, when you have it, how do you use the typemap produced when you make a new SOAP instance?

    Thanks

      It seems what you are trying to do is credit card payment authorization? Now, I'm wondering if you have tried the PHP code, and does it work? There may be other issues such as authentication or encryption. Can you show the Perl code you are using now - and maybe start a new comment because this thread is getting a bit narrow.

        Actually, one of the things I'd said at the beginning was that the PHP code worked, and the issue I face is translating it into Perl. Further, the point of failure is before authentication can happen.

        The point of translating it into Perl was so that I could connect to the wsdl server using my own CGI code. I have 'integrations' into a bunch of different credit card processors' servers (so a merchant can simply connect to my cgi API, over SSL/TLS, with his account info including the rocessor ID, and submit his transactions. This way, the merchant need not worry about integrating into a bunch of different processors for their various accounts (many merchants have several accounts with different processors, and that can make managign these accounts in their CRM and shopping carts a nightmare; and my system greatly simplifies that). But all my networking software is written in perl.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://955160]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (7)
As of 2014-04-20 19:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (486 votes), past polls