[prev in list] [next in list] [prev in thread] [next in thread] 

List:       interchange-users
Subject:    Re: [ic] SOAP in a payment module - help requested
From:       Josh Lavin <josh () perusion ! com>
Date:       2013-12-20 15:55:14
Message-ID: 20131220155514.GX23751 () mr-eko ! kdw ! us
[Download RAW message or body]

Quoting Stefan Hornburg (Racke) (racke@linuxia.de):
> On 12/20/2013 02:45 PM, Glenn McCalley wrote:
> > Greetings,
> > 
> > The client for one of our stores requires us to use a "non-standard" payment \
> > service that provides them with some reporting on sales.  We have processed these \
> > payments using an IC payment module hacked from the authorizenet module for \
> > several years. 
> > Now, the payment processor has rewritten their system under Windows and is
> > requiring a SOAP / XML type transaction.  (-I- think somebody must have gone
> > to a Micro$oft road show...).
> > 
> > My usual approach is to write a program run from the command line with dummy
> > data just to get a transaction to process.  When that succeeds, integrate the \
> > core code from that program into an IC Payment module and there we are.  This \
> > time I just can't get the durn thing to work AT ALL - can't even get a response \
> > from the server like "invalid card".  All I can get is "Object reference not set \
> > to an instance of an object".  Having not worked with SOAP, and finding Google \
> > entries for that message equally obtuse I am floundering and out of time.
> > 
> > SO!  If there is someone out there who knows of a working SOAP payment module
> > I can hack up or wwho has relevant experience who would like to take a crack at \
> > this compensation is available.
> > 
> 
> We developed this year a payment module for Ipayment, which is based on \
> XML::Compile::SOAP (better suited for SOAP than old crufty SOAP::Lite).

There are currently two Interchange payment modules that use SOAP (via
SOAP::Lite), CyberSource and PaypalExpress.

I am also developing a payment module using SOAP/XML, but found both of
those examples to be pretty complicated.

Here is a snippet from my module in-progress, which is the SOAP call and
response, simplified for me... 

    my $host = charge_param('test') ? 'staging.merchantware.net' : \
'ps1.merchantware.net';

	## the query hash is the stuff you are sending.
    my @parms;
    while (my ($k,$v) = each %query) {
        push @parms, SOAP::Data->name($k => $v);
    }
    my $soap = SOAP::Lite->new( proxy => \
"https://$host/Merchantware/ws/RetailTransaction/v4/Credit.asmx" );  \
$soap->default_ns('http://schemas.merchantwarehouse.com/merchantware/40/Credit/');  \
$soap->on_action( sub { join '', @_ } );  # make it ok for .NET  my $reply = \
$soap->call($method, @parms);

#::logDebug("mw result: $reply");
#::logDebug("mw: ".  uneval($reply) );

    my $reply_hash;
    if ($reply->fault) {
		## not handled yet
    }
    else {
        $reply_hash = $reply->valueof('Body/' . $method . 'Response/' .  $method . \
'Result');  }

Maybe that will help you along. You can find support from many
consultants, including Perusion at http://www.perusion.com.

-- 
Josh Lavin
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
... ask me about job opportunities ...

_______________________________________________
interchange-users mailing list
interchange-users@icdevgroup.org
http://www.icdevgroup.org/mailman/listinfo/interchange-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic