Business-eWAY-RapidAPI

 view release on metacpan or  search on metacpan

lib/Business/eWAY/RapidAPI.pm  view on Meta::CPAN

package Business::eWAY::RapidAPI;
$Business::eWAY::RapidAPI::VERSION = '0.11';

# ABSTRACT: eWAY RapidAPI V3

use Moo;
use Business::eWAY::RapidAPI::CreateAccessCodeRequest;
use Business::eWAY::RapidAPI::GetAccessCodeResultRequest;
use Business::eWAY::RapidAPI::TransactionRequest;
use Data::Dumper;
use WWW::Mechanize;
use IO::Socket::SSL qw( SSL_VERIFY_NONE );

with 'Business::eWAY::RapidAPI::Role::Parser';
with 'Business::eWAY::RapidAPI::Role::ErrorCodeMap';

has 'mode' => ( is => 'rw', default => sub { 'live' } );
has 'urls' => ( is => 'lazy' );

sub _build_urls {
    my $self = shift;
    if ( $self->mode eq 'live' ) {
        return {
            'PaymentService.Soap' =>
              'https://api.ewaypayments.com/soap.asmx?WSDL',
            'PaymentService.POST.CreateAccessCode' =>
              'https://api.ewaypayments.com/CreateAccessCode.xml',
            'PaymentService.POST.GetAccessCodeResult' =>
              'https://api.ewaypayments.com/GetAccessCodeResult.xml',
            'PaymentService.REST' => 'https://api.ewaypayments.com/',
            'PaymentService.RPC'  => 'https://api.ewaypayments.com/json-rpc',
            'PaymentService.JSONPScript' =>
              'https://api.ewaypayments.com/JSONP/v1/js',
        };
    }
    else {
        return {
            'PaymentService.Soap' =>
              'https://api.sandbox.ewaypayments.com/Soap.asmx?WSDL',
            'PaymentService.POST.CreateAccessCode' =>
              'https://api.sandbox.ewaypayments.com/CreateAccessCode.xml',
            'PaymentService.POST.GetAccessCodeResult' =>
              'https://api.sandbox.ewaypayments.com/GetAccessCodeResult.xml',
            'PaymentService.REST' => 'https://api.sandbox.ewaypayments.com/',
            'PaymentService.RPC' =>
              'https://api.sandbox.ewaypayments.com/json-rpc',
            'PaymentService.JSONPScript' =>
              'https://api.sandbox.ewaypayments.com/JSONP/v1/js',
        };
    }
}

has 'username' => ( is => 'rw', required => 1 );
has 'password' => ( is => 'rw', required => 1 );
has 'debug'    => ( is => 'rw', default  => sub { 0 } );
has 'ShowDebugInfo' => ( is => 'lazy' );
sub _build_ShowDebugInfo { (shift)->debug }

has 'Request_Method' =>
  ( is => 'rw', required => 1, default => sub { 'REST' } );
has 'Request_Format' =>
  ( is => 'rw', required => 1, default => sub { 'JSON' } );

has 'ua' => ( is => 'lazy' );

sub _build_ua {
    my $self = shift;
    return WWW::Mechanize->new(
        timeout     => 60,
        autocheck   => 0,
        stack_depth => 1,
        ssl_opts    => {



( run in 1.859 second using v1.01-cache-2.11-cpan-39bf76dae61 )