I knew how to do this but am drawing a blank. Need to confirm that the shipping total is being sent to Paypal in the post data for the transaction.
If you have perl and a webserver then you can change the paypal url to your webserver and run...
#!/usr/bin/perl
# ------------------------------------------------------------
# test.pl, by evenh@stud.unit.no
#
# Last updated: Jun 14, 1996
#
# This script slurps in everything from stdin and the
# query-string if there is one. It translates %xx encoding and
# displays all input given to the script.
#
# It should be compatible with any CGI-compatible HTTP server.
# Feel free to modify it! :-)
# ------------------------------------------------------------
# Print a title and initial heading
print "Content-type: text/html\n\n";
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
`/usr/local/bin/gpush /tmp/data_dump.rpt`;
# Add query_string if it exists
$buffer = sprintf("%s%s%s", $buffer, ($buffer) ? "&" : "", $ENV{'QUERY_STRING'})
if $ENV{'QUERY_STRING'};
# Split the name-value pairs
@pairs = split(/&/, $buffer );
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# Uncomment for debugging purposes
# print "Setting $name to $value<br>";
# The next construction save multiple values by joining them
# with '|' inbetween each value
if ($FORM{$name}) {
$FORM{$name} .= "|" . $value;
} else { $FORM{$name} = $value;
}
}
print<<'EOF_HEADER';
<html>
<head>
<title>Information passed to this script</title>
</head>
<body>
<h1>Information passed to this script</h1>
EOF_HEADER
if (%ENV) {
print "<h2>Environment</h2>\n<PRE>\n";
while (($key, $value) = (each %ENV))
{
print "$key=$value\n";
} print "</PRE>\n\n";
}
if (%FORM) {
print "<H2>These Form-variables exists</H2>\n<PRE>\n";
while (($key, $value) = (each %FORM))
{
print "$key=$value\n";
} print "</PRE>\n\n";
}
if (@ARGV) {
print "<h2>Command-line arguments</H2>\n<PRE>\n";
foreach (@ARGV) {
print "$_\n";
}
print "</pre>\n";
}
print "<hr><address>This page is automatically generated</address>\n";
print "</body></html>\n";
I call it data_dump
Need a clue here... how do I call the script?
Quote from: stinga on April 15, 2010, 22:21:43 PM
If you have perl and a webserver then you can change the paypal url to your webserver and run...
#!/usr/bin/perl
# ------------------------------------------------------------
# test.pl, by evenh@stud.unit.no
#
# Last updated: Jun 14, 1996
#
# This script slurps in everything from stdin and the
# query-string if there is one. It translates %xx encoding and
# displays all input given to the script.
#
# It should be compatible with any CGI-compatible HTTP server.
# Feel free to modify it! :-)
# ------------------------------------------------------------
# Print a title and initial heading
print "Content-type: text/html\n\n";
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
`/usr/local/bin/gpush /tmp/data_dump.rpt`;
# Add query_string if it exists
$buffer = sprintf("%s%s%s", $buffer, ($buffer) ? "&" : "", $ENV{'QUERY_STRING'})
if $ENV{'QUERY_STRING'};
# Split the name-value pairs
@pairs = split(/&/, $buffer );
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
# Un-Webify plus signs and %-encoding
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# Uncomment for debugging purposes
# print "Setting $name to $value<br>";
# The next construction save multiple values by joining them
# with '|' inbetween each value
if ($FORM{$name}) {
$FORM{$name} .= "|" . $value;
} else { $FORM{$name} = $value;
}
}
print<<'EOF_HEADER';
<html>
<head>
<title>Information passed to this script</title>
</head>
<body>
<h1>Information passed to this script</h1>
EOF_HEADER
if (%ENV) {
print "<h2>Environment</h2>\n<PRE>\n";
while (($key, $value) = (each %ENV))
{
print "$key=$value\n";
} print "</PRE>\n\n";
}
if (%FORM) {
print "<H2>These Form-variables exists</H2>\n<PRE>\n";
while (($key, $value) = (each %FORM))
{
print "$key=$value\n";
} print "</PRE>\n\n";
}
if (@ARGV) {
print "<h2>Command-line arguments</H2>\n<PRE>\n";
foreach (@ARGV) {
print "$_\n";
}
print "</pre>\n";
}
print "<hr><address>This page is automatically generated</address>\n";
print "</body></html>\n";
I call it data_dump
How much do you know?
It is a cgi script so it needs to be in a directory on a webserver that can run cgi.
Then just change the call to PayPal with whatever your domain name is, something like http://<domainname>/data_dump. The normal VM processing will add all the PayPal parameters and this script will print it out.
If you want you could just point at the one on my machine...
www.recovery-cd-disk.com/cgi-bin/data_dump.pl
(http://www.recovery-cd-disk.com/cgi-bin/data_dump.pl)
you rock! thank you.