如何修复codeigniter中的payu biz集成错误

时间:2017-07-23 10:26:51

标签: codeigniter payumoney

如何修复payu支付网关集成哈希错误。 这是我的控制器代码。

    $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20);
    $data['tid'] = $txnid;
    $SALT = 'eCwWELxi';
    $udf1 = '';
    $udf2 = '';
    $udf3 = '';
    $udf4 = '';
    $udf5 = '';

    $hashstring = 'gtKFFx' . '|' . $txnid . '|' . '2000' . '|' . 'sdfsdgfsgsfgdfgfsgfdgsd' . '|' . 'suman' . '|' . 'suman@weborbit.in' . '|' . $udf1 . '|' . $udf2 . '|' . $udf3 . '|' . $udf4 . '|' . $udf5 . '||||||||' . $SALT;

    $hash = strtolower(hash('sha512', $hashstring));
    $data['hash'] = $hash;
    $this->load->view('booking_form_view', $data);

这是我的表格。

      <form method="POST" name="payuForm" action="https://test.payu.in/_payment">
        <input type="hidden" name="key" value="gtKFFx" />
        <input type="text" name="hash" value="<?= @$hash; ?>"/>
        <input type="text" name="txnid" value="<?php echo $tid; ?>" />
        <input type="hidden" name="service_provider" value="" size="64" />

        <tr>
            <td>Amount <span class="mand">*</span>: </td>
            <td><input name="amount" type="number" value="2000" /></td>
            <td>First Name <span class="mand">*</span>: </td>
            <td><input type="text" name="firstname" id="firstname" value="suman" /></td>
        </tr>
        <tr>
            <td>Email <span class="mand">*</span>: </td>
            <td><input type="email" name="email" id="email" value="suman@gmail.com" /></td>
            <td>Phone <span class="mand">*</span>: </td>
            <td><input type="text" name="phone" value="7047752176" /></td>
        </tr>
        <tr>
            <td>Product Info <span class="mand">*</span>: </td>
            <td colspan="3"><textarea name="productinfo">sdfsdgfsgsfgdfgfsgfdgsd</textarea></td>
        </tr>
        <tr>
            <td>Success URL <span class="mand">*</span>: </td>
            <td colspan="3"><input type="text" name="surl" value="<?= site_url('test/success'); ?>" size="64" /></td>
        </tr>
        <tr>
            <td>Failure URL <span class="mand">*</span>: </td>
            <td colspan="3"><input type="text" name="furl" value="<?= site_url('test/fail'); ?>" size="64" /></td>
        </tr>

        <button type="submit" id="test"></button>
    </form>

当我提交测试付款的表单时,会给我一些散列错误和散列不是数组。 Hash Error

2 个答案:

答案 0 :(得分:0)

在$ SALT之前,您正在使用8&#39; |&#39;这是不正确的。

用户6&#39; |&#39;并且金额应该是浮动的(至少两位小数 )值例如:2000.00

我希望这会奏效。

答案 1 :(得分:0)

使用以下代码表示哈希参数:

$hashdata = ($key."|".$txnid."|".$amount."|".$productinfo."|".$firstname."|".$email."|||||||||||".$salt);
$hash = strtolower(hash("sha512", $hashdata));