在使用PHP的PayuMoney Web集成中,我到达success.php页面,但获得了msg" Invalid Transaction。请再试一次"

时间:2016-09-27 14:13:47

标签: php payumoney

由于success.php中有一个代码,它比较发送给PayUMoney的$hash变量与我们收到的变量的相等性,如果它们不相等则显示消息:

  

无效的交易。请再试一次

所以我收到了这条消息,我不知道如何解决这个问题。

有一些示例代码为success.php

<?php
$status=$_POST["status"];
$firstname=$_POST["firstname"];
$amount=$_POST["amount"];
$txnid=$_POST["txnid"];
$posted_hash=$_POST["hash"];
$key=$_POST["key"];
$productinfo=$_POST["productinfo"];
$email=$_POST["email"];
$salt="salt";

if (isset($_POST["additionalCharges"])) {
   $additionalCharges=$_POST["additionalCharges"];
    $retHashSeq =       $additionalCharges.'|'.$salt.'|'.$status.'|||||||||||'.$email.'|'.$firstname.'|'.$productinfo.'|'.$amount.'|'.$txnid.'|'.$key;

              }
else {    

    $retHashSeq =   $salt.'|'.$status.'|||||||||||'.$email.'|'.$firstname.'|'.$productinfo.'|'.$amount.'|'.$txnid.'|'.$key;

     }
     $hash = hash("sha512", $retHashSeq);

   if ($hash != $posted_hash) {
       echo "Invalid Transaction. Please try again";
       }
   else {

      echo "<h3>Thank You. Your order status is ". $status .".</h3>";
      echo "<h4>Your Transaction ID for this transaction is ".$txnid.".   </h4>";
      echo "<h4>We have received a payment of Rs. " . $amount . ". Your    order will soon be shipped.</h4>";

       }         
?>

1 个答案:

答案 0 :(得分:3)

第10行。 $ salt =&#34; salt&#34 ;;

应该是$ salt =&#34;您的payumoney帐户中的盐enter code here&#34;

示例

$status=$_POST["status"];
$firstname=$_POST["firstname"];
$amount=$_POST["amount"];
$txnid=$_POST["txnid"];
$posted_hash=$_POST["hash"];
$key=$_POST["key"];
$productinfo=$_POST["productinfo"];
$email=$_POST["email"];
$salt="GQs7yium";

这就是为什么$ retHastseq不等于$ posted_hash。

试一试。