Business-CyberSource
view release on metacpan or search on metacpan
lib/Business/CyberSource/Client.pm view on Meta::CPAN
package Business::CyberSource::Client;
use 5.010;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '0.010008'; # VERSION
use Moose;
with 'MooseY::RemoteHelper::Role::Client';
use Type::Utils qw( duck_type );
use Type::Params qw( compile Invocant );
use MooseX::Types::Common::String qw( NonEmptyStr NonEmptySimpleStr );
use Config;
use Module::Runtime qw( use_module );
use Module::Load qw( load );
use XML::Compile::SOAP::WSS 1.04;
use XML::Compile::WSDL11;
use XML::Compile::SOAP11;
use XML::Compile::Transport::SOAPHTTP;
use File::ShareDir::ProjectDistDir 1.000
dist_file => defaults => { strict => 1 };
our @CARP_NOT = ( __PACKAGE__, qw( Class::MOP::Method::Wrapped ) );
sub submit { ## no critic ( Subroutines::RequireArgUnpacking )
state $check = compile( Invocant, duck_type(['serialize']));
my ( $self, $request ) = $check->( @_ );
if ( $self->has_rules && ! $self->rules_is_empty ) {
my $result;
RULE: foreach my $rule ( @{ $self->_rules } ) {
$result = $rule->run( $request );
last RULE if defined $result;
}
return $self->_response_factory->create( $result, $request )
if defined $result
;
}
my %request = (
merchantID => $self->user,
clientEnvironment => $self->env,
clientLibrary => $self->name,
clientLibraryVersion => $self->version,
%{ $request->serialize },
);
if ( $self->debug >= 1 ) {
load 'Carp';
load 'Data::Printer', alias => 'Dumper';
Carp::carp( 'REQUEST HASH: ' . Dumper( \%request ) );
}
my ( $answer, $trace ) = $self->_soap_client->( %request );
if ( $self->debug >= 2 ) {
Carp::carp "\n> " . $trace->request->as_string;
Carp::carp "\n< " . $trace->response->as_string;
}
( run in 0.761 second using v1.01-cache-2.11-cpan-39bf76dae61 )