Business-eWAY-RapidAPI

 view release on metacpan or  search on metacpan

examples/web/cgi-bin/default.pl  view on Meta::CPAN


    ## Populate values for LineItems
    my $item1 = Business::eWAY::RapidAPI::LineItem->new();
    $item1->SKU("SKU1");
    $item1->Description("Description1");
    my $item2 = Business::eWAY::RapidAPI::LineItem->new();
    $item2->SKU("SKU2");
    $item2->Description("Description2");
    $request->Items->LineItem( [ $item1, $item2 ] );

    ## Populate values for Options
    my $opt1 =
      Business::eWAY::RapidAPI::Option->new( Value => $q->param('txtOption1') );
    my $opt2 =
      Business::eWAY::RapidAPI::Option->new( Value => $q->param('txtOption2') );
    my $opt3 =
      Business::eWAY::RapidAPI::Option->new( Value => $q->param('txtOption3') );
    $request->Options->Option( [ $opt1, $opt2, $opt3 ] );

    $request->Payment->TotalAmount( $q->param('txtAmount') );
    $request->Payment->InvoiceNumber( $q->param('txtInvoiceNumber') );
    $request->Payment->InvoiceDescription( $q->param('txtInvoiceDescription') );
    $request->Payment->InvoiceReference( $q->param('txtInvoiceReference') );
    $request->Payment->CurrencyCode( $q->param('txtCurrencyCode') );

    ## Url to the page for getting the result with an AccessCode
    $request->RedirectUrl( $q->param('txtRedirectURL') );
    ## Method for this request. e.g. ProcessPayment, Create TokenCustomer, Update TokenCustomer & TokenPayment
    $request->Method( $q->param('ddlMethod') );

    my $result;
    eval { $result = $rapidapi->CreateAccessCode($request); };

    if ($@) {
        print $session->header();
        print $@;
        exit;
    }

    ## Save result into Session. payment.pl and results.pl will retrieve this result from Session
    $session->param( 'TotalAmount',      $q->param('txtAmount') );
    $session->param( 'InvoiceReference', $q->param('txtInvoiceReference') );
    $session->param( 'Response',         $result );
    $session->flush();

    ## Check if any error returns
    if ( defined( $result->{'Errors'} ) ) {
        $lblError = $rapidapi->ErrorsToString( $result->{'Errors'} );
    }
    else {
        ## All good then redirect to the payment page
        print $session->header( -location => 'payment.pl' );
        exit();
    }
}

print $session->header();
$session->flush();
## Content
print
qq|<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">|
  . qq|<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">|
  . qq|<head>|
  . qq|    <title></title>|
  . qq|    <link href="../Styles/Site.css" rel="stylesheet" type="text/css" />|
  . qq|    <link href="../Styles/jquery-ui-1.8.11.custom.css" rel="stylesheet" type="text/css" />|
  . qq|    <script src="../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>|
  . qq|    <script src="../Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script>|
  . qq|    <script src="../Scripts/jquery.ui.datepicker-en-GB.js" type="text/javascript"></script>|
  . qq|    <script type="text/javascript" src="../Scripts/tooltip.js"></script>|
  . qq|</head>|
  . qq|<body>|
  . qq|    <form method="POST">|
  . qq|    <center>|
  . qq|        <div id="outer">|
  . qq|            <div id="toplinks">|
  . qq|                <img alt="eWAY Logo" class="logo" src="../Images/companylogo.gif" width="960px" height="65px" />|
  . qq|            </div>|
  . qq|            <div id="main">| . qq||
  . qq|    <div id="titlearea">|
  . qq|        <h2>Sample Merchant Page</h2>|
  . qq|    </div>|;

if ( defined($lblError) ) {
    print qq|    <div id="error">|
      . qq|        <label style="color:red"> $lblError </label>|
      . qq|    </div>|;
}

print qq|    <div id="maincontent">|
  . qq|        <div class="transactioncustomer">|
  . qq|            <div class="header first">|
  . qq|                Request Options|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtRedirectURL">Redirect URL</label>|
  . qq|                <input id="txtRedirectURL" name="txtRedirectURL" type="text" value="$redirect_url" />|
  . qq|            </div>|
  . qq|            <div class="header">|
  . qq|                Payment Details|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtAmount">Amount &nbsp;<img src="../Images/question.gif" alt="Find out more" id="amountTipOpener" border="0" /></label>|
  . qq|                <input id="txtAmount" name="txtAmount" type="text" value="100" />|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtCurrencyCode">Currency Code </label>|
  . qq|                <input id="txtCurrencyCode" name="txtCurrencyCode" type="text" value="AUD" />|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtInvoiceNumber">Invoice Number</label>|
  . qq|                <input id="txtInvoiceNumber" name="txtInvoiceNumber" type="text" value="Inv 21540" />|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtInvoiceReference">Invoice Reference</label>|
  . qq|                <input id="txtInvoiceReference" name="txtInvoiceReference" type="text" value="513456" />|
  . qq|            </div>|
  . qq|            <div class="fields">|
  . qq|                <label for="txtInvoiceDescription">Invoice Description</label>|
  . qq|                <input id="txtInvoiceDescription" name="txtInvoiceDescription" type="text" value="Individual Invoice Description" />|
  . qq|            </div>|



( run in 0.652 second using v1.01-cache-2.11-cpan-172d661cebc )