Advertisement
Guest User

Untitled

a guest
Feb 4th, 2013
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 60.14 KB | None | 0 0
  1. package Mypay;
  2.  
  3. $Mypay::TEST = 0;
  4. $Mypay::VERSION = 1.0;
  5.  
  6. $Mypay::URL = 'https://INSERT_YOUR_TEST_URL_HERE/';
  7. $Mypay::TEST_URL = 'https://INSERT_YOUR_PRODUCTION_URL_HERE/';
  8.  
  9. package Mypay::Base;
  10.  
  11. use strict;
  12.  
  13. sub new
  14.   {
  15.     my $pkg = shift;
  16.  
  17.     my $obj = {
  18.       'errors' => [],
  19.     };
  20.  
  21.     bless $obj, $pkg;
  22.  
  23.     if ($Mypay::TEST)
  24.       {
  25.         $obj->setBaseURL($Mypay::TEST_URL);
  26.       }
  27.     else
  28.       {
  29.         $obj->setBaseURL($Mypay::URL);
  30.       }
  31.  
  32.     $obj->setTimeoutWindow(10*60*1000); # in miliseconds
  33.  
  34.     return $obj;
  35.   }
  36.  
  37. sub _clear_results { }
  38.  
  39. sub addError
  40.   {
  41.     my $obj = shift;
  42.     my $error_text = shift;
  43.  
  44.     push(@{ $obj->{'errors'} }, $error_text);
  45.   }
  46.  
  47. sub isValid
  48.   {
  49.     my $obj = shift;
  50.     my $name = shift;
  51.  
  52.     return 1 if (defined $obj->{'parameters'}->{ $name });
  53.     return 0;
  54.   }
  55.  
  56. sub isAssigned
  57.   {
  58.     my $obj = shift;
  59.     my $name = shift;
  60.  
  61.     return 0 unless ($obj->isValid($name));
  62.     return 1 if (defined $obj->{'parameters'}->{ $name }->{ 'value'});
  63.     return 0;
  64.   }
  65.  
  66. sub getField
  67.   {
  68.     my $obj = shift;
  69.     my $name = shift;
  70.    
  71.     if (! $obj->isValid($name))
  72.       {
  73.         $obj->addError("Cannot obtain information for field '$name' since field is invalid");
  74.         return 0;
  75.       }
  76.  
  77.     return $obj->{'parameters'}->{ $name };
  78.   }
  79.  
  80. sub getValue
  81.   {
  82.     my $obj = shift;
  83.     my $name = shift;
  84.  
  85.     if ($name =~ /^\s*KEY\s*$/i)
  86.       {
  87.         return $obj->{'key'};
  88.       }
  89.  
  90.     if (! $obj->isValid($name))
  91.       {
  92.         $obj->addError("Cannot obtain information for field '$name' since field is invalid");
  93.         return 0;
  94.       }
  95.  
  96.     if (! $obj->isAssigned($name))
  97.       {
  98.         $obj->addError("Cannot obtain value from field '$name' since field has not be assigned a value.");
  99.         return 0;
  100.       }
  101.  
  102.     return $obj->{'parameters'}->{ $name }->{ 'value'};
  103.   }
  104.  
  105. sub assign
  106.   {
  107.     my $obj = shift;
  108.     my $name = shift;
  109.     my $value = shift;
  110.  
  111.     return $obj->assignValue($name, $value);
  112.   }
  113.  
  114. sub setKey
  115.   {
  116.     my $obj = shift;
  117.     my $value = shift;
  118.    
  119.     $obj->assign('key',$value);
  120.   }
  121.  
  122. sub getKey
  123.   {
  124.     my $obj = shift;
  125.     my $value = shift;
  126.    
  127.     return $obj->get('key',$value);
  128.   }
  129.  
  130.  
  131. sub get
  132.   {
  133.     my $obj = shift;
  134.     my $parameterName = shift;
  135.  
  136.     return $obj->getValue( $parameterName );
  137.   }
  138.  
  139.  
  140. sub assignValue
  141.   {
  142.     my $obj = shift;
  143.     my $name = shift;
  144.     my $value = shift;
  145.  
  146.     $obj->_clear_results();
  147.  
  148.     if ($name =~ /^\s*KEY\s*$/i)
  149.       {
  150.         if (length($value) <= 1)
  151.           {
  152.             $obj->addError("Key value is too small.");
  153.             return 0;
  154.           }
  155.  
  156.         $obj->{'key'} = $value;
  157.         return 1;
  158.       }
  159.  
  160.  
  161.     if (! $obj->isValid($name))
  162.       {
  163.         $obj->addError("Cannot assign value to field '$name' since field is invalid");
  164.         return 0;
  165.       }
  166.  
  167.     $obj->{'parameters'}->{ $name }->{ 'value' } = $value;
  168.  
  169.     return 1;
  170.   }
  171.  
  172.  
  173. sub listValidParameters
  174.   {
  175.     my $obj = shift;
  176.     my $list = join(", ", (sort @{ $obj->{'parameter_order'} }));
  177.     return "Valid Parameters: $list";
  178.   }
  179.  
  180. sub setBaseURL
  181.   {
  182.     my $obj = shift;
  183.     $obj->{'base_url'} = shift;
  184.   }
  185.  
  186. sub getBaseURL
  187.   {
  188.     my $obj = shift;
  189.     return $obj->{'base_url'};
  190.   }
  191.  
  192. sub setTimeoutWindow
  193.   {
  194.     my $obj = shift;
  195.     $obj->{'timeout_window'} = shift;
  196.   }
  197.  
  198. sub getTimeoutWindow
  199.   {
  200.     my $obj = shift;
  201.     return $obj->{'timeout_window'};
  202.   }
  203.  
  204. sub isError
  205.   {
  206.     my $obj = shift;
  207.  
  208.     my $count = $#{ $obj->{'errors'} };
  209.  
  210.     if ($count >= 0)
  211.       {
  212.         return 1;
  213.       }
  214.     else
  215.       {
  216.         return 0;
  217.       }
  218.   }
  219.  
  220. sub errors
  221.   {
  222.     my $obj = shift;
  223.     my $del = shift || "\n<li>";
  224.  
  225.     if ($obj->isError())
  226.       {
  227.         return $del . join($del, @{ $obj->{'errors'} });
  228.       }
  229.   }
  230.  
  231. package Mypay::PayData;
  232.  
  233. use strict;
  234.  
  235.  
  236. use base qw(Mypay::Base);
  237.  
  238. sub new
  239.   {
  240.     my $pkg = shift;
  241.  
  242.     my $parameters1 = {
  243.                  'retriesAllowed' => {
  244.                                        'dateType' => 'String',
  245.                                        'parameter' => 'Retries Allowed',
  246.                                        'maxLength' => '1',
  247.                                        'hashOrder' => '34',
  248.                                        'parameterName' => 'retriesAllowed',
  249.                                        'passedToQuickPAY' => 'Optional'
  250.                                      },
  251.                  'dueDate' => {
  252.                                 'dateType' => '"Date yyyymmdd"',
  253.                                 'parameter' => 'Due Date',
  254.                                 'maxLength' => '8',
  255.                                 'hashOrder' => '11',
  256.                                 'parameterName' => 'dueDate',
  257.                                 'passedToQuickPAY' => 'Optional'
  258.                               },
  259.                  'userChoice3' => {
  260.                                     'dateType' => 'String',
  261.                                     'parameter' => 'User Choice 3',
  262.                                     'maxLength' => '50',
  263.                                     'hashOrder' => '14',
  264.                                     'parameterName' => 'userChoice3',
  265.                                     'passedToQuickPAY' => 'Optional'
  266.                                   },
  267.                  'state' => {
  268.                               'dateType' => 'String',
  269.                               'parameter' => 'State',
  270.                               'maxLength' => '2',
  271.                               'hashOrder' => '26',
  272.                               'parameterName' => 'state',
  273.                               'passedToQuickPAY' => 'Optional'
  274.                             },
  275.                  'userChoice9' => {
  276.                                     'dateType' => 'String',
  277.                                     'parameter' => 'User Choice 9',
  278.                                     'maxLength' => '50',
  279.                                     'hashOrder' => '20',
  280.                                     'parameterName' => 'userChoice9',
  281.                                     'passedToQuickPAY' => 'Optional'
  282.                                   },
  283.                  'userChoice7' => {
  284.                                     'dateType' => 'String',
  285.                                     'parameter' => 'User Choice 7',
  286.                                     'maxLength' => '50',
  287.                                     'hashOrder' => '18',
  288.                                     'parameterName' => 'userChoice7',
  289.                                     'passedToQuickPAY' => 'Optional'
  290.                                   },
  291.                  'userChoice6' => {
  292.                                     'dateType' => 'String',
  293.                                     'parameter' => 'User Choice 6',
  294.                                     'maxLength' => '50',
  295.                                     'hashOrder' => '17',
  296.                                     'parameterName' => 'userChoice6',
  297.                                     'passedToQuickPAY' => 'Optional'
  298.                                   },
  299.                  'redirectUrlParameters' => {
  300.                                               'dateType' => 'String',
  301.                                               'parameter' => 'Redirect URL Parameters',
  302.                                               'maxLength' => 'NA',
  303.                                               'hashOrder' => '33',
  304.                                               'parameterName' => 'redirectUrlParameters',
  305.                                               'passedToQuickPAY' => 'Optional'
  306.                                             },
  307.                  'email' => {
  308.                               'dateType' => 'String',
  309.                               'parameter' => 'Email',
  310.                               'maxLength' => '50',
  311.                               'hashOrder' => '31',
  312.                               'parameterName' => 'email',
  313.                               'passedToQuickPAY' => 'Optional'
  314.                             },
  315.                  'daytimePhone' => {
  316.                                      'dateType' => 'String',
  317.                                      'parameter' => 'Day time Phone',
  318.                                      'maxLength' => '20',
  319.                                      'hashOrder' => '29',
  320.                                      'parameterName' => 'daytimePhone',
  321.                                      'passedToQuickPAY' => 'Optional'
  322.                                    },
  323.                  'userChoice2' => {
  324.                                     'dateType' => 'String',
  325.                                     'parameter' => 'User Choice 2',
  326.                                     'maxLength' => '50',
  327.                                     'hashOrder' => '13',
  328.                                     'parameterName' => 'userChoice2',
  329.                                     'passedToQuickPAY' => 'Optional'
  330.                                   },
  331.                  'currentBalance' => {
  332.                                        'dateType' => '"Cents no decimal"',
  333.                                        'parameter' => 'Current Balance',
  334.                                        'maxLength' => '12',
  335.                                        'hashOrder' => '10',
  336.                                        'parameterName' => 'currentBalance',
  337.                                        'passedToQuickPAY' => 'Optional'
  338.                                      },
  339.                  'orderType' => {
  340.                                   'dateType' => 'String',
  341.                                   'parameter' => 'Order Type',
  342.                                   'maxLength' => '32',
  343.                                   'hashOrder' => '1',
  344.                                   'parameterName' => 'orderType',
  345.                                   'passedToQuickPAY' => 'Yes'
  346.                                 },
  347.                  'streetTwo' => {
  348.                                   'dateType' => 'String',
  349.                                   'parameter' => 'Street Two',
  350.                                   'maxLength' => '50',
  351.                                   'hashOrder' => '24',
  352.                                   'parameterName' => 'streetTwo',
  353.                                   'passedToQuickPAY' => 'Optional'
  354.                                 },
  355.                  'contentEmbedded' => {
  356.                                         'dateType' => 'true',
  357.                                         'parameter' => 'Content Embedded',
  358.                                         'maxLength' => '4',
  359.                                         'hashOrder' => '35',
  360.                                         'parameterName' => 'contentEmbedded',
  361.                                         'passedToQuickPAY' => 'Optional'
  362.                                       },
  363.                  'streetOne' => {
  364.                                   'dateType' => 'String',
  365.                                   'parameter' => 'Street One',
  366.                                   'maxLength' => '50',
  367.                                   'hashOrder' => '23',
  368.                                   'parameterName' => 'streetOne',
  369.                                   'passedToQuickPAY' => 'Optional'
  370.                                 },
  371.                  'userChoice8' => {
  372.                                     'dateType' => 'String',
  373.                                     'parameter' => 'User Choice 8',
  374.                                     'maxLength' => '50',
  375.                                     'hashOrder' => '19',
  376.                                     'parameterName' => 'userChoice8',
  377.                                     'passedToQuickPAY' => 'Optional'
  378.                                   },
  379.                  'orderDescription' => {
  380.                                          'dateType' => 'String',
  381.                                          'parameter' => 'Order Description',
  382.                                          'maxLength' => '32',
  383.                                          'hashOrder' => '4',
  384.                                          'parameterName' => 'orderDescription',
  385.                                          'passedToQuickPAY' => 'Optional'
  386.                                        },
  387.                  'zip' => {
  388.                             'dateType' => 'String',
  389.                             'parameter' => 'Zip',
  390.                             'maxLength' => '10',
  391.                             'hashOrder' => '27',
  392.                             'parameterName' => 'zip',
  393.                             'passedToQuickPAY' => 'Optional'
  394.                           },
  395.                  'balance' => {
  396.                                 'dateType' => '"Cents no decimal"',
  397.                                 'parameter' => 'Balance',
  398.                                 'maxLength' => '12',
  399.                                 'hashOrder' => '9',
  400.                                 'parameterName' => 'balance',
  401.                                 'passedToQuickPAY' => 'Optional'
  402.                               },
  403.                  'orderName' => {
  404.                                   'dateType' => 'String',
  405.                                   'parameter' => 'Order Name',
  406.                                   'maxLength' => '32',
  407.                                   'hashOrder' => '3',
  408.                                   'parameterName' => 'orderName',
  409.                                   'passedToQuickPAY' => 'Optional'
  410.                                 },
  411.                  'userChoice1' => {
  412.                                     'dateType' => 'String',
  413.                                     'parameter' => 'User Choice 1',
  414.                                     'maxLength' => '50',
  415.                                     'hashOrder' => '12',
  416.                                     'parameterName' => 'userChoice1',
  417.                                     'passedToQuickPAY' => 'Optional'
  418.                                   },
  419.                  'userChoice4' => {
  420.                                     'dateType' => 'String',
  421.                                     'parameter' => 'User Choice 4',
  422.                                     'maxLength' => '50',
  423.                                     'hashOrder' => '15',
  424.                                     'parameterName' => 'userChoice4',
  425.                                     'passedToQuickPAY' => 'Optional'
  426.                                   },
  427.                  'amountDue' => {
  428.                                   'dateType' => '"Cents no decimal"',
  429.                                   'parameter' => 'Amount Due',
  430.                                   'maxLength' => '12',
  431.                                   'hashOrder' => '7',
  432.                                   'parameterName' => 'amountDue',
  433.                                   'passedToQuickPAY' => 'Optional'
  434.                                 },
  435.                  'userChoice5' => {
  436.                                     'dateType' => 'String',
  437.                                     'parameter' => 'User Choice 5',
  438.                                     'maxLength' => '50',
  439.                                     'hashOrder' => '16',
  440.                                     'parameterName' => 'userChoice5',
  441.                                     'passedToQuickPAY' => 'Optional'
  442.                                   },
  443.                  'redirectUrl' => {
  444.                                     'dateType' => 'String',
  445.                                     'parameter' => 'Redirect URL',
  446.                                     'maxLength' => '100',
  447.                                     'hashOrder' => '32',
  448.                                     'parameterName' => 'redirectUrl',
  449.                                     'passedToQuickPAY' => 'Optional'
  450.                                   },
  451.                  'city' => {
  452.                              'dateType' => 'String',
  453.                              'parameter' => 'City',
  454.                              'maxLength' => '20',
  455.                              'hashOrder' => '25',
  456.                              'parameterName' => 'city',
  457.                              'passedToQuickPAY' => 'Optional'
  458.                            },
  459.                  'timestamp' => {
  460.                                   'dateType' => 'String',
  461.                                   'parameter' => 'Time Stamp',
  462.                                   'maxLength' => '13',
  463.                                   'hashOrder' => '36',
  464.                                   'parameterName' => 'timestamp',
  465.                                   'passedToQuickPAY' => 'Yes'
  466.                                 },
  467.                  'userChoice10' => {
  468.                                      'dateType' => 'String',
  469.                                      'parameter' => 'User Choice 10',
  470.                                      'maxLength' => '50',
  471.                                      'hashOrder' => '21',
  472.                                      'parameterName' => 'userChoice10',
  473.                                      'passedToQuickPAY' => 'Optional'
  474.                                    },
  475.                  'paymentMethod' => {
  476.                                       'dateType' => 'String',
  477.                                       'parameter' => 'Payment Method',
  478.                                       'maxLength' => '6',
  479.                                       'hashOrder' => '22',
  480.                                       'parameterName' => 'paymentMethod',
  481.                                       'passedToQuickPAY' => 'Optional'
  482.                                     },
  483.                  'orderNumber' => {
  484.                                     'dateType' => 'String',
  485.                                     'parameter' => 'Order Number',
  486.                                     'maxLength' => '32',
  487.                                     'hashOrder' => '2',
  488.                                     'parameterName' => 'orderNumber',
  489.                                     'passedToQuickPAY' => 'Optional'
  490.                                   },
  491.                  'country' => {
  492.                                 'dateType' => 'String',
  493.                                 'parameter' => 'Country',
  494.                                 'maxLength' => '20',
  495.                                 'hashOrder' => '28',
  496.                                 'parameterName' => 'country',
  497.                                 'passedToQuickPAY' => 'Optional'
  498.                               },
  499.                  'orderFee' => {
  500.                                  'dateType' => '"Cents no decimal"',
  501.                                  'parameter' => 'Order Fee',
  502.                                  'maxLength' => '12',
  503.                                  'hashOrder' => '6',
  504.                                  'parameterName' => 'orderFee',
  505.                                  'passedToQuickPAY' => 'Optional'
  506.                                },
  507.                  'currentAmountDue' => {
  508.                                          'dateType' => '"Cents no decimal"',
  509.                                          'parameter' => 'Current Amount Due',
  510.                                          'maxLength' => '12',
  511.                                          'hashOrder' => '8',
  512.                                          'parameterName' => 'currentAmountDue',
  513.                                          'passedToQuickPAY' => 'Optional'
  514.                                        },
  515.                  'amount' => {
  516.                                'dateType' => '"Cents no decimal"',
  517.                                'parameter' => 'Amount',
  518.                                'maxLength' => '12',
  519.                                'hashOrder' => '5',
  520.                                'parameterName' => 'amount',
  521.                                'passedToQuickPAY' => 'Optional'
  522.                              },
  523.                  'eveningPhone' => {
  524.                                      'dateType' => 'String',
  525.                                      'parameter' => 'Night time Phone',
  526.                                      'maxLength' => '20',
  527.                                      'hashOrder' => '30',
  528.                                      'parameterName' => 'eveningPhone',
  529.                                      'passedToQuickPAY' => 'Optional'
  530.                                    }
  531.                };
  532.  
  533.     my $parameter_order1 = [
  534.                       'orderType',
  535.                       'orderNumber',
  536.                       'orderName',
  537.                       'orderDescription',
  538.                       'amount',
  539.                       'orderFee',
  540.                       'amountDue',
  541.                       'currentAmountDue',
  542.                       'balance',
  543.                       'currentBalance',
  544.                       'dueDate',
  545.                       'userChoice1',
  546.                       'userChoice2',
  547.                       'userChoice3',
  548.                       'userChoice4',
  549.                       'userChoice5',
  550.                       'userChoice6',
  551.                       'userChoice7',
  552.                       'userChoice8',
  553.                       'userChoice9',
  554.                       'userChoice10',
  555.                       'paymentMethod',
  556.                       'streetOne',
  557.                       'streetTwo',
  558.                       'city',
  559.                       'state',
  560.                       'zip',
  561.                       'country',
  562.                       'daytimePhone',
  563.                       'eveningPhone',
  564.                       'email',
  565.                       'redirectUrl',
  566.                       'redirectUrlParameters',
  567.                       'retriesAllowed',
  568.                       'contentEmbedded',
  569.                       'timestamp'
  570.                     ];
  571.  
  572.  
  573.     my $obj = $pkg->SUPER::new();
  574.     $obj->{'parameters'} = $parameters1;
  575.     $obj->{'parameter_order'} = $parameter_order1;
  576.  
  577.     bless $obj, $pkg;
  578.     return $obj;
  579.   }
  580.  
  581.  
  582.  
  583.  
  584. sub getOrderType
  585.   {
  586.     my $obj = shift;
  587.  
  588.     return $obj->getValue( 'orderType' );
  589.   }
  590.  
  591. sub setOrderType
  592.   {
  593.     my $obj = shift;
  594.  
  595.     my $parameterValue = shift;
  596.  
  597.     return $obj->assignValue( 'orderType', $parameterValue);
  598.   }
  599.  
  600. sub getOrderNumber
  601.   {
  602.     my $obj = shift;
  603.  
  604.     return $obj->getValue( 'orderNumber' );
  605.   }
  606.  
  607. sub setOrderNumber
  608.   {
  609.     my $obj = shift;
  610.  
  611.     my $parameterValue = shift;
  612.  
  613.     return $obj->assignValue( 'orderNumber', $parameterValue);
  614.   }
  615.  
  616. sub getOrderName
  617.   {
  618.     my $obj = shift;
  619.  
  620.     return $obj->getValue( 'orderName' );
  621.   }
  622.  
  623. sub setOrderName
  624.   {
  625.     my $obj = shift;
  626.  
  627.     my $parameterValue = shift;
  628.  
  629.     return $obj->assignValue( 'orderName', $parameterValue);
  630.   }
  631.  
  632. sub getOrderDescription
  633.   {
  634.     my $obj = shift;
  635.  
  636.     return $obj->getValue( 'orderDescription' );
  637.   }
  638.  
  639. sub setOrderDescription
  640.   {
  641.     my $obj = shift;
  642.  
  643.     my $parameterValue = shift;
  644.  
  645.     return $obj->assignValue( 'orderDescription', $parameterValue);
  646.   }
  647.  
  648. sub getAmount
  649.   {
  650.     my $obj = shift;
  651.  
  652.     return $obj->getValue( 'amount' );
  653.   }
  654.  
  655. sub setAmount
  656.   {
  657.     my $obj = shift;
  658.  
  659.     my $parameterValue = shift;
  660.  
  661.     return $obj->assignValue( 'amount', $parameterValue);
  662.   }
  663.  
  664. sub getOrderFee
  665.   {
  666.     my $obj = shift;
  667.  
  668.     return $obj->getValue( 'orderFee' );
  669.   }
  670.  
  671. sub setOrderFee
  672.   {
  673.     my $obj = shift;
  674.  
  675.     my $parameterValue = shift;
  676.  
  677.     return $obj->assignValue( 'orderFee', $parameterValue);
  678.   }
  679.  
  680. sub getAmountDue
  681.   {
  682.     my $obj = shift;
  683.  
  684.     return $obj->getValue( 'amountDue' );
  685.   }
  686.  
  687. sub setAmountDue
  688.   {
  689.     my $obj = shift;
  690.  
  691.     my $parameterValue = shift;
  692.  
  693.     return $obj->assignValue( 'amountDue', $parameterValue);
  694.   }
  695.  
  696. sub getCurrentAmountDue
  697.   {
  698.     my $obj = shift;
  699.  
  700.     return $obj->getValue( 'currentAmountDue' );
  701.   }
  702.  
  703. sub setCurrentAmountDue
  704.   {
  705.     my $obj = shift;
  706.  
  707.     my $parameterValue = shift;
  708.  
  709.     return $obj->assignValue( 'currentAmountDue', $parameterValue);
  710.   }
  711.  
  712. sub getBalance
  713.   {
  714.     my $obj = shift;
  715.  
  716.     return $obj->getValue( 'balance' );
  717.   }
  718.  
  719. sub setBalance
  720.   {
  721.     my $obj = shift;
  722.  
  723.     my $parameterValue = shift;
  724.  
  725.     return $obj->assignValue( 'balance', $parameterValue);
  726.   }
  727.  
  728. sub getCurrentBalance
  729.   {
  730.     my $obj = shift;
  731.  
  732.     return $obj->getValue( 'currentBalance' );
  733.   }
  734.  
  735. sub setCurrentBalance
  736.   {
  737.     my $obj = shift;
  738.  
  739.     my $parameterValue = shift;
  740.  
  741.     return $obj->assignValue( 'currentBalance', $parameterValue);
  742.   }
  743.  
  744. sub getDueDate
  745.   {
  746.     my $obj = shift;
  747.  
  748.     return $obj->getValue( 'dueDate' );
  749.   }
  750.  
  751. sub setDueDate
  752.   {
  753.     my $obj = shift;
  754.  
  755.     my $parameterValue = shift;
  756.  
  757.     return $obj->assignValue( 'dueDate', $parameterValue);
  758.   }
  759.  
  760. sub getUserChoice1
  761.   {
  762.     my $obj = shift;
  763.  
  764.     return $obj->getValue( 'userChoice1' );
  765.   }
  766.  
  767. sub setUserChoice1
  768.   {
  769.     my $obj = shift;
  770.  
  771.     my $parameterValue = shift;
  772.  
  773.     return $obj->assignValue( 'userChoice1', $parameterValue);
  774.   }
  775.  
  776. sub getUserChoice2
  777.   {
  778.     my $obj = shift;
  779.  
  780.     return $obj->getValue( 'userChoice2' );
  781.   }
  782.  
  783. sub setUserChoice2
  784.   {
  785.     my $obj = shift;
  786.  
  787.     my $parameterValue = shift;
  788.  
  789.     return $obj->assignValue( 'userChoice2', $parameterValue);
  790.   }
  791.  
  792. sub getUserChoice3
  793.   {
  794.     my $obj = shift;
  795.  
  796.     return $obj->getValue( 'userChoice3' );
  797.   }
  798.  
  799. sub setUserChoice3
  800.   {
  801.     my $obj = shift;
  802.  
  803.     my $parameterValue = shift;
  804.  
  805.     return $obj->assignValue( 'userChoice3', $parameterValue);
  806.   }
  807.  
  808. sub getUserChoice4
  809.   {
  810.     my $obj = shift;
  811.  
  812.     return $obj->getValue( 'userChoice4' );
  813.   }
  814.  
  815. sub setUserChoice4
  816.   {
  817.     my $obj = shift;
  818.  
  819.     my $parameterValue = shift;
  820.  
  821.     return $obj->assignValue( 'userChoice4', $parameterValue);
  822.   }
  823.  
  824. sub getUserChoice5
  825.   {
  826.     my $obj = shift;
  827.  
  828.     return $obj->getValue( 'userChoice5' );
  829.   }
  830.  
  831. sub setUserChoice5
  832.   {
  833.     my $obj = shift;
  834.  
  835.     my $parameterValue = shift;
  836.  
  837.     return $obj->assignValue( 'userChoice5', $parameterValue);
  838.   }
  839.  
  840. sub getUserChoice6
  841.   {
  842.     my $obj = shift;
  843.  
  844.     return $obj->getValue( 'userChoice6' );
  845.   }
  846.  
  847. sub setUserChoice6
  848.   {
  849.     my $obj = shift;
  850.  
  851.     my $parameterValue = shift;
  852.  
  853.     return $obj->assignValue( 'userChoice6', $parameterValue);
  854.   }
  855.  
  856. sub getUserChoice7
  857.   {
  858.     my $obj = shift;
  859.  
  860.     return $obj->getValue( 'userChoice7' );
  861.   }
  862.  
  863. sub setUserChoice7
  864.   {
  865.     my $obj = shift;
  866.  
  867.     my $parameterValue = shift;
  868.  
  869.     return $obj->assignValue( 'userChoice7', $parameterValue);
  870.   }
  871.  
  872. sub getUserChoice8
  873.   {
  874.     my $obj = shift;
  875.  
  876.     return $obj->getValue( 'userChoice8' );
  877.   }
  878.  
  879. sub setUserChoice8
  880.   {
  881.     my $obj = shift;
  882.  
  883.     my $parameterValue = shift;
  884.  
  885.     return $obj->assignValue( 'userChoice8', $parameterValue);
  886.   }
  887.  
  888. sub getUserChoice9
  889.   {
  890.     my $obj = shift;
  891.  
  892.     return $obj->getValue( 'userChoice9' );
  893.   }
  894.  
  895. sub setUserChoice9
  896.   {
  897.     my $obj = shift;
  898.  
  899.     my $parameterValue = shift;
  900.  
  901.     return $obj->assignValue( 'userChoice9', $parameterValue);
  902.   }
  903.  
  904. sub getUserChoice10
  905.   {
  906.     my $obj = shift;
  907.  
  908.     return $obj->getValue( 'userChoice10' );
  909.   }
  910.  
  911. sub setUserChoice10
  912.   {
  913.     my $obj = shift;
  914.  
  915.     my $parameterValue = shift;
  916.  
  917.     return $obj->assignValue( 'userChoice10', $parameterValue);
  918.   }
  919.  
  920. sub getPaymentMethod
  921.   {
  922.     my $obj = shift;
  923.  
  924.     return $obj->getValue( 'paymentMethod' );
  925.   }
  926.  
  927. sub setPaymentMethod
  928.   {
  929.     my $obj = shift;
  930.  
  931.     my $parameterValue = shift;
  932.  
  933.     return $obj->assignValue( 'paymentMethod', $parameterValue);
  934.   }
  935.  
  936. sub getStreetOne
  937.   {
  938.     my $obj = shift;
  939.  
  940.     return $obj->getValue( 'streetOne' );
  941.   }
  942.  
  943. sub setStreetOne
  944.   {
  945.     my $obj = shift;
  946.  
  947.     my $parameterValue = shift;
  948.  
  949.     return $obj->assignValue( 'streetOne', $parameterValue);
  950.   }
  951.  
  952. sub getStreetTwo
  953.   {
  954.     my $obj = shift;
  955.  
  956.     return $obj->getValue( 'streetTwo' );
  957.   }
  958.  
  959. sub setStreetTwo
  960.   {
  961.     my $obj = shift;
  962.  
  963.     my $parameterValue = shift;
  964.  
  965.     return $obj->assignValue( 'streetTwo', $parameterValue);
  966.   }
  967.  
  968. sub getCity
  969.   {
  970.     my $obj = shift;
  971.  
  972.     return $obj->getValue( 'city' );
  973.   }
  974.  
  975. sub setCity
  976.   {
  977.     my $obj = shift;
  978.  
  979.     my $parameterValue = shift;
  980.  
  981.     return $obj->assignValue( 'city', $parameterValue);
  982.   }
  983.  
  984. sub getState
  985.   {
  986.     my $obj = shift;
  987.  
  988.     return $obj->getValue( 'state' );
  989.   }
  990.  
  991. sub setState
  992.   {
  993.     my $obj = shift;
  994.  
  995.     my $parameterValue = shift;
  996.  
  997.     return $obj->assignValue( 'state', $parameterValue);
  998.   }
  999.  
  1000. sub getZip
  1001.   {
  1002.     my $obj = shift;
  1003.  
  1004.     return $obj->getValue( 'zip' );
  1005.   }
  1006.  
  1007. sub setZip
  1008.   {
  1009.     my $obj = shift;
  1010.  
  1011.     my $parameterValue = shift;
  1012.  
  1013.     return $obj->assignValue( 'zip', $parameterValue);
  1014.   }
  1015.  
  1016. sub getCountry
  1017.   {
  1018.     my $obj = shift;
  1019.  
  1020.     return $obj->getValue( 'country' );
  1021.   }
  1022.  
  1023. sub setCountry
  1024.   {
  1025.     my $obj = shift;
  1026.  
  1027.     my $parameterValue = shift;
  1028.  
  1029.     return $obj->assignValue( 'country', $parameterValue);
  1030.   }
  1031.  
  1032. sub getDaytimePhone
  1033.   {
  1034.     my $obj = shift;
  1035.  
  1036.     return $obj->getValue( 'daytimePhone' );
  1037.   }
  1038.  
  1039. sub setDaytimePhone
  1040.   {
  1041.     my $obj = shift;
  1042.  
  1043.     my $parameterValue = shift;
  1044.  
  1045.     return $obj->assignValue( 'daytimePhone', $parameterValue);
  1046.   }
  1047.  
  1048. sub getEveningPhone
  1049.   {
  1050.     my $obj = shift;
  1051.  
  1052.     return $obj->getValue( 'eveningPhone' );
  1053.   }
  1054.  
  1055. sub setEveningPhone
  1056.   {
  1057.     my $obj = shift;
  1058.  
  1059.     my $parameterValue = shift;
  1060.  
  1061.     return $obj->assignValue( 'eveningPhone', $parameterValue);
  1062.   }
  1063.  
  1064. sub getEmail
  1065.   {
  1066.     my $obj = shift;
  1067.  
  1068.     return $obj->getValue( 'email' );
  1069.   }
  1070.  
  1071. sub setEmail
  1072.   {
  1073.     my $obj = shift;
  1074.  
  1075.     my $parameterValue = shift;
  1076.  
  1077.     return $obj->assignValue( 'email', $parameterValue);
  1078.   }
  1079.  
  1080. sub getRedirectUrl
  1081.   {
  1082.     my $obj = shift;
  1083.  
  1084.     return $obj->getValue( 'redirectUrl' );
  1085.   }
  1086.  
  1087. sub setRedirectUrl
  1088.   {
  1089.     my $obj = shift;
  1090.  
  1091.     my $parameterValue = shift;
  1092.  
  1093.     return $obj->assignValue( 'redirectUrl', $parameterValue);
  1094.   }
  1095.  
  1096. sub getRedirectUrlParameters
  1097.   {
  1098.     my $obj = shift;
  1099.  
  1100.     return $obj->getValue( 'redirectUrlParameters' );
  1101.   }
  1102.  
  1103. sub setRedirectUrlParameters
  1104.   {
  1105.     my $obj = shift;
  1106.  
  1107.     my $parameterValue = shift;
  1108.  
  1109.     return $obj->assignValue( 'redirectUrlParameters', $parameterValue);
  1110.   }
  1111.  
  1112. sub getRetriesAllowed
  1113.   {
  1114.     my $obj = shift;
  1115.  
  1116.     return $obj->getValue( 'retriesAllowed' );
  1117.   }
  1118.  
  1119. sub setRetriesAllowed
  1120.   {
  1121.     my $obj = shift;
  1122.  
  1123.     my $parameterValue = shift;
  1124.  
  1125.     return $obj->assignValue( 'retriesAllowed', $parameterValue);
  1126.   }
  1127.  
  1128. sub getContentEmbedded
  1129.   {
  1130.     my $obj = shift;
  1131.  
  1132.     return $obj->getValue( 'contentEmbedded' );
  1133.   }
  1134.  
  1135. sub setContentEmbedded
  1136.   {
  1137.     my $obj = shift;
  1138.  
  1139.     my $parameterValue = shift;
  1140.  
  1141.     return $obj->assignValue( 'contentEmbedded', $parameterValue);
  1142.   }
  1143.  
  1144. sub getTimestamp
  1145.   {
  1146.     my $obj = shift;
  1147.  
  1148.     return $obj->getValue( 'timestamp' );
  1149.   }
  1150.  
  1151. sub setTimestamp
  1152.   {
  1153.     my $obj = shift;
  1154.  
  1155.     my $parameterValue = shift;
  1156.  
  1157.     return $obj->assignValue( 'timestamp', $parameterValue);
  1158.   }
  1159.  
  1160.  
  1161. package Mypay::ReceiptData;
  1162.  
  1163. use strict;
  1164.  
  1165.  
  1166.  
  1167. use base qw(Mypay::Base);
  1168.  
  1169. sub new
  1170.   {
  1171.     my $pkg = shift;
  1172.  
  1173.     my $parameters1 = {
  1174.                  'transactionDate' => {
  1175.                                         'parameterName' => 'transactionDate'
  1176.                                       },
  1177.                  'transactionType' => {
  1178.                                         'parameterName' => 'transactionType'
  1179.                                       },
  1180.                  'userChoice3' => {
  1181.                                     'parameterName' => 'userChoice3'
  1182.                                   },
  1183.                  'state' => {
  1184.                               'parameterName' => 'state'
  1185.                             },
  1186.                  'transactionAcountType' => {
  1187.                                               'parameterName' => 'transactionAcountType'
  1188.                                             },
  1189.                  'email' => {
  1190.                               'parameterName' => 'email'
  1191.                             },
  1192.                  'daytimePhone' => {
  1193.                                      'parameterName' => 'daytimePhone'
  1194.                                    },
  1195.                  'userChoice2' => {
  1196.                                     'parameterName' => 'userChoice2'
  1197.                                   },
  1198.                  'payerIdentifier' => {
  1199.                                         'parameterName' => 'payerIdentifier'
  1200.                                       },
  1201.                  'transactionTotalAmount' => {
  1202.                                                'parameterName' => 'transactionTotalAmount'
  1203.                                              },
  1204.                  'orderType' => {
  1205.                                   'parameterName' => 'orderType'
  1206.                                 },
  1207.                  'transactionDescription' => {
  1208.                                                'parameterName' => 'transactionDescription'
  1209.                                              },
  1210.                  'streetTwo' => {
  1211.                                   'parameterName' => 'streetTwo'
  1212.                                 },
  1213.                  'actualPayerIdentifier' => {
  1214.                                               'parameterName' => 'actualPayerIdentifier'
  1215.                                             },
  1216.                  'streetOne' => {
  1217.                                   'parameterName' => 'streetOne'
  1218.                                 },
  1219.                  'payerFullName' => {
  1220.                                       'parameterName' => 'payerFullName'
  1221.                                     },
  1222.                  'transactionStatus' => {
  1223.                                           'parameterName' => 'transactionStatus'
  1224.                                         },
  1225.                  'transactionResultDate' => {
  1226.                                               'parameterName' => 'transactionResultDate'
  1227.                                             },
  1228.                  'hash' => {
  1229.                              'parameterName' => 'hash'
  1230.                            },
  1231.                  'orderDescription' => {
  1232.                                          'parameterName' => 'orderDescription'
  1233.                                        },
  1234.                  'zip' => {
  1235.                             'parameterName' => 'zip'
  1236.                           },
  1237.                  'orderName' => {
  1238.                                   'parameterName' => 'orderName'
  1239.                                 },
  1240.                  'userChoice1' => {
  1241.                                     'parameterName' => 'userChoice1'
  1242.                                   },
  1243.                  'userChoice4' => {
  1244.                                     'parameterName' => 'userChoice4'
  1245.                                   },
  1246.                  'orderBalance' => {
  1247.                                      'parameterName' => 'orderBalance'
  1248.                                    },
  1249.                  'orderCurrentStatusAmountDue' => {
  1250.                                                     'parameterName' => 'orderCurrentStatusAmountDue'
  1251.                                                   },
  1252.                  'userChoice5' => {
  1253.                                     'parameterName' => 'userChoice5'
  1254.                                   },
  1255.                  'transactionId' => {
  1256.                                       'parameterName' => 'transactionId'
  1257.                                     },
  1258.                  'orderAmount' => {
  1259.                                     'parameterName' => 'orderAmount'
  1260.                                   },
  1261.                  'transactionResultCode' => {
  1262.                                               'parameterName' => 'transactionResultCode'
  1263.                                             },
  1264.                  'orderCurrentStatusBalance' => {
  1265.                                                   'parameterName' => 'orderCurrentStatusBalance'
  1266.                                                 },
  1267.                  'transactionEffectiveDate' => {
  1268.                                                  'parameterName' => 'transactionEffectiveDate'
  1269.                                                },
  1270.                  'city' => {
  1271.                              'parameterName' => 'city'
  1272.                            },
  1273.                  'originalTransactionId' => {
  1274.                                               'parameterName' => 'originalTransactionId'
  1275.                                             },
  1276.                  'timestamp' => {
  1277.                                   'parameterName' => 'timestamp'
  1278.                                 },
  1279.                  'accountHolderName' => {
  1280.                                           'parameterName' => 'accountHolderName'
  1281.                                         },
  1282.                  'orderNumber' => {
  1283.                                     'parameterName' => 'orderNumber'
  1284.                                   },
  1285.                  'actualPayerFullName' => {
  1286.                                             'parameterName' => 'actualPayerFullName'
  1287.                                           },
  1288.                  'country' => {
  1289.                                 'parameterName' => 'country'
  1290.                               },
  1291.                  'actualPayerType' => {
  1292.                                         'parameterName' => 'actualPayerType'
  1293.                                       },
  1294.                  'payerType' => {
  1295.                                   'parameterName' => 'payerType'
  1296.                                 },
  1297.                  'orderFee' => {
  1298.                                  'parameterName' => 'orderFee'
  1299.                                },
  1300.                  'transactionResultMessage' => {
  1301.                                                  'parameterName' => 'transactionResultMessage'
  1302.                                                },
  1303.                  'orderAmountDue' => {
  1304.                                        'parameterName' => 'orderAmountDue'
  1305.                                      },
  1306.                  'orderDueDate' => {
  1307.                                      'parameterName' => 'orderDueDate'
  1308.                                    },
  1309.                  'eveningPhone' => {
  1310.                                      'parameterName' => 'eveningPhone'
  1311.                                    }
  1312.                };
  1313.  
  1314.     my $parameter_order1 = [
  1315.                       'transactionType',
  1316.                       'transactionStatus',
  1317.                       'transactionId',
  1318.                       'originalTransactionId',
  1319.                       'transactionTotalAmount',
  1320.                       'transactionDate',
  1321.                       'transactionAcountType',
  1322.                       'transactionEffectiveDate',
  1323.                       'transactionDescription',
  1324.                       'transactionResultDate',
  1325.                       'transactionResultCode',
  1326.                       'transactionResultMessage',
  1327.                       'orderNumber',
  1328.                       'orderType',
  1329.                       'orderName',
  1330.                       'orderDescription',
  1331.                       'orderAmount',
  1332.                       'orderFee',
  1333.                       'orderAmountDue',
  1334.                       'orderDueDate',
  1335.                       'orderBalance',
  1336.                       'orderCurrentStatusBalance',
  1337.                       'orderCurrentStatusAmountDue',
  1338.                       'payerType',
  1339.                       'payerIdentifier',
  1340.                       'payerFullName',
  1341.                       'actualPayerType',
  1342.                       'actualPayerIdentifier',
  1343.                       'actualPayerFullName',
  1344.                       'accountHolderName',
  1345.                       'streetOne',
  1346.                       'streetTwo',
  1347.                       'city',
  1348.                       'state',
  1349.                       'zip',
  1350.                       'country',
  1351.                       'daytimePhone',
  1352.                       'eveningPhone',
  1353.                       'email',
  1354.                       'userChoice1',
  1355.                       'userChoice2',
  1356.                       'userChoice3',
  1357.                       'userChoice4',
  1358.                       'userChoice5',
  1359.                       'timestamp',
  1360.                       'hash'
  1361.                     ];
  1362.  
  1363.  
  1364.     my $obj = $pkg->SUPER::new();
  1365.     $obj->{'parameters'} = $parameters1;
  1366.     $obj->{'parameter_order'} = $parameter_order1;
  1367.  
  1368.     bless $obj, $pkg;
  1369.     return $obj;
  1370.   }
  1371.  
  1372.  
  1373.  
  1374. sub getTransactionType
  1375.   {
  1376.     my $obj = shift;
  1377.  
  1378.     return $obj->getValue( 'transactionType' );
  1379.   }
  1380.  
  1381. sub setTransactionType
  1382.   {
  1383.     my $obj = shift;
  1384.  
  1385.     my $parameterValue = shift;
  1386.  
  1387.     return $obj->assignValue( 'transactionType', $parameterValue);
  1388.   }
  1389.  
  1390. sub getTransactionStatus
  1391.   {
  1392.     my $obj = shift;
  1393.  
  1394.     return $obj->getValue( 'transactionStatus' );
  1395.   }
  1396.  
  1397. sub setTransactionStatus
  1398.   {
  1399.     my $obj = shift;
  1400.  
  1401.     my $parameterValue = shift;
  1402.  
  1403.     return $obj->assignValue( 'transactionStatus', $parameterValue);
  1404.   }
  1405.  
  1406. sub getTransactionId
  1407.   {
  1408.     my $obj = shift;
  1409.  
  1410.     return $obj->getValue( 'transactionId' );
  1411.   }
  1412.  
  1413. sub setTransactionId
  1414.   {
  1415.     my $obj = shift;
  1416.  
  1417.     my $parameterValue = shift;
  1418.  
  1419.     return $obj->assignValue( 'transactionId', $parameterValue);
  1420.   }
  1421.  
  1422. sub getOriginalTransactionId
  1423.   {
  1424.     my $obj = shift;
  1425.  
  1426.     return $obj->getValue( 'originalTransactionId' );
  1427.   }
  1428.  
  1429. sub setOriginalTransactionId
  1430.   {
  1431.     my $obj = shift;
  1432.  
  1433.     my $parameterValue = shift;
  1434.  
  1435.     return $obj->assignValue( 'originalTransactionId', $parameterValue);
  1436.   }
  1437.  
  1438. sub getTransactionTotalAmount
  1439.   {
  1440.     my $obj = shift;
  1441.  
  1442.     return $obj->getValue( 'transactionTotalAmount' );
  1443.   }
  1444.  
  1445. sub setTransactionTotalAmount
  1446.   {
  1447.     my $obj = shift;
  1448.  
  1449.     my $parameterValue = shift;
  1450.  
  1451.     return $obj->assignValue( 'transactionTotalAmount', $parameterValue);
  1452.   }
  1453.  
  1454. sub getTransactionDate
  1455.   {
  1456.     my $obj = shift;
  1457.  
  1458.     return $obj->getValue( 'transactionDate' );
  1459.   }
  1460.  
  1461. sub setTransactionDate
  1462.   {
  1463.     my $obj = shift;
  1464.  
  1465.     my $parameterValue = shift;
  1466.  
  1467.     return $obj->assignValue( 'transactionDate', $parameterValue);
  1468.   }
  1469.  
  1470. sub getTransactionAcountType
  1471.   {
  1472.     my $obj = shift;
  1473.  
  1474.     return $obj->getValue( 'transactionAcountType' );
  1475.   }
  1476.  
  1477. sub setTransactionAcountType
  1478.   {
  1479.     my $obj = shift;
  1480.  
  1481.     my $parameterValue = shift;
  1482.  
  1483.     return $obj->assignValue( 'transactionAcountType', $parameterValue);
  1484.   }
  1485.  
  1486. sub getTransactionEffectiveDate
  1487.   {
  1488.     my $obj = shift;
  1489.  
  1490.     return $obj->getValue( 'transactionEffectiveDate' );
  1491.   }
  1492.  
  1493. sub setTransactionEffectiveDate
  1494.   {
  1495.     my $obj = shift;
  1496.  
  1497.     my $parameterValue = shift;
  1498.  
  1499.     return $obj->assignValue( 'transactionEffectiveDate', $parameterValue);
  1500.   }
  1501.  
  1502. sub getTransactionDescription
  1503.   {
  1504.     my $obj = shift;
  1505.  
  1506.     return $obj->getValue( 'transactionDescription' );
  1507.   }
  1508.  
  1509. sub setTransactionDescription
  1510.   {
  1511.     my $obj = shift;
  1512.  
  1513.     my $parameterValue = shift;
  1514.  
  1515.     return $obj->assignValue( 'transactionDescription', $parameterValue);
  1516.   }
  1517.  
  1518. sub getTransactionResultDate
  1519.   {
  1520.     my $obj = shift;
  1521.  
  1522.     return $obj->getValue( 'transactionResultDate' );
  1523.   }
  1524.  
  1525. sub setTransactionResultDate
  1526.   {
  1527.     my $obj = shift;
  1528.  
  1529.     my $parameterValue = shift;
  1530.  
  1531.     return $obj->assignValue( 'transactionResultDate', $parameterValue);
  1532.   }
  1533.  
  1534. sub getTransactionResultCode
  1535.   {
  1536.     my $obj = shift;
  1537.  
  1538.     return $obj->getValue( 'transactionResultCode' );
  1539.   }
  1540.  
  1541. sub setTransactionResultCode
  1542.   {
  1543.     my $obj = shift;
  1544.  
  1545.     my $parameterValue = shift;
  1546.  
  1547.     return $obj->assignValue( 'transactionResultCode', $parameterValue);
  1548.   }
  1549.  
  1550. sub getTransactionResultMessage
  1551.   {
  1552.     my $obj = shift;
  1553.  
  1554.     return $obj->getValue( 'transactionResultMessage' );
  1555.   }
  1556.  
  1557. sub setTransactionResultMessage
  1558.   {
  1559.     my $obj = shift;
  1560.  
  1561.     my $parameterValue = shift;
  1562.  
  1563.     return $obj->assignValue( 'transactionResultMessage', $parameterValue);
  1564.   }
  1565.  
  1566. sub getOrderNumber
  1567.   {
  1568.     my $obj = shift;
  1569.  
  1570.     return $obj->getValue( 'orderNumber' );
  1571.   }
  1572.  
  1573. sub setOrderNumber
  1574.   {
  1575.     my $obj = shift;
  1576.  
  1577.     my $parameterValue = shift;
  1578.  
  1579.     return $obj->assignValue( 'orderNumber', $parameterValue);
  1580.   }
  1581.  
  1582. sub getOrderType
  1583.   {
  1584.     my $obj = shift;
  1585.  
  1586.     return $obj->getValue( 'orderType' );
  1587.   }
  1588.  
  1589. sub setOrderType
  1590.   {
  1591.     my $obj = shift;
  1592.  
  1593.     my $parameterValue = shift;
  1594.  
  1595.     return $obj->assignValue( 'orderType', $parameterValue);
  1596.   }
  1597.  
  1598. sub getOrderName
  1599.   {
  1600.     my $obj = shift;
  1601.  
  1602.     return $obj->getValue( 'orderName' );
  1603.   }
  1604.  
  1605. sub setOrderName
  1606.   {
  1607.     my $obj = shift;
  1608.  
  1609.     my $parameterValue = shift;
  1610.  
  1611.     return $obj->assignValue( 'orderName', $parameterValue);
  1612.   }
  1613.  
  1614. sub getOrderDescription
  1615.   {
  1616.     my $obj = shift;
  1617.  
  1618.     return $obj->getValue( 'orderDescription' );
  1619.   }
  1620.  
  1621. sub setOrderDescription
  1622.   {
  1623.     my $obj = shift;
  1624.  
  1625.     my $parameterValue = shift;
  1626.  
  1627.     return $obj->assignValue( 'orderDescription', $parameterValue);
  1628.   }
  1629.  
  1630. sub getOrderAmount
  1631.   {
  1632.     my $obj = shift;
  1633.  
  1634.     return $obj->getValue( 'orderAmount' );
  1635.   }
  1636.  
  1637. sub setOrderAmount
  1638.   {
  1639.     my $obj = shift;
  1640.  
  1641.     my $parameterValue = shift;
  1642.  
  1643.     return $obj->assignValue( 'orderAmount', $parameterValue);
  1644.   }
  1645.  
  1646. sub getOrderFee
  1647.   {
  1648.     my $obj = shift;
  1649.  
  1650.     return $obj->getValue( 'orderFee' );
  1651.   }
  1652.  
  1653. sub setOrderFee
  1654.   {
  1655.     my $obj = shift;
  1656.  
  1657.     my $parameterValue = shift;
  1658.  
  1659.     return $obj->assignValue( 'orderFee', $parameterValue);
  1660.   }
  1661.  
  1662. sub getOrderAmountDue
  1663.   {
  1664.     my $obj = shift;
  1665.  
  1666.     return $obj->getValue( 'orderAmountDue' );
  1667.   }
  1668.  
  1669. sub setOrderAmountDue
  1670.   {
  1671.     my $obj = shift;
  1672.  
  1673.     my $parameterValue = shift;
  1674.  
  1675.     return $obj->assignValue( 'orderAmountDue', $parameterValue);
  1676.   }
  1677.  
  1678. sub getOrderDueDate
  1679.   {
  1680.     my $obj = shift;
  1681.  
  1682.     return $obj->getValue( 'orderDueDate' );
  1683.   }
  1684.  
  1685. sub setOrderDueDate
  1686.   {
  1687.     my $obj = shift;
  1688.  
  1689.     my $parameterValue = shift;
  1690.  
  1691.     return $obj->assignValue( 'orderDueDate', $parameterValue);
  1692.   }
  1693.  
  1694. sub getOrderBalance
  1695.   {
  1696.     my $obj = shift;
  1697.  
  1698.     return $obj->getValue( 'orderBalance' );
  1699.   }
  1700.  
  1701. sub setOrderBalance
  1702.   {
  1703.     my $obj = shift;
  1704.  
  1705.     my $parameterValue = shift;
  1706.  
  1707.     return $obj->assignValue( 'orderBalance', $parameterValue);
  1708.   }
  1709.  
  1710. sub getOrderCurrentStatusBalance
  1711.   {
  1712.     my $obj = shift;
  1713.  
  1714.     return $obj->getValue( 'orderCurrentStatusBalance' );
  1715.   }
  1716.  
  1717. sub setOrderCurrentStatusBalance
  1718.   {
  1719.     my $obj = shift;
  1720.  
  1721.     my $parameterValue = shift;
  1722.  
  1723.     return $obj->assignValue( 'orderCurrentStatusBalance', $parameterValue);
  1724.   }
  1725.  
  1726. sub getOrderCurrentStatusAmountDue
  1727.   {
  1728.     my $obj = shift;
  1729.  
  1730.     return $obj->getValue( 'orderCurrentStatusAmountDue' );
  1731.   }
  1732.  
  1733. sub setOrderCurrentStatusAmountDue
  1734.   {
  1735.     my $obj = shift;
  1736.  
  1737.     my $parameterValue = shift;
  1738.  
  1739.     return $obj->assignValue( 'orderCurrentStatusAmountDue', $parameterValue);
  1740.   }
  1741.  
  1742. sub getPayerType
  1743.   {
  1744.     my $obj = shift;
  1745.  
  1746.     return $obj->getValue( 'payerType' );
  1747.   }
  1748.  
  1749. sub setPayerType
  1750.   {
  1751.     my $obj = shift;
  1752.  
  1753.     my $parameterValue = shift;
  1754.  
  1755.     return $obj->assignValue( 'payerType', $parameterValue);
  1756.   }
  1757.  
  1758. sub getPayerIdentifier
  1759.   {
  1760.     my $obj = shift;
  1761.  
  1762.     return $obj->getValue( 'payerIdentifier' );
  1763.   }
  1764.  
  1765. sub setPayerIdentifier
  1766.   {
  1767.     my $obj = shift;
  1768.  
  1769.     my $parameterValue = shift;
  1770.  
  1771.     return $obj->assignValue( 'payerIdentifier', $parameterValue);
  1772.   }
  1773.  
  1774. sub getPayerFullName
  1775.   {
  1776.     my $obj = shift;
  1777.  
  1778.     return $obj->getValue( 'payerFullName' );
  1779.   }
  1780.  
  1781. sub setPayerFullName
  1782.   {
  1783.     my $obj = shift;
  1784.  
  1785.     my $parameterValue = shift;
  1786.  
  1787.     return $obj->assignValue( 'payerFullName', $parameterValue);
  1788.   }
  1789.  
  1790. sub getActualPayerType
  1791.   {
  1792.     my $obj = shift;
  1793.  
  1794.     return $obj->getValue( 'actualPayerType' );
  1795.   }
  1796.  
  1797. sub setActualPayerType
  1798.   {
  1799.     my $obj = shift;
  1800.  
  1801.     my $parameterValue = shift;
  1802.  
  1803.     return $obj->assignValue( 'actualPayerType', $parameterValue);
  1804.   }
  1805.  
  1806. sub getActualPayerIdentifier
  1807.   {
  1808.     my $obj = shift;
  1809.  
  1810.     return $obj->getValue( 'actualPayerIdentifier' );
  1811.   }
  1812.  
  1813. sub setActualPayerIdentifier
  1814.   {
  1815.     my $obj = shift;
  1816.  
  1817.     my $parameterValue = shift;
  1818.  
  1819.     return $obj->assignValue( 'actualPayerIdentifier', $parameterValue);
  1820.   }
  1821.  
  1822. sub getActualPayerFullName
  1823.   {
  1824.     my $obj = shift;
  1825.  
  1826.     return $obj->getValue( 'actualPayerFullName' );
  1827.   }
  1828.  
  1829. sub setActualPayerFullName
  1830.   {
  1831.     my $obj = shift;
  1832.  
  1833.     my $parameterValue = shift;
  1834.  
  1835.     return $obj->assignValue( 'actualPayerFullName', $parameterValue);
  1836.   }
  1837.  
  1838. sub getAccountHolderName
  1839.   {
  1840.     my $obj = shift;
  1841.  
  1842.     return $obj->getValue( 'accountHolderName' );
  1843.   }
  1844.  
  1845. sub setAccountHolderName
  1846.   {
  1847.     my $obj = shift;
  1848.  
  1849.     my $parameterValue = shift;
  1850.  
  1851.     return $obj->assignValue( 'accountHolderName', $parameterValue);
  1852.   }
  1853.  
  1854. sub getStreetOne
  1855.   {
  1856.     my $obj = shift;
  1857.  
  1858.     return $obj->getValue( 'streetOne' );
  1859.   }
  1860.  
  1861. sub setStreetOne
  1862.   {
  1863.     my $obj = shift;
  1864.  
  1865.     my $parameterValue = shift;
  1866.  
  1867.     return $obj->assignValue( 'streetOne', $parameterValue);
  1868.   }
  1869.  
  1870. sub getStreetTwo
  1871.   {
  1872.     my $obj = shift;
  1873.  
  1874.     return $obj->getValue( 'streetTwo' );
  1875.   }
  1876.  
  1877. sub setStreetTwo
  1878.   {
  1879.     my $obj = shift;
  1880.  
  1881.     my $parameterValue = shift;
  1882.  
  1883.     return $obj->assignValue( 'streetTwo', $parameterValue);
  1884.   }
  1885.  
  1886. sub getCity
  1887.   {
  1888.     my $obj = shift;
  1889.  
  1890.     return $obj->getValue( 'city' );
  1891.   }
  1892.  
  1893. sub setCity
  1894.   {
  1895.     my $obj = shift;
  1896.  
  1897.     my $parameterValue = shift;
  1898.  
  1899.     return $obj->assignValue( 'city', $parameterValue);
  1900.   }
  1901.  
  1902. sub getState
  1903.   {
  1904.     my $obj = shift;
  1905.  
  1906.     return $obj->getValue( 'state' );
  1907.   }
  1908.  
  1909. sub setState
  1910.   {
  1911.     my $obj = shift;
  1912.  
  1913.     my $parameterValue = shift;
  1914.  
  1915.     return $obj->assignValue( 'state', $parameterValue);
  1916.   }
  1917.  
  1918. sub getZip
  1919.   {
  1920.     my $obj = shift;
  1921.  
  1922.     return $obj->getValue( 'zip' );
  1923.   }
  1924.  
  1925. sub setZip
  1926.   {
  1927.     my $obj = shift;
  1928.  
  1929.     my $parameterValue = shift;
  1930.  
  1931.     return $obj->assignValue( 'zip', $parameterValue);
  1932.   }
  1933.  
  1934. sub getCountry
  1935.   {
  1936.     my $obj = shift;
  1937.  
  1938.     return $obj->getValue( 'country' );
  1939.   }
  1940.  
  1941. sub setCountry
  1942.   {
  1943.     my $obj = shift;
  1944.  
  1945.     my $parameterValue = shift;
  1946.  
  1947.     return $obj->assignValue( 'country', $parameterValue);
  1948.   }
  1949.  
  1950. sub getDaytimePhone
  1951.   {
  1952.     my $obj = shift;
  1953.  
  1954.     return $obj->getValue( 'daytimePhone' );
  1955.   }
  1956.  
  1957. sub setDaytimePhone
  1958.   {
  1959.     my $obj = shift;
  1960.  
  1961.     my $parameterValue = shift;
  1962.  
  1963.     return $obj->assignValue( 'daytimePhone', $parameterValue);
  1964.   }
  1965.  
  1966. sub getEveningPhone
  1967.   {
  1968.     my $obj = shift;
  1969.  
  1970.     return $obj->getValue( 'eveningPhone' );
  1971.   }
  1972.  
  1973. sub setEveningPhone
  1974.   {
  1975.     my $obj = shift;
  1976.  
  1977.     my $parameterValue = shift;
  1978.  
  1979.     return $obj->assignValue( 'eveningPhone', $parameterValue);
  1980.   }
  1981.  
  1982. sub getEmail
  1983.   {
  1984.     my $obj = shift;
  1985.  
  1986.     return $obj->getValue( 'email' );
  1987.   }
  1988.  
  1989. sub setEmail
  1990.   {
  1991.     my $obj = shift;
  1992.  
  1993.     my $parameterValue = shift;
  1994.  
  1995.     return $obj->assignValue( 'email', $parameterValue);
  1996.   }
  1997.  
  1998. sub getUserChoice1
  1999.   {
  2000.     my $obj = shift;
  2001.  
  2002.     return $obj->getValue( 'userChoice1' );
  2003.   }
  2004.  
  2005. sub setUserChoice1
  2006.   {
  2007.     my $obj = shift;
  2008.  
  2009.     my $parameterValue = shift;
  2010.  
  2011.     return $obj->assignValue( 'userChoice1', $parameterValue);
  2012.   }
  2013.  
  2014. sub getUserChoice2
  2015.   {
  2016.     my $obj = shift;
  2017.  
  2018.     return $obj->getValue( 'userChoice2' );
  2019.   }
  2020.  
  2021. sub setUserChoice2
  2022.   {
  2023.     my $obj = shift;
  2024.  
  2025.     my $parameterValue = shift;
  2026.  
  2027.     return $obj->assignValue( 'userChoice2', $parameterValue);
  2028.   }
  2029.  
  2030. sub getUserChoice3
  2031.   {
  2032.     my $obj = shift;
  2033.  
  2034.     return $obj->getValue( 'userChoice3' );
  2035.   }
  2036.  
  2037. sub setUserChoice3
  2038.   {
  2039.     my $obj = shift;
  2040.  
  2041.     my $parameterValue = shift;
  2042.  
  2043.     return $obj->assignValue( 'userChoice3', $parameterValue);
  2044.   }
  2045.  
  2046. sub getUserChoice4
  2047.   {
  2048.     my $obj = shift;
  2049.  
  2050.     return $obj->getValue( 'userChoice4' );
  2051.   }
  2052.  
  2053. sub setUserChoice4
  2054.   {
  2055.     my $obj = shift;
  2056.  
  2057.     my $parameterValue = shift;
  2058.  
  2059.     return $obj->assignValue( 'userChoice4', $parameterValue);
  2060.   }
  2061.  
  2062. sub getUserChoice5
  2063.   {
  2064.     my $obj = shift;
  2065.  
  2066.     return $obj->getValue( 'userChoice5' );
  2067.   }
  2068.  
  2069. sub setUserChoice5
  2070.   {
  2071.     my $obj = shift;
  2072.  
  2073.     my $parameterValue = shift;
  2074.  
  2075.     return $obj->assignValue( 'userChoice5', $parameterValue);
  2076.   }
  2077.  
  2078. sub getTimestamp
  2079.   {
  2080.     my $obj = shift;
  2081.  
  2082.     return $obj->getValue( 'timestamp' );
  2083.   }
  2084.  
  2085. sub setTimestamp
  2086.   {
  2087.     my $obj = shift;
  2088.  
  2089.     my $parameterValue = shift;
  2090.  
  2091.     return $obj->assignValue( 'timestamp', $parameterValue);
  2092.   }
  2093.  
  2094. sub getHash
  2095.   {
  2096.     my $obj = shift;
  2097.  
  2098.     return $obj->getValue( 'hash' );
  2099.   }
  2100.  
  2101. sub setHash
  2102.   {
  2103.     my $obj = shift;
  2104.  
  2105.     my $parameterValue = shift;
  2106.  
  2107.     return $obj->assignValue( 'hash', $parameterValue);
  2108.   }
  2109.  
  2110.  
  2111. package Mypay::Receipt;
  2112.  
  2113. use strict;
  2114.  
  2115. use base qw(Mypay::ReceiptData);
  2116.  
  2117. use Digest::MD5 qw(md5_hex);
  2118. use Time::HiRes qw(gettimeofday);
  2119.  
  2120. use CGI;
  2121.  
  2122. sub new
  2123.   {
  2124.     my $pkg = shift;
  2125.     my $cgi = shift;
  2126.  
  2127.     my $obj = $pkg->SUPER::new();
  2128.     bless $obj, $pkg;
  2129.  
  2130.     if ($cgi)
  2131.       {
  2132.         $obj->_populate_from_cgi_object($cgi);
  2133.       }
  2134.  
  2135.     return $obj;
  2136.   }
  2137.  
  2138. sub _populate_from_cgi_object
  2139.   {
  2140.     my $obj = shift;
  2141.     my $cgi = shift;
  2142.  
  2143.     foreach my $name (@{ $obj->{'parameter_order'} })
  2144.       {
  2145.         $obj->assign($name, $cgi->param($name));
  2146.       }
  2147.   }
  2148.  
  2149. sub verifyHash
  2150.   {
  2151.     my $obj = shift;
  2152.     my $url = shift;
  2153.  
  2154.     if ($url)
  2155.       {
  2156.         # read values from the parameter string
  2157.  
  2158.         $url =~ s/[^?]*\?//; # leave only the query string
  2159.  
  2160.         my $cgi = new CGI($url);
  2161.         $obj->_populate_from_cgi_object($cgi);
  2162.       }
  2163.     else
  2164.       {
  2165.         # verify that parameters have been set.
  2166.         my $count = 0;
  2167.         foreach my $name (@{ $obj->{'parameter_order'} })
  2168.           {
  2169.             my $node = $obj->{'parameters'}->{ $name };
  2170.  
  2171.             $count++ if (defined($node->{'value'}));
  2172.           }
  2173.         $obj->_populate_from_cgi_object(new CGI()) unless ($count);
  2174.       }
  2175.  
  2176.     # check time for difference
  2177.     my ($seconds, $microseconds) = gettimeofday();
  2178.     my $current_time = int($seconds*1000 + $microseconds/1000);
  2179.  
  2180.     return 0 if ( ($obj->getTimestamp() + $obj->getTimeoutWindow()) < $current_time);
  2181.  
  2182.     # create hash data string
  2183.     my $hash_data = '';
  2184.  
  2185.     foreach my $name (@{ $obj->{'parameter_order'} })
  2186.       {
  2187.         next if ($name =~ /^hash$/i);
  2188.         my $node = $obj->{'parameters'}->{ $name };
  2189.  
  2190.         if (defined($node->{'value'}))
  2191.           {
  2192.             my $value = $node->{'value'};
  2193.             $hash_data .= $value;
  2194.           }
  2195.       }
  2196.  
  2197.     $obj->addError('No Key Specified') unless ($obj->get('key'));
  2198.  
  2199.     $hash_data .= $obj->get('key');
  2200.     my $hash_digest = md5_hex( $hash_data );
  2201.  
  2202.     # return 1 if ($hash_digest eq $obj->{'verify_hash'});
  2203.     return 1 if ($hash_digest eq $obj->getHash());
  2204.     return 0;
  2205.   }
  2206.  
  2207.  
  2208. sub getRedirectUrlParameters
  2209.   {
  2210.     my $obj = shift;
  2211.     my $list = shift;
  2212.  
  2213.     my @names = split(/\s*,\s*/,$list);
  2214.     my @values = ();
  2215.  
  2216.     foreach my $name (@names)
  2217.       {
  2218.         if (defined $obj->{'parameters'}->{ $name })
  2219.           {
  2220.             my $node = $obj->{'parameters'}->{ $name };
  2221.             push(@values,$node->{'value'});
  2222.           }
  2223.         else
  2224.           {
  2225.             $obj->addError("The parameter '$name' is invalid");
  2226.           }
  2227.       }
  2228.     return pop(@values) if ($#values <= 0);
  2229.     return (@values);
  2230.   }
  2231.  
  2232.  
  2233.  
  2234.  
  2235. #
  2236. #
  2237. # WARNING: The following functions are just for unit testing.  
  2238. # They should not be used otherwise.
  2239. #
  2240. #
  2241.  
  2242. sub getURL
  2243.   {
  2244.     my $obj = shift;
  2245.     return $obj->getBaseURL() . '?' . $obj->getQueryString();
  2246.   }
  2247.  
  2248. sub getHashDigest
  2249.   {
  2250.     my $obj = shift;
  2251.  
  2252.     $obj->create_results() unless ($obj->{'hash_digest'});
  2253.  
  2254.     return $obj->{'hash_digest'};
  2255.   }
  2256.  
  2257. sub getQueryString
  2258.   {
  2259.     my $obj = shift;
  2260.  
  2261.     $obj->create_results() unless ($obj->{'query_string'});
  2262.  
  2263.     return $obj->{'query_string'};
  2264.   }
  2265.  
  2266. sub create_results
  2267.   {
  2268.     my $obj = shift;
  2269.  
  2270.     my ($seconds, $microseconds) = gettimeofday();
  2271.     my $timestamp = int($seconds*1000 + $microseconds/1000);
  2272.  
  2273.     $obj->assign('timestamp',$timestamp);
  2274.  
  2275.     # create query string and hash data
  2276.  
  2277.     my $hash_data = '';
  2278.  
  2279.     my @query_string = qw();
  2280.  
  2281.     foreach my $name (@{ $obj->{'parameter_order'} })
  2282.       {
  2283.         my $node = $obj->{'parameters'}->{ $name };
  2284.  
  2285.         if (defined($node->{'value'}))
  2286.           {
  2287.             my $value = $node->{'value'};
  2288.             $hash_data .= $value;
  2289.  
  2290.             # $query->param(-name=>"$name",   -value=>"$value");
  2291.             push(@query_string,$name . "=" . CGI::escape($value));
  2292.           }
  2293.       }
  2294.  
  2295.     # Hash
  2296.     $hash_data .= $obj->get('key');
  2297.     my $hash_digest = md5_hex( $hash_data );
  2298.  
  2299.     push(@query_string, "hash=$hash_digest");
  2300.  
  2301.     $obj->{'query_string'} = join("&",@query_string);
  2302.     $obj->{'hash_digest'} = $hash_digest;
  2303.   }
  2304.  
  2305. sub _clear_results
  2306.   {
  2307.     my $obj = shift;
  2308.  
  2309.     $obj->{'hash_digest'} = '';
  2310.     $obj->{'query_string'} = '';
  2311.   }
  2312.  
  2313. package Mypay::Pay;
  2314.  
  2315. use strict;
  2316.  
  2317. use base qw(Mypay::PayData);
  2318.  
  2319. use Digest::MD5 qw(md5_hex);
  2320. use Time::HiRes qw(gettimeofday);
  2321.  
  2322.  
  2323. use CGI;
  2324.  
  2325. sub new
  2326.   {
  2327.     my $pkg = shift;
  2328.     my $cgi = shift;
  2329.  
  2330.     my $obj = $pkg->SUPER::new();
  2331.     bless $obj, $pkg;
  2332.  
  2333.     if ($cgi)
  2334.       {
  2335.         $obj->_populate_from_cgi_object($cgi);
  2336.       }
  2337.  
  2338.     return $obj;
  2339.   }
  2340.  
  2341. sub getURL
  2342.   {
  2343.     my $obj = shift;
  2344.     return $obj->getBaseURL() . '?' . $obj->getQueryString();
  2345.   }
  2346.  
  2347. sub _populate_from_cgi_object
  2348.   {
  2349.     my $obj = shift;
  2350.     my $cgi = shift;
  2351.  
  2352.     foreach my $name (@{ $obj->{'parameter_order'} })
  2353.       {
  2354.         $obj->assign($name, $cgi->param($name));
  2355.       }
  2356.   }
  2357.  
  2358.  
  2359. sub getHashDigest
  2360.   {
  2361.     my $obj = shift;
  2362.  
  2363.     $obj->create_results() unless ($obj->{'hash_digest'});
  2364.  
  2365.     return $obj->{'hash_digest'};
  2366.   }
  2367.  
  2368. sub getQueryString
  2369.   {
  2370.     my $obj = shift;
  2371.  
  2372.     $obj->create_results() unless ($obj->{'query_string'});
  2373.  
  2374.     return $obj->{'query_string'};
  2375.   }
  2376.  
  2377. sub create_results
  2378.   {
  2379.     my $obj = shift;
  2380.  
  2381.     my ($seconds, $microseconds) = gettimeofday();
  2382.     my $timestamp = int($seconds*1000 + $microseconds/1000);
  2383.  
  2384.     $obj->assign('timestamp',$timestamp);
  2385.  
  2386.     $obj->_check();
  2387.    
  2388.     # order the parameters
  2389.     # create query string and hash data
  2390.  
  2391.     my $hash_data = '';
  2392.     # my $query = new CGI( {} );
  2393.  
  2394.     my @query_string = qw();
  2395.  
  2396.     foreach my $name (@{ $obj->{'parameter_order'} })
  2397.       {
  2398.         my $node = $obj->{'parameters'}->{ $name };
  2399.  
  2400.         if ( ($node->{'passedToQuickPAY'} =~ /YES/i) || defined($node->{'value'}))
  2401.           {
  2402.             my $value = $node->{'value'};
  2403.             $hash_data .= $value;
  2404.  
  2405.             # $query->param(-name=>"$name",   -value=>"$value");
  2406.             push(@query_string,$name . "=" . CGI::escape($value));
  2407.           }
  2408.       }
  2409.  
  2410.     # Hash
  2411.     $hash_data .= $obj->get('key');
  2412.     my $hash_digest = md5_hex( $hash_data );
  2413.  
  2414.     push(@query_string, "hash=$hash_digest");
  2415.  
  2416.     $obj->{'query_string'} = join("&",@query_string);
  2417.     $obj->{'hash_digest'} = $hash_digest;
  2418.   }
  2419.  
  2420. sub _clear_results
  2421.   {
  2422.     my $obj = shift;
  2423.  
  2424.     $obj->{'hash_digest'} = '';
  2425.     $obj->{'query_string'} = '';
  2426.   }
  2427.  
  2428. sub _check
  2429.   {
  2430.     my $obj = shift;
  2431.  
  2432.     foreach my $name (@{ $obj->{'parameter_order'} })
  2433.       {
  2434.         my $node = $obj->{'parameters'}->{ $name };
  2435.  
  2436.         if ( ($node->{'passedToQuickPAY'} =~ /YES/i))
  2437.           {
  2438.  
  2439.             if (! defined($node->{'value'}))
  2440.               {
  2441.                 push(@{ $obj->{'errors'} },
  2442.                   "Required parameter '$name' is not assigned a value");
  2443.                 # return 0;
  2444.               }
  2445.  
  2446.             if (length($node->{'value'}) <= 0)
  2447.               {
  2448.                 push(@{ $obj->{'errors'} },
  2449.                   "Required parameter '$name' is assigned a null value");
  2450.                 # return 0;
  2451.               }
  2452.           }
  2453.  
  2454.         if (defined( $node->{'value'} ))
  2455.           {
  2456.             if ($node->{'maxLength'} =~ /^\d+$/)
  2457.               {
  2458.                 if (length($node->{'value'}) > $node->{'maxLength'})
  2459.                   {
  2460.                     push(@{ $obj->{'errors'} },
  2461.                       "Parameter '$name' is too long.  Max length is " . $node->{'maxLength'});
  2462.                     # return 0;
  2463.                   }
  2464.               }
  2465.  
  2466.             # could also check the data type
  2467.  
  2468.           }
  2469.       }
  2470.  
  2471.     # check for a key
  2472.  
  2473.     unless ($obj->get('key'))
  2474.       {
  2475.         push(@{ $obj->{'errors'} }, "No key specified.");
  2476.         # return 0;
  2477.       }
  2478.  
  2479.     return 0 if ($obj->isError());
  2480.     return 1;
  2481.   }
  2482.  
  2483. sub setRedirectUrlParameters
  2484.   {
  2485.     my $obj = shift;
  2486.     my $value = shift;
  2487.  
  2488.     $obj->SUPER::setRedirectUrlParameters( $value );
  2489.  
  2490.     my $receipt = new Mypay::Receipt();
  2491.     $receipt->getRedirectUrlParameters( $obj->getRedirectUrlParameters() );
  2492.     if ($receipt->isError())
  2493.       {
  2494.         $obj->addError("The Mypay::Receipt did not accept the parameters '$value'"
  2495.                   . " (" . $receipt->errors(' ') . ")" );
  2496.         return 0;
  2497.       }
  2498.     return 1;
  2499.   }
  2500.  
  2501. return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement