#! /usr/bin/perl #======================================================= # Generated by ScriptGen v1.38 (build 126, "OS_BUILD") # at Thu Mar 06 15:15:30 2008 #======================================================= use warnings; use strict; use CGI qw(:all); use SOAP::Lite (+trace => 'all', maptype => {} ); use SOAP::Transport::HTTP; $|++; my $cgi = new CGI; #Variables ERR_CODE__ and ERR_DETAILS are reserved for errors indication my $ERR_CODE__="0"; my $ERR_DETAILS__=""; #======================================================= # Input Parameters Section. DO NOT EDIT! #======================================================= #Name: member_number #Variable: member_number #Type: String #Comment: my $member_number = $cgi->param("member_number"); if (!(defined $member_number)) { $ERR_CODE__ = "2"; $ERR_DETAILS__ = "Input parameter 'member_number' is undefined"; } #Name: postcode #Variable: postcode #Type: String #Comment: my $postcode = $cgi->param("postcode"); if (!(defined $postcode)) { $ERR_CODE__ = "2"; $ERR_DETAILS__ = "Input parameter 'postcode' is undefined"; } #Name: country #Variable: country #Type: String #Comment: Will default to A for the Australian script my $country = $cgi->param("country"); if (!(defined $country)) { $ERR_CODE__ = "2"; $ERR_DETAILS__ = "Input parameter 'country' is undefined"; } #======================================================= # Output Parameters Section. DO NOT EDIT! #======================================================= #Name: comm_remain #Variable: comm_remain #Type: String #Comment: my $comm_remain=""; #Name: comm_required #Variable: comm_required #Type: String #Comment: my $comm_required=""; #Name: comm_taken #Variable: comm_taken #Type: String #Comment: my $comm_taken=""; #Name: outstanding_balance #Variable: outstanding_balance #Type: String #Comment: my $outstanding_balance=""; #======================================================= #=== PLEASE INSERT THE CODE HERE FOR ASSIGNING THE REAL VALUES #=== TO FOLLOWING VARIABLES: #=== $comm_remain, $comm_required, $comm_taken, $outstanding_balance #=== SET $ERR_CODE__ = "5" (i.e. "User Defined Error") #=== AND $ERR_DETAILS__ TO EXPLANATION STRING IF A WRONG CONDITION SHOULD ARISE. #=== {{{{{ #======CODE ADDED BY SR FOR IVR COMMERCE SERVER INTEGRATION my $soap = SOAP::Lite -> uri('http://www.doubleday.com.au/') -> on_action( sub { join '/', 'http://www.doubleday.com.au', $_[1] } ) -> proxy('http://localhost/IVRWebService/Membership.asmx'); my $header = SOAP::Header->name(MyHeader => { MyName => "DoubleDayIVRWebServices" })->uri('http://www.doubleday.com.au/')->prefix(''); my @params = ( $header, SOAP::Data->name(memberNo => '0101001'), SOAP::Data->name(postcode => '6033'), SOAP::Data->name(country => 'A') ); my $method = SOAP::Data->name('IsMemberValid') ->attr({xmlns => 'http://www.doubleday.com.au/'}); my $result = $soap->call($method=>@params); if ($result->fault) { print $result->faultstring; } else { print $result->result; } $comm_required=$result->valueof('//IsMemberValidResult/comm_required'); $comm_taken=$result->valueof('//IsMemberValidResult/comm_taken'); $comm_remain=$result->valueof('//IsMemberValidResult/comm_remain'); $outstanding_balance=$result->valueof('//IsMemberValidResult/outstanding_balance'); #=== }}}}} #======================================================= # Output variables checking. #======================================================= if (!(defined $comm_remain && isvalidstring($comm_remain))) { $ERR_CODE__ = "3"; $ERR_DETAILS__ = "Invalid value '$comm_remain' for parameter 'comm_remain'"; } if (!(defined $comm_required && isvalidstring($comm_required))) { $ERR_CODE__ = "3"; $ERR_DETAILS__ = "Invalid value '$comm_required' for parameter 'comm_required'"; } if (!(defined $comm_taken && isvalidstring($comm_taken))) { $ERR_CODE__ = "3"; $ERR_DETAILS__ = "Invalid value '$comm_taken' for parameter 'comm_taken'"; } if (!(defined $outstanding_balance && isvalidstring($outstanding_balance))) { $ERR_CODE__ = "3"; $ERR_DETAILS__ = "Invalid value '$outstanding_balance' for parameter 'outstanding_balance'"; } print qq|Content-Type: text/xml\n\n|; print qq||; print qq||; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq|
|; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq| |; print qq|
|; print qq|
|; #======================================================= # Used functions. DO NOT EDIT! #======================================================= sub convert2vxml { $_ = shift; s/&/&/g; s/\\/\\\\/g; s//>/g; s/"/\\"/g; s/chr(8)/\\b/g; s/chr(9)/\\t/g; s/chr(10)/\\n/g; s/chr(11)/\\v/g; s/chr(12)/\\f/g; s/chr(13)/\\r/g; s/'/\\'/g; return $_; } sub isvaliddate { my $input = shift; my $DataPattern = '^(?:(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((?:19|20)\d\d))$'; if ($input =~ m!$DataPattern!) { # At this point, $3 holds the year, $1 the month and $2 the day of the date entered if ($2 == 31 and ($1 == 4 or $1 == 6 or $1 == 9 or $1 == 11)) { return 0; # 31st of a month with 30 days } elsif ($2 >= 30 and $1 == 2) { return 0; # February 30th or 31st } elsif ($1 == 2 and $2 == 29 and not ($3 % 4 == 0 and ($3 % 100 != 0 or $3 % 400 == 0))) { return 0; # February 29th outside a leap year } else { return 1; # Valid date } } else { return 0; # Not a date } } sub isvalidtime { my $input = shift; my $TimePattern = '^(([0-1][0-9]|2[0-3]):[0-5][0-9])$'; if ($input =~ m!$TimePattern!) { return 1; } return 0; } sub isvalidnumber { my $input = shift; my $NumberPattern = '^([-+]?([0-9]*\.)?[0-9]+)$'; if ($input =~ m!$NumberPattern!) { return 1; } return 0; } sub isvalidinteger { my $input = shift; my $IntegerPattern = '^([-+]?[0-9]+)$'; if ($input =~ m!$IntegerPattern!) { return 1; } return 0; } sub isvalidstring { my $input = shift; return 1; } sub SOAP::Transport::HTTP::Client::get_basic_credentials { return 'LAN\username' => 'password'; }