Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Why will this not work?
use LWP::UserAgent; use Digest::SHA1 qw(sha1 sha1_hex sha1_base64); $sourcekey = 'K123456789L'; $pin = '1234'; $command = 'cc:sale'; $amount = '5.50'; $invoice = '123123'; # Generate Hash $seed = rand(); $prehash = $command . ":" . $pin . ":" . $amount . ":" . $invoice . ": +" . $seed; $hash = 's/' . $seed . '/' . sha1_hex($prehash) . '/n';
The says it is not the same as sent, meaning it did not work any help would be greatly appreciated

Replies are listed 'Best First'.
Re: digest::SHA1 problem
by pme (Monsignor) on Feb 10, 2015 at 18:47 UTC
    How does this script fail? What is sent?
      this code was give to me by the vendor, & when using it, it comes back from the server with an error saying it does not match what was sent?? any help would be greatly appreciated. This is the complete sample code:
      use LWP::UserAgent; use Digest::SHA1 qw(sha1 sha1_hex sha1_base64); $sourcekey = 'Your_source_key_here'; $pin = '1234'; $command = 'cc:sale'; $amount = '5.50'; $invoice = '123123'; # Generate Hash $seed = rand(); $prehash = $command . ":" . $pin . ":" . $amount . ":" . $invoice . ": +" . $seed; $hash = 's/' . $seed . '/' . sha1_hex($prehash) . '/n'; $ua = LWP::UserAgent->new; $res = $ua->post('https://sandbox.usaepay.com/gate.php', [ 'UMkey' => $sourcekey, 'UMhash' => $hash, 'UMname' => "Example Tester", 'UMcard' => "4444555566667779", 'UMexpir' => "0113", 'UMcvv2' => "999", 'UMamount' => $amount, 'UMinvoice' => $invoice, 'UMstreet' => "1234 Main Street", 'UMzip' => "12345", 'UMcommand' => $command ]); print "\n\nresult: ".$res->content; print "\n";
        What I get is 'UMerror=Specified source key not found.' what is totally acceptable because of
        $sourcekey = 'Your_source_key_here';
Re: digest::SHA1 problem
by Anonymous Monk on Feb 10, 2015 at 19:57 UTC
    I think the problem is in the hash, because that is what the error says: hash does not match what was sent!

      Thanks for the help, I figured it out!