NAME

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

VERSION

version 0.004004

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

username

Reader: username

Type: __ANON__

production

Reader: production

Type: Bool

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)