NAME

Business::CyberSource::Request - CyberSource Request Factory Module

VERSION

version v0.4.1

SYNOPSIS

my $CYBS_ID = 'myMerchantID';
my $CYBS_KEY = 'transaction key generated with cybersource';

use Business::CyberSource::Request;

my $request_factory
	= Business::CyberSource::Request->new({
		username       => $CYBS_ID,
		password       => $CYBS_KEY,
		production     => 0,
	});

my $request_obj = $request_factory->create(
	'Authorization',
	{
		reference_code => '42',
		first_name     => 'Caleb',
		last_name      => 'Cushing',
		street         => 'somewhere',
		city           => 'Houston',
		state          => 'TX',
		zip            => '77064',
		country        => 'US',
		email          => 'xenoterracide@gmail.com',
		total          => 5.00,
		currency       => 'USD',
		credit_card    => '4111111111111111',
		cc_exp_month   => '09',
		cc_exp_year    => '2013',
	}
);

DESCRIPTION

This module provides a generic factory interface to creating request objects. It also allows us to not repeat ourselves when specifying attributes that are common to all requests such as authentication, and server destination.

ATTRIBUTES

password

Reader: password

Type: MooseX::Types::Common::String::NonEmptyStr

Additional documentation: your SOAP transaction key

production

Reader: production

Type: Bool

Additional documentation: 0: test server. 1: production server

username

Reader: username

Type: MooseX::Types::Varchar::Varchar[30]

Additional documentation: Your CyberSource merchant ID. Use the same merchantID for evaluation, testing, and production

METHODS

new([{ hashref }])

supports passing the attributes listed below as a hashref.

create( $implementation, { hashref for new } )

Create a new request object. create takes a request implementation and a hashref to pass to the implementation's new method. The implementation string accepts any implementation whose package name is prefixed by Business::CyberSource::Request::.

my $req = $factory->create(
		'Capture',
		{
			first_name => 'John',
			last_name  => 'Smith',
			...
		}
	);

Please see the following Business::CyberSource::Request:: packages for implementation and required attributes:

note: You can use the Business:CyberSource::Request::Credit class but, it requires traits to be applied depending on the type of request you need, and thus does not currently work with the factory.

SEE ALSO

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/xenoterracide/Business-CyberSource/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

Caleb Cushing <xenoterracide@gmail.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Caleb Cushing.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)