Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Mypay;
- $Mypay::TEST = 0;
- $Mypay::VERSION = 1.0;
- $Mypay::URL = 'https://INSERT_YOUR_TEST_URL_HERE/';
- $Mypay::TEST_URL = 'https://INSERT_YOUR_PRODUCTION_URL_HERE/';
- package Mypay::Base;
- use strict;
- sub new
- {
- my $pkg = shift;
- my $obj = {
- 'errors' => [],
- };
- bless $obj, $pkg;
- if ($Mypay::TEST)
- {
- $obj->setBaseURL($Mypay::TEST_URL);
- }
- else
- {
- $obj->setBaseURL($Mypay::URL);
- }
- $obj->setTimeoutWindow(10*60*1000); # in miliseconds
- return $obj;
- }
- sub _clear_results { }
- sub addError
- {
- my $obj = shift;
- my $error_text = shift;
- push(@{ $obj->{'errors'} }, $error_text);
- }
- sub isValid
- {
- my $obj = shift;
- my $name = shift;
- return 1 if (defined $obj->{'parameters'}->{ $name });
- return 0;
- }
- sub isAssigned
- {
- my $obj = shift;
- my $name = shift;
- return 0 unless ($obj->isValid($name));
- return 1 if (defined $obj->{'parameters'}->{ $name }->{ 'value'});
- return 0;
- }
- sub getField
- {
- my $obj = shift;
- my $name = shift;
- if (! $obj->isValid($name))
- {
- $obj->addError("Cannot obtain information for field '$name' since field is invalid");
- return 0;
- }
- return $obj->{'parameters'}->{ $name };
- }
- sub getValue
- {
- my $obj = shift;
- my $name = shift;
- if ($name =~ /^\s*KEY\s*$/i)
- {
- return $obj->{'key'};
- }
- if (! $obj->isValid($name))
- {
- $obj->addError("Cannot obtain information for field '$name' since field is invalid");
- return 0;
- }
- if (! $obj->isAssigned($name))
- {
- $obj->addError("Cannot obtain value from field '$name' since field has not be assigned a value.");
- return 0;
- }
- return $obj->{'parameters'}->{ $name }->{ 'value'};
- }
- sub assign
- {
- my $obj = shift;
- my $name = shift;
- my $value = shift;
- return $obj->assignValue($name, $value);
- }
- sub setKey
- {
- my $obj = shift;
- my $value = shift;
- $obj->assign('key',$value);
- }
- sub getKey
- {
- my $obj = shift;
- my $value = shift;
- return $obj->get('key',$value);
- }
- sub get
- {
- my $obj = shift;
- my $parameterName = shift;
- return $obj->getValue( $parameterName );
- }
- sub assignValue
- {
- my $obj = shift;
- my $name = shift;
- my $value = shift;
- $obj->_clear_results();
- if ($name =~ /^\s*KEY\s*$/i)
- {
- if (length($value) <= 1)
- {
- $obj->addError("Key value is too small.");
- return 0;
- }
- $obj->{'key'} = $value;
- return 1;
- }
- if (! $obj->isValid($name))
- {
- $obj->addError("Cannot assign value to field '$name' since field is invalid");
- return 0;
- }
- $obj->{'parameters'}->{ $name }->{ 'value' } = $value;
- return 1;
- }
- sub listValidParameters
- {
- my $obj = shift;
- my $list = join(", ", (sort @{ $obj->{'parameter_order'} }));
- return "Valid Parameters: $list";
- }
- sub setBaseURL
- {
- my $obj = shift;
- $obj->{'base_url'} = shift;
- }
- sub getBaseURL
- {
- my $obj = shift;
- return $obj->{'base_url'};
- }
- sub setTimeoutWindow
- {
- my $obj = shift;
- $obj->{'timeout_window'} = shift;
- }
- sub getTimeoutWindow
- {
- my $obj = shift;
- return $obj->{'timeout_window'};
- }
- sub isError
- {
- my $obj = shift;
- my $count = $#{ $obj->{'errors'} };
- if ($count >= 0)
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
- sub errors
- {
- my $obj = shift;
- my $del = shift || "\n<li>";
- if ($obj->isError())
- {
- return $del . join($del, @{ $obj->{'errors'} });
- }
- }
- package Mypay::PayData;
- use strict;
- use base qw(Mypay::Base);
- sub new
- {
- my $pkg = shift;
- my $parameters1 = {
- 'retriesAllowed' => {
- 'dateType' => 'String',
- 'parameter' => 'Retries Allowed',
- 'maxLength' => '1',
- 'hashOrder' => '34',
- 'parameterName' => 'retriesAllowed',
- 'passedToQuickPAY' => 'Optional'
- },
- 'dueDate' => {
- 'dateType' => '"Date yyyymmdd"',
- 'parameter' => 'Due Date',
- 'maxLength' => '8',
- 'hashOrder' => '11',
- 'parameterName' => 'dueDate',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice3' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 3',
- 'maxLength' => '50',
- 'hashOrder' => '14',
- 'parameterName' => 'userChoice3',
- 'passedToQuickPAY' => 'Optional'
- },
- 'state' => {
- 'dateType' => 'String',
- 'parameter' => 'State',
- 'maxLength' => '2',
- 'hashOrder' => '26',
- 'parameterName' => 'state',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice9' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 9',
- 'maxLength' => '50',
- 'hashOrder' => '20',
- 'parameterName' => 'userChoice9',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice7' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 7',
- 'maxLength' => '50',
- 'hashOrder' => '18',
- 'parameterName' => 'userChoice7',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice6' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 6',
- 'maxLength' => '50',
- 'hashOrder' => '17',
- 'parameterName' => 'userChoice6',
- 'passedToQuickPAY' => 'Optional'
- },
- 'redirectUrlParameters' => {
- 'dateType' => 'String',
- 'parameter' => 'Redirect URL Parameters',
- 'maxLength' => 'NA',
- 'hashOrder' => '33',
- 'parameterName' => 'redirectUrlParameters',
- 'passedToQuickPAY' => 'Optional'
- },
- 'email' => {
- 'dateType' => 'String',
- 'parameter' => 'Email',
- 'maxLength' => '50',
- 'hashOrder' => '31',
- 'parameterName' => 'email',
- 'passedToQuickPAY' => 'Optional'
- },
- 'daytimePhone' => {
- 'dateType' => 'String',
- 'parameter' => 'Day time Phone',
- 'maxLength' => '20',
- 'hashOrder' => '29',
- 'parameterName' => 'daytimePhone',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice2' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 2',
- 'maxLength' => '50',
- 'hashOrder' => '13',
- 'parameterName' => 'userChoice2',
- 'passedToQuickPAY' => 'Optional'
- },
- 'currentBalance' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Current Balance',
- 'maxLength' => '12',
- 'hashOrder' => '10',
- 'parameterName' => 'currentBalance',
- 'passedToQuickPAY' => 'Optional'
- },
- 'orderType' => {
- 'dateType' => 'String',
- 'parameter' => 'Order Type',
- 'maxLength' => '32',
- 'hashOrder' => '1',
- 'parameterName' => 'orderType',
- 'passedToQuickPAY' => 'Yes'
- },
- 'streetTwo' => {
- 'dateType' => 'String',
- 'parameter' => 'Street Two',
- 'maxLength' => '50',
- 'hashOrder' => '24',
- 'parameterName' => 'streetTwo',
- 'passedToQuickPAY' => 'Optional'
- },
- 'contentEmbedded' => {
- 'dateType' => 'true',
- 'parameter' => 'Content Embedded',
- 'maxLength' => '4',
- 'hashOrder' => '35',
- 'parameterName' => 'contentEmbedded',
- 'passedToQuickPAY' => 'Optional'
- },
- 'streetOne' => {
- 'dateType' => 'String',
- 'parameter' => 'Street One',
- 'maxLength' => '50',
- 'hashOrder' => '23',
- 'parameterName' => 'streetOne',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice8' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 8',
- 'maxLength' => '50',
- 'hashOrder' => '19',
- 'parameterName' => 'userChoice8',
- 'passedToQuickPAY' => 'Optional'
- },
- 'orderDescription' => {
- 'dateType' => 'String',
- 'parameter' => 'Order Description',
- 'maxLength' => '32',
- 'hashOrder' => '4',
- 'parameterName' => 'orderDescription',
- 'passedToQuickPAY' => 'Optional'
- },
- 'zip' => {
- 'dateType' => 'String',
- 'parameter' => 'Zip',
- 'maxLength' => '10',
- 'hashOrder' => '27',
- 'parameterName' => 'zip',
- 'passedToQuickPAY' => 'Optional'
- },
- 'balance' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Balance',
- 'maxLength' => '12',
- 'hashOrder' => '9',
- 'parameterName' => 'balance',
- 'passedToQuickPAY' => 'Optional'
- },
- 'orderName' => {
- 'dateType' => 'String',
- 'parameter' => 'Order Name',
- 'maxLength' => '32',
- 'hashOrder' => '3',
- 'parameterName' => 'orderName',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice1' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 1',
- 'maxLength' => '50',
- 'hashOrder' => '12',
- 'parameterName' => 'userChoice1',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice4' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 4',
- 'maxLength' => '50',
- 'hashOrder' => '15',
- 'parameterName' => 'userChoice4',
- 'passedToQuickPAY' => 'Optional'
- },
- 'amountDue' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Amount Due',
- 'maxLength' => '12',
- 'hashOrder' => '7',
- 'parameterName' => 'amountDue',
- 'passedToQuickPAY' => 'Optional'
- },
- 'userChoice5' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 5',
- 'maxLength' => '50',
- 'hashOrder' => '16',
- 'parameterName' => 'userChoice5',
- 'passedToQuickPAY' => 'Optional'
- },
- 'redirectUrl' => {
- 'dateType' => 'String',
- 'parameter' => 'Redirect URL',
- 'maxLength' => '100',
- 'hashOrder' => '32',
- 'parameterName' => 'redirectUrl',
- 'passedToQuickPAY' => 'Optional'
- },
- 'city' => {
- 'dateType' => 'String',
- 'parameter' => 'City',
- 'maxLength' => '20',
- 'hashOrder' => '25',
- 'parameterName' => 'city',
- 'passedToQuickPAY' => 'Optional'
- },
- 'timestamp' => {
- 'dateType' => 'String',
- 'parameter' => 'Time Stamp',
- 'maxLength' => '13',
- 'hashOrder' => '36',
- 'parameterName' => 'timestamp',
- 'passedToQuickPAY' => 'Yes'
- },
- 'userChoice10' => {
- 'dateType' => 'String',
- 'parameter' => 'User Choice 10',
- 'maxLength' => '50',
- 'hashOrder' => '21',
- 'parameterName' => 'userChoice10',
- 'passedToQuickPAY' => 'Optional'
- },
- 'paymentMethod' => {
- 'dateType' => 'String',
- 'parameter' => 'Payment Method',
- 'maxLength' => '6',
- 'hashOrder' => '22',
- 'parameterName' => 'paymentMethod',
- 'passedToQuickPAY' => 'Optional'
- },
- 'orderNumber' => {
- 'dateType' => 'String',
- 'parameter' => 'Order Number',
- 'maxLength' => '32',
- 'hashOrder' => '2',
- 'parameterName' => 'orderNumber',
- 'passedToQuickPAY' => 'Optional'
- },
- 'country' => {
- 'dateType' => 'String',
- 'parameter' => 'Country',
- 'maxLength' => '20',
- 'hashOrder' => '28',
- 'parameterName' => 'country',
- 'passedToQuickPAY' => 'Optional'
- },
- 'orderFee' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Order Fee',
- 'maxLength' => '12',
- 'hashOrder' => '6',
- 'parameterName' => 'orderFee',
- 'passedToQuickPAY' => 'Optional'
- },
- 'currentAmountDue' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Current Amount Due',
- 'maxLength' => '12',
- 'hashOrder' => '8',
- 'parameterName' => 'currentAmountDue',
- 'passedToQuickPAY' => 'Optional'
- },
- 'amount' => {
- 'dateType' => '"Cents no decimal"',
- 'parameter' => 'Amount',
- 'maxLength' => '12',
- 'hashOrder' => '5',
- 'parameterName' => 'amount',
- 'passedToQuickPAY' => 'Optional'
- },
- 'eveningPhone' => {
- 'dateType' => 'String',
- 'parameter' => 'Night time Phone',
- 'maxLength' => '20',
- 'hashOrder' => '30',
- 'parameterName' => 'eveningPhone',
- 'passedToQuickPAY' => 'Optional'
- }
- };
- my $parameter_order1 = [
- 'orderType',
- 'orderNumber',
- 'orderName',
- 'orderDescription',
- 'amount',
- 'orderFee',
- 'amountDue',
- 'currentAmountDue',
- 'balance',
- 'currentBalance',
- 'dueDate',
- 'userChoice1',
- 'userChoice2',
- 'userChoice3',
- 'userChoice4',
- 'userChoice5',
- 'userChoice6',
- 'userChoice7',
- 'userChoice8',
- 'userChoice9',
- 'userChoice10',
- 'paymentMethod',
- 'streetOne',
- 'streetTwo',
- 'city',
- 'state',
- 'zip',
- 'country',
- 'daytimePhone',
- 'eveningPhone',
- 'email',
- 'redirectUrl',
- 'redirectUrlParameters',
- 'retriesAllowed',
- 'contentEmbedded',
- 'timestamp'
- ];
- my $obj = $pkg->SUPER::new();
- $obj->{'parameters'} = $parameters1;
- $obj->{'parameter_order'} = $parameter_order1;
- bless $obj, $pkg;
- return $obj;
- }
- sub getOrderType
- {
- my $obj = shift;
- return $obj->getValue( 'orderType' );
- }
- sub setOrderType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderType', $parameterValue);
- }
- sub getOrderNumber
- {
- my $obj = shift;
- return $obj->getValue( 'orderNumber' );
- }
- sub setOrderNumber
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderNumber', $parameterValue);
- }
- sub getOrderName
- {
- my $obj = shift;
- return $obj->getValue( 'orderName' );
- }
- sub setOrderName
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderName', $parameterValue);
- }
- sub getOrderDescription
- {
- my $obj = shift;
- return $obj->getValue( 'orderDescription' );
- }
- sub setOrderDescription
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderDescription', $parameterValue);
- }
- sub getAmount
- {
- my $obj = shift;
- return $obj->getValue( 'amount' );
- }
- sub setAmount
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'amount', $parameterValue);
- }
- sub getOrderFee
- {
- my $obj = shift;
- return $obj->getValue( 'orderFee' );
- }
- sub setOrderFee
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderFee', $parameterValue);
- }
- sub getAmountDue
- {
- my $obj = shift;
- return $obj->getValue( 'amountDue' );
- }
- sub setAmountDue
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'amountDue', $parameterValue);
- }
- sub getCurrentAmountDue
- {
- my $obj = shift;
- return $obj->getValue( 'currentAmountDue' );
- }
- sub setCurrentAmountDue
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'currentAmountDue', $parameterValue);
- }
- sub getBalance
- {
- my $obj = shift;
- return $obj->getValue( 'balance' );
- }
- sub setBalance
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'balance', $parameterValue);
- }
- sub getCurrentBalance
- {
- my $obj = shift;
- return $obj->getValue( 'currentBalance' );
- }
- sub setCurrentBalance
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'currentBalance', $parameterValue);
- }
- sub getDueDate
- {
- my $obj = shift;
- return $obj->getValue( 'dueDate' );
- }
- sub setDueDate
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'dueDate', $parameterValue);
- }
- sub getUserChoice1
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice1' );
- }
- sub setUserChoice1
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice1', $parameterValue);
- }
- sub getUserChoice2
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice2' );
- }
- sub setUserChoice2
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice2', $parameterValue);
- }
- sub getUserChoice3
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice3' );
- }
- sub setUserChoice3
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice3', $parameterValue);
- }
- sub getUserChoice4
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice4' );
- }
- sub setUserChoice4
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice4', $parameterValue);
- }
- sub getUserChoice5
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice5' );
- }
- sub setUserChoice5
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice5', $parameterValue);
- }
- sub getUserChoice6
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice6' );
- }
- sub setUserChoice6
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice6', $parameterValue);
- }
- sub getUserChoice7
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice7' );
- }
- sub setUserChoice7
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice7', $parameterValue);
- }
- sub getUserChoice8
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice8' );
- }
- sub setUserChoice8
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice8', $parameterValue);
- }
- sub getUserChoice9
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice9' );
- }
- sub setUserChoice9
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice9', $parameterValue);
- }
- sub getUserChoice10
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice10' );
- }
- sub setUserChoice10
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice10', $parameterValue);
- }
- sub getPaymentMethod
- {
- my $obj = shift;
- return $obj->getValue( 'paymentMethod' );
- }
- sub setPaymentMethod
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'paymentMethod', $parameterValue);
- }
- sub getStreetOne
- {
- my $obj = shift;
- return $obj->getValue( 'streetOne' );
- }
- sub setStreetOne
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'streetOne', $parameterValue);
- }
- sub getStreetTwo
- {
- my $obj = shift;
- return $obj->getValue( 'streetTwo' );
- }
- sub setStreetTwo
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'streetTwo', $parameterValue);
- }
- sub getCity
- {
- my $obj = shift;
- return $obj->getValue( 'city' );
- }
- sub setCity
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'city', $parameterValue);
- }
- sub getState
- {
- my $obj = shift;
- return $obj->getValue( 'state' );
- }
- sub setState
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'state', $parameterValue);
- }
- sub getZip
- {
- my $obj = shift;
- return $obj->getValue( 'zip' );
- }
- sub setZip
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'zip', $parameterValue);
- }
- sub getCountry
- {
- my $obj = shift;
- return $obj->getValue( 'country' );
- }
- sub setCountry
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'country', $parameterValue);
- }
- sub getDaytimePhone
- {
- my $obj = shift;
- return $obj->getValue( 'daytimePhone' );
- }
- sub setDaytimePhone
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'daytimePhone', $parameterValue);
- }
- sub getEveningPhone
- {
- my $obj = shift;
- return $obj->getValue( 'eveningPhone' );
- }
- sub setEveningPhone
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'eveningPhone', $parameterValue);
- }
- sub getEmail
- {
- my $obj = shift;
- return $obj->getValue( 'email' );
- }
- sub setEmail
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'email', $parameterValue);
- }
- sub getRedirectUrl
- {
- my $obj = shift;
- return $obj->getValue( 'redirectUrl' );
- }
- sub setRedirectUrl
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'redirectUrl', $parameterValue);
- }
- sub getRedirectUrlParameters
- {
- my $obj = shift;
- return $obj->getValue( 'redirectUrlParameters' );
- }
- sub setRedirectUrlParameters
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'redirectUrlParameters', $parameterValue);
- }
- sub getRetriesAllowed
- {
- my $obj = shift;
- return $obj->getValue( 'retriesAllowed' );
- }
- sub setRetriesAllowed
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'retriesAllowed', $parameterValue);
- }
- sub getContentEmbedded
- {
- my $obj = shift;
- return $obj->getValue( 'contentEmbedded' );
- }
- sub setContentEmbedded
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'contentEmbedded', $parameterValue);
- }
- sub getTimestamp
- {
- my $obj = shift;
- return $obj->getValue( 'timestamp' );
- }
- sub setTimestamp
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'timestamp', $parameterValue);
- }
- package Mypay::ReceiptData;
- use strict;
- use base qw(Mypay::Base);
- sub new
- {
- my $pkg = shift;
- my $parameters1 = {
- 'transactionDate' => {
- 'parameterName' => 'transactionDate'
- },
- 'transactionType' => {
- 'parameterName' => 'transactionType'
- },
- 'userChoice3' => {
- 'parameterName' => 'userChoice3'
- },
- 'state' => {
- 'parameterName' => 'state'
- },
- 'transactionAcountType' => {
- 'parameterName' => 'transactionAcountType'
- },
- 'email' => {
- 'parameterName' => 'email'
- },
- 'daytimePhone' => {
- 'parameterName' => 'daytimePhone'
- },
- 'userChoice2' => {
- 'parameterName' => 'userChoice2'
- },
- 'payerIdentifier' => {
- 'parameterName' => 'payerIdentifier'
- },
- 'transactionTotalAmount' => {
- 'parameterName' => 'transactionTotalAmount'
- },
- 'orderType' => {
- 'parameterName' => 'orderType'
- },
- 'transactionDescription' => {
- 'parameterName' => 'transactionDescription'
- },
- 'streetTwo' => {
- 'parameterName' => 'streetTwo'
- },
- 'actualPayerIdentifier' => {
- 'parameterName' => 'actualPayerIdentifier'
- },
- 'streetOne' => {
- 'parameterName' => 'streetOne'
- },
- 'payerFullName' => {
- 'parameterName' => 'payerFullName'
- },
- 'transactionStatus' => {
- 'parameterName' => 'transactionStatus'
- },
- 'transactionResultDate' => {
- 'parameterName' => 'transactionResultDate'
- },
- 'hash' => {
- 'parameterName' => 'hash'
- },
- 'orderDescription' => {
- 'parameterName' => 'orderDescription'
- },
- 'zip' => {
- 'parameterName' => 'zip'
- },
- 'orderName' => {
- 'parameterName' => 'orderName'
- },
- 'userChoice1' => {
- 'parameterName' => 'userChoice1'
- },
- 'userChoice4' => {
- 'parameterName' => 'userChoice4'
- },
- 'orderBalance' => {
- 'parameterName' => 'orderBalance'
- },
- 'orderCurrentStatusAmountDue' => {
- 'parameterName' => 'orderCurrentStatusAmountDue'
- },
- 'userChoice5' => {
- 'parameterName' => 'userChoice5'
- },
- 'transactionId' => {
- 'parameterName' => 'transactionId'
- },
- 'orderAmount' => {
- 'parameterName' => 'orderAmount'
- },
- 'transactionResultCode' => {
- 'parameterName' => 'transactionResultCode'
- },
- 'orderCurrentStatusBalance' => {
- 'parameterName' => 'orderCurrentStatusBalance'
- },
- 'transactionEffectiveDate' => {
- 'parameterName' => 'transactionEffectiveDate'
- },
- 'city' => {
- 'parameterName' => 'city'
- },
- 'originalTransactionId' => {
- 'parameterName' => 'originalTransactionId'
- },
- 'timestamp' => {
- 'parameterName' => 'timestamp'
- },
- 'accountHolderName' => {
- 'parameterName' => 'accountHolderName'
- },
- 'orderNumber' => {
- 'parameterName' => 'orderNumber'
- },
- 'actualPayerFullName' => {
- 'parameterName' => 'actualPayerFullName'
- },
- 'country' => {
- 'parameterName' => 'country'
- },
- 'actualPayerType' => {
- 'parameterName' => 'actualPayerType'
- },
- 'payerType' => {
- 'parameterName' => 'payerType'
- },
- 'orderFee' => {
- 'parameterName' => 'orderFee'
- },
- 'transactionResultMessage' => {
- 'parameterName' => 'transactionResultMessage'
- },
- 'orderAmountDue' => {
- 'parameterName' => 'orderAmountDue'
- },
- 'orderDueDate' => {
- 'parameterName' => 'orderDueDate'
- },
- 'eveningPhone' => {
- 'parameterName' => 'eveningPhone'
- }
- };
- my $parameter_order1 = [
- 'transactionType',
- 'transactionStatus',
- 'transactionId',
- 'originalTransactionId',
- 'transactionTotalAmount',
- 'transactionDate',
- 'transactionAcountType',
- 'transactionEffectiveDate',
- 'transactionDescription',
- 'transactionResultDate',
- 'transactionResultCode',
- 'transactionResultMessage',
- 'orderNumber',
- 'orderType',
- 'orderName',
- 'orderDescription',
- 'orderAmount',
- 'orderFee',
- 'orderAmountDue',
- 'orderDueDate',
- 'orderBalance',
- 'orderCurrentStatusBalance',
- 'orderCurrentStatusAmountDue',
- 'payerType',
- 'payerIdentifier',
- 'payerFullName',
- 'actualPayerType',
- 'actualPayerIdentifier',
- 'actualPayerFullName',
- 'accountHolderName',
- 'streetOne',
- 'streetTwo',
- 'city',
- 'state',
- 'zip',
- 'country',
- 'daytimePhone',
- 'eveningPhone',
- 'email',
- 'userChoice1',
- 'userChoice2',
- 'userChoice3',
- 'userChoice4',
- 'userChoice5',
- 'timestamp',
- 'hash'
- ];
- my $obj = $pkg->SUPER::new();
- $obj->{'parameters'} = $parameters1;
- $obj->{'parameter_order'} = $parameter_order1;
- bless $obj, $pkg;
- return $obj;
- }
- sub getTransactionType
- {
- my $obj = shift;
- return $obj->getValue( 'transactionType' );
- }
- sub setTransactionType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionType', $parameterValue);
- }
- sub getTransactionStatus
- {
- my $obj = shift;
- return $obj->getValue( 'transactionStatus' );
- }
- sub setTransactionStatus
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionStatus', $parameterValue);
- }
- sub getTransactionId
- {
- my $obj = shift;
- return $obj->getValue( 'transactionId' );
- }
- sub setTransactionId
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionId', $parameterValue);
- }
- sub getOriginalTransactionId
- {
- my $obj = shift;
- return $obj->getValue( 'originalTransactionId' );
- }
- sub setOriginalTransactionId
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'originalTransactionId', $parameterValue);
- }
- sub getTransactionTotalAmount
- {
- my $obj = shift;
- return $obj->getValue( 'transactionTotalAmount' );
- }
- sub setTransactionTotalAmount
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionTotalAmount', $parameterValue);
- }
- sub getTransactionDate
- {
- my $obj = shift;
- return $obj->getValue( 'transactionDate' );
- }
- sub setTransactionDate
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionDate', $parameterValue);
- }
- sub getTransactionAcountType
- {
- my $obj = shift;
- return $obj->getValue( 'transactionAcountType' );
- }
- sub setTransactionAcountType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionAcountType', $parameterValue);
- }
- sub getTransactionEffectiveDate
- {
- my $obj = shift;
- return $obj->getValue( 'transactionEffectiveDate' );
- }
- sub setTransactionEffectiveDate
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionEffectiveDate', $parameterValue);
- }
- sub getTransactionDescription
- {
- my $obj = shift;
- return $obj->getValue( 'transactionDescription' );
- }
- sub setTransactionDescription
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionDescription', $parameterValue);
- }
- sub getTransactionResultDate
- {
- my $obj = shift;
- return $obj->getValue( 'transactionResultDate' );
- }
- sub setTransactionResultDate
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionResultDate', $parameterValue);
- }
- sub getTransactionResultCode
- {
- my $obj = shift;
- return $obj->getValue( 'transactionResultCode' );
- }
- sub setTransactionResultCode
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionResultCode', $parameterValue);
- }
- sub getTransactionResultMessage
- {
- my $obj = shift;
- return $obj->getValue( 'transactionResultMessage' );
- }
- sub setTransactionResultMessage
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'transactionResultMessage', $parameterValue);
- }
- sub getOrderNumber
- {
- my $obj = shift;
- return $obj->getValue( 'orderNumber' );
- }
- sub setOrderNumber
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderNumber', $parameterValue);
- }
- sub getOrderType
- {
- my $obj = shift;
- return $obj->getValue( 'orderType' );
- }
- sub setOrderType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderType', $parameterValue);
- }
- sub getOrderName
- {
- my $obj = shift;
- return $obj->getValue( 'orderName' );
- }
- sub setOrderName
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderName', $parameterValue);
- }
- sub getOrderDescription
- {
- my $obj = shift;
- return $obj->getValue( 'orderDescription' );
- }
- sub setOrderDescription
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderDescription', $parameterValue);
- }
- sub getOrderAmount
- {
- my $obj = shift;
- return $obj->getValue( 'orderAmount' );
- }
- sub setOrderAmount
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderAmount', $parameterValue);
- }
- sub getOrderFee
- {
- my $obj = shift;
- return $obj->getValue( 'orderFee' );
- }
- sub setOrderFee
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderFee', $parameterValue);
- }
- sub getOrderAmountDue
- {
- my $obj = shift;
- return $obj->getValue( 'orderAmountDue' );
- }
- sub setOrderAmountDue
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderAmountDue', $parameterValue);
- }
- sub getOrderDueDate
- {
- my $obj = shift;
- return $obj->getValue( 'orderDueDate' );
- }
- sub setOrderDueDate
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderDueDate', $parameterValue);
- }
- sub getOrderBalance
- {
- my $obj = shift;
- return $obj->getValue( 'orderBalance' );
- }
- sub setOrderBalance
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderBalance', $parameterValue);
- }
- sub getOrderCurrentStatusBalance
- {
- my $obj = shift;
- return $obj->getValue( 'orderCurrentStatusBalance' );
- }
- sub setOrderCurrentStatusBalance
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderCurrentStatusBalance', $parameterValue);
- }
- sub getOrderCurrentStatusAmountDue
- {
- my $obj = shift;
- return $obj->getValue( 'orderCurrentStatusAmountDue' );
- }
- sub setOrderCurrentStatusAmountDue
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'orderCurrentStatusAmountDue', $parameterValue);
- }
- sub getPayerType
- {
- my $obj = shift;
- return $obj->getValue( 'payerType' );
- }
- sub setPayerType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'payerType', $parameterValue);
- }
- sub getPayerIdentifier
- {
- my $obj = shift;
- return $obj->getValue( 'payerIdentifier' );
- }
- sub setPayerIdentifier
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'payerIdentifier', $parameterValue);
- }
- sub getPayerFullName
- {
- my $obj = shift;
- return $obj->getValue( 'payerFullName' );
- }
- sub setPayerFullName
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'payerFullName', $parameterValue);
- }
- sub getActualPayerType
- {
- my $obj = shift;
- return $obj->getValue( 'actualPayerType' );
- }
- sub setActualPayerType
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'actualPayerType', $parameterValue);
- }
- sub getActualPayerIdentifier
- {
- my $obj = shift;
- return $obj->getValue( 'actualPayerIdentifier' );
- }
- sub setActualPayerIdentifier
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'actualPayerIdentifier', $parameterValue);
- }
- sub getActualPayerFullName
- {
- my $obj = shift;
- return $obj->getValue( 'actualPayerFullName' );
- }
- sub setActualPayerFullName
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'actualPayerFullName', $parameterValue);
- }
- sub getAccountHolderName
- {
- my $obj = shift;
- return $obj->getValue( 'accountHolderName' );
- }
- sub setAccountHolderName
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'accountHolderName', $parameterValue);
- }
- sub getStreetOne
- {
- my $obj = shift;
- return $obj->getValue( 'streetOne' );
- }
- sub setStreetOne
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'streetOne', $parameterValue);
- }
- sub getStreetTwo
- {
- my $obj = shift;
- return $obj->getValue( 'streetTwo' );
- }
- sub setStreetTwo
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'streetTwo', $parameterValue);
- }
- sub getCity
- {
- my $obj = shift;
- return $obj->getValue( 'city' );
- }
- sub setCity
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'city', $parameterValue);
- }
- sub getState
- {
- my $obj = shift;
- return $obj->getValue( 'state' );
- }
- sub setState
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'state', $parameterValue);
- }
- sub getZip
- {
- my $obj = shift;
- return $obj->getValue( 'zip' );
- }
- sub setZip
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'zip', $parameterValue);
- }
- sub getCountry
- {
- my $obj = shift;
- return $obj->getValue( 'country' );
- }
- sub setCountry
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'country', $parameterValue);
- }
- sub getDaytimePhone
- {
- my $obj = shift;
- return $obj->getValue( 'daytimePhone' );
- }
- sub setDaytimePhone
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'daytimePhone', $parameterValue);
- }
- sub getEveningPhone
- {
- my $obj = shift;
- return $obj->getValue( 'eveningPhone' );
- }
- sub setEveningPhone
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'eveningPhone', $parameterValue);
- }
- sub getEmail
- {
- my $obj = shift;
- return $obj->getValue( 'email' );
- }
- sub setEmail
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'email', $parameterValue);
- }
- sub getUserChoice1
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice1' );
- }
- sub setUserChoice1
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice1', $parameterValue);
- }
- sub getUserChoice2
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice2' );
- }
- sub setUserChoice2
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice2', $parameterValue);
- }
- sub getUserChoice3
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice3' );
- }
- sub setUserChoice3
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice3', $parameterValue);
- }
- sub getUserChoice4
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice4' );
- }
- sub setUserChoice4
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice4', $parameterValue);
- }
- sub getUserChoice5
- {
- my $obj = shift;
- return $obj->getValue( 'userChoice5' );
- }
- sub setUserChoice5
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'userChoice5', $parameterValue);
- }
- sub getTimestamp
- {
- my $obj = shift;
- return $obj->getValue( 'timestamp' );
- }
- sub setTimestamp
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'timestamp', $parameterValue);
- }
- sub getHash
- {
- my $obj = shift;
- return $obj->getValue( 'hash' );
- }
- sub setHash
- {
- my $obj = shift;
- my $parameterValue = shift;
- return $obj->assignValue( 'hash', $parameterValue);
- }
- package Mypay::Receipt;
- use strict;
- use base qw(Mypay::ReceiptData);
- use Digest::MD5 qw(md5_hex);
- use Time::HiRes qw(gettimeofday);
- use CGI;
- sub new
- {
- my $pkg = shift;
- my $cgi = shift;
- my $obj = $pkg->SUPER::new();
- bless $obj, $pkg;
- if ($cgi)
- {
- $obj->_populate_from_cgi_object($cgi);
- }
- return $obj;
- }
- sub _populate_from_cgi_object
- {
- my $obj = shift;
- my $cgi = shift;
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- $obj->assign($name, $cgi->param($name));
- }
- }
- sub verifyHash
- {
- my $obj = shift;
- my $url = shift;
- if ($url)
- {
- # read values from the parameter string
- $url =~ s/[^?]*\?//; # leave only the query string
- my $cgi = new CGI($url);
- $obj->_populate_from_cgi_object($cgi);
- }
- else
- {
- # verify that parameters have been set.
- my $count = 0;
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- my $node = $obj->{'parameters'}->{ $name };
- $count++ if (defined($node->{'value'}));
- }
- $obj->_populate_from_cgi_object(new CGI()) unless ($count);
- }
- # check time for difference
- my ($seconds, $microseconds) = gettimeofday();
- my $current_time = int($seconds*1000 + $microseconds/1000);
- return 0 if ( ($obj->getTimestamp() + $obj->getTimeoutWindow()) < $current_time);
- # create hash data string
- my $hash_data = '';
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- next if ($name =~ /^hash$/i);
- my $node = $obj->{'parameters'}->{ $name };
- if (defined($node->{'value'}))
- {
- my $value = $node->{'value'};
- $hash_data .= $value;
- }
- }
- $obj->addError('No Key Specified') unless ($obj->get('key'));
- $hash_data .= $obj->get('key');
- my $hash_digest = md5_hex( $hash_data );
- # return 1 if ($hash_digest eq $obj->{'verify_hash'});
- return 1 if ($hash_digest eq $obj->getHash());
- return 0;
- }
- sub getRedirectUrlParameters
- {
- my $obj = shift;
- my $list = shift;
- my @names = split(/\s*,\s*/,$list);
- my @values = ();
- foreach my $name (@names)
- {
- if (defined $obj->{'parameters'}->{ $name })
- {
- my $node = $obj->{'parameters'}->{ $name };
- push(@values,$node->{'value'});
- }
- else
- {
- $obj->addError("The parameter '$name' is invalid");
- }
- }
- return pop(@values) if ($#values <= 0);
- return (@values);
- }
- #
- #
- # WARNING: The following functions are just for unit testing.
- # They should not be used otherwise.
- #
- #
- sub getURL
- {
- my $obj = shift;
- return $obj->getBaseURL() . '?' . $obj->getQueryString();
- }
- sub getHashDigest
- {
- my $obj = shift;
- $obj->create_results() unless ($obj->{'hash_digest'});
- return $obj->{'hash_digest'};
- }
- sub getQueryString
- {
- my $obj = shift;
- $obj->create_results() unless ($obj->{'query_string'});
- return $obj->{'query_string'};
- }
- sub create_results
- {
- my $obj = shift;
- my ($seconds, $microseconds) = gettimeofday();
- my $timestamp = int($seconds*1000 + $microseconds/1000);
- $obj->assign('timestamp',$timestamp);
- # create query string and hash data
- my $hash_data = '';
- my @query_string = qw();
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- my $node = $obj->{'parameters'}->{ $name };
- if (defined($node->{'value'}))
- {
- my $value = $node->{'value'};
- $hash_data .= $value;
- # $query->param(-name=>"$name", -value=>"$value");
- push(@query_string,$name . "=" . CGI::escape($value));
- }
- }
- # Hash
- $hash_data .= $obj->get('key');
- my $hash_digest = md5_hex( $hash_data );
- push(@query_string, "hash=$hash_digest");
- $obj->{'query_string'} = join("&",@query_string);
- $obj->{'hash_digest'} = $hash_digest;
- }
- sub _clear_results
- {
- my $obj = shift;
- $obj->{'hash_digest'} = '';
- $obj->{'query_string'} = '';
- }
- package Mypay::Pay;
- use strict;
- use base qw(Mypay::PayData);
- use Digest::MD5 qw(md5_hex);
- use Time::HiRes qw(gettimeofday);
- use CGI;
- sub new
- {
- my $pkg = shift;
- my $cgi = shift;
- my $obj = $pkg->SUPER::new();
- bless $obj, $pkg;
- if ($cgi)
- {
- $obj->_populate_from_cgi_object($cgi);
- }
- return $obj;
- }
- sub getURL
- {
- my $obj = shift;
- return $obj->getBaseURL() . '?' . $obj->getQueryString();
- }
- sub _populate_from_cgi_object
- {
- my $obj = shift;
- my $cgi = shift;
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- $obj->assign($name, $cgi->param($name));
- }
- }
- sub getHashDigest
- {
- my $obj = shift;
- $obj->create_results() unless ($obj->{'hash_digest'});
- return $obj->{'hash_digest'};
- }
- sub getQueryString
- {
- my $obj = shift;
- $obj->create_results() unless ($obj->{'query_string'});
- return $obj->{'query_string'};
- }
- sub create_results
- {
- my $obj = shift;
- my ($seconds, $microseconds) = gettimeofday();
- my $timestamp = int($seconds*1000 + $microseconds/1000);
- $obj->assign('timestamp',$timestamp);
- $obj->_check();
- # order the parameters
- # create query string and hash data
- my $hash_data = '';
- # my $query = new CGI( {} );
- my @query_string = qw();
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- my $node = $obj->{'parameters'}->{ $name };
- if ( ($node->{'passedToQuickPAY'} =~ /YES/i) || defined($node->{'value'}))
- {
- my $value = $node->{'value'};
- $hash_data .= $value;
- # $query->param(-name=>"$name", -value=>"$value");
- push(@query_string,$name . "=" . CGI::escape($value));
- }
- }
- # Hash
- $hash_data .= $obj->get('key');
- my $hash_digest = md5_hex( $hash_data );
- push(@query_string, "hash=$hash_digest");
- $obj->{'query_string'} = join("&",@query_string);
- $obj->{'hash_digest'} = $hash_digest;
- }
- sub _clear_results
- {
- my $obj = shift;
- $obj->{'hash_digest'} = '';
- $obj->{'query_string'} = '';
- }
- sub _check
- {
- my $obj = shift;
- foreach my $name (@{ $obj->{'parameter_order'} })
- {
- my $node = $obj->{'parameters'}->{ $name };
- if ( ($node->{'passedToQuickPAY'} =~ /YES/i))
- {
- if (! defined($node->{'value'}))
- {
- push(@{ $obj->{'errors'} },
- "Required parameter '$name' is not assigned a value");
- # return 0;
- }
- if (length($node->{'value'}) <= 0)
- {
- push(@{ $obj->{'errors'} },
- "Required parameter '$name' is assigned a null value");
- # return 0;
- }
- }
- if (defined( $node->{'value'} ))
- {
- if ($node->{'maxLength'} =~ /^\d+$/)
- {
- if (length($node->{'value'}) > $node->{'maxLength'})
- {
- push(@{ $obj->{'errors'} },
- "Parameter '$name' is too long. Max length is " . $node->{'maxLength'});
- # return 0;
- }
- }
- # could also check the data type
- }
- }
- # check for a key
- unless ($obj->get('key'))
- {
- push(@{ $obj->{'errors'} }, "No key specified.");
- # return 0;
- }
- return 0 if ($obj->isError());
- return 1;
- }
- sub setRedirectUrlParameters
- {
- my $obj = shift;
- my $value = shift;
- $obj->SUPER::setRedirectUrlParameters( $value );
- my $receipt = new Mypay::Receipt();
- $receipt->getRedirectUrlParameters( $obj->getRedirectUrlParameters() );
- if ($receipt->isError())
- {
- $obj->addError("The Mypay::Receipt did not accept the parameters '$value'"
- . " (" . $receipt->errors(' ') . ")" );
- return 0;
- }
- return 1;
- }
- return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement