2017-02-11 5 views
0

Я работаю над codeigniter и интегрирую платежный шлюз payumoney. Здесь у меня есть регистрационная форма, и в форме есть разные поля. Теперь, что я делаю, я хочу добавить платежный шлюз payumoney, но проблема в том, что, когда я добавляю, пишу fname или сумму от себя, он работает нормально, но пока я использую $ this-> вход-> пост ('first_name') появляется сообщение об ошибке, как следует click to view the image (Here is the error in the image)Ошибка Payumoney при интеграции codeigniter

здесь переменные данные the values for data array

Мой код следующим образом:

function checkout() { 
     $this->load->config('payu'); 
     $MERCHANT_KEY = $this->config->item('MERCHANT_KEY'); 
     $SALT = $this->config->item('SALT'); 
     $PAYU_BASE_URL = $this->config->item('PAYU_BASE_URL'); 
     $action = ''; 
     $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20); 

     $udf1 = ''; 
     $udf2 = ''; 
     $udf3 = ''; 
     $udf4 = ''; 
     $udf5 = ''; 
     $amount = $this->input->post('corporate_plan_rate'); 
     $productinfo = 'test'; 
     $fname = $this->input->post('user_name'); 
     $email = $this->input->post('user_email'); 


     $data = array(
      'mkey' => $MERCHANT_KEY, 
      'tid' => $txnid, 
      'MERCHANT_KEY'=>$MERCHANT_KEY, 
      'txnid'=>$txnid, 
      'SALT'=>$SALT, 
//   'hash' => $hash, 
      'amount' => $amount, 
      'pinfo' => $productinfo, 
      'name' => $fname, 
      'productinfo'=>$productinfo, 
      'mailid' => $email, 
      'phoneno' => '9646403748', 
      'udf1' => $udf1, 
      'udf2' => $udf2, 
      'udf3' => $udf3, 
      'udf4' => $udf4, 
      'udf5' => $udf5, 
     ); 

     $this->load->view('payu/checkout.php', $data); 
    } 

и вот мой страница просмотра:

<html> 
    <head> 
     <!--<script src="//code.jquery.com/jquery.min.js"></script>--> 
     <script> 
//   $(function() { 
//    setTimeout(function() { 
//     $('form').submit(); 
//    }, 2000) 
//   }); 
     </script> 
    </head> 
    <body> 
     <?php 
     $hashstring = $MERCHANT_KEY . '|' . $txnid . '|' . $amount . '|' . $productinfo . '|' . $name . '|' . $mailid . '|' . $udf1 . '|' . $udf2 . '|' . $udf3 . '|' . $udf4 . '|' . $udf5 . '||||||' . $SALT; 

     $hash = strtolower(hash('sha512', $hashstring)); 
     ?> 
     <h2>PayU Form</h2> 
     <br/> 
     <form method="post" name="payuForm" action="https://test.payu.in/_payment"> 

      <input name="key" type="hidden" value="<?php echo $mkey ?>" /> 
      <input name="txnid" type="hidden" value="<?php echo $tid ?>" /> 
      <input type="hidden" name="hash" value="<?php echo $hash ?>"/> 

      <input name="amount" type="hidden" value="<?php echo $amount; ?>" /> 

      <input name="productinfo" type="hidden" value="<?php echo $pinfo; ?>"> 

      <input type="hidden" name="service_provider" value="payu_paisa" size="64" /> 
      <input name="udf1" type="hidden" value=""> 
      <input name="udf2" type="hidden" value=""> 
      <input name="udf3" type="hidden" value=""> 
      <input name="udf4" type="hidden" value=""> 
      <input name="udf5" type="hidden" value=""> 

      <input name="firstname" id="firstname" type="hidden" value="<?php echo $name; ?>"/> 

      <input name="email" id="email" type="hidden" value='<?php echo $mailid; ?>'> 

      <input name="phone" type="hidden" value="<?php echo $phoneno; ?>"> 
      <input name="surl" type="hidden" value="<?php echo base_url('payu/success'); ?>" size="64" /> 
      <input name="furl" type="hidden" value="<?php echo base_url('payu/cancel'); ?>" size="64" /> 
      <input name="curl" type="hidden" value="<?php echo base_url('payu/cancel'); ?>" /> 

      <input type="submit" name="submit_form" value="Click Here for Payment" class="btn btn-info btn-block" > 
     </form> 
    </body> 
</html> 

Пожалуйста, помогите мне найти проблему и решить ее .. Thanx

+0

У меня такое же сообщение об ошибке со стороны payumoney, когда я использую оригинальный ключ продавца и соль в тестовом URL. Поэтому я настоятельно рекомендую вам перепроверить свой торговый ключ и соль. И если это не ваша проблема, вы можете опубликовать значение print_r ($ data) вместе с вопросом. Вы можете удалить ключ продавца и соль и другую информацию, если хотите, перед публикацией. –

+0

Хорошо, что используется только для тестовой учетной записи. Итак, я опубликовал данные $ –

+0

Привет, Джеймс, я добавил print_r ($ data). пожалуйста, проверьте, что я использую codeiginter –

ответ

0

Пожалуйста полностью заменить функцию контроллера с ниже кодов

function checkout() 
{ 

     $MERCHANT_KEY = "enter your test merchant key here"; 
     $SALT = "enter your test salt here"; 

     $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20); 

     $udf1 = ''; 
     $udf2 = ''; 
     $udf3 = ''; 
     $udf4 = ''; 
     $udf5 = ''; 
     $amount = $this->input->post('corporate_plan_rate'); 
     $productinfo = 'test_payment'; 
     $fname = $this->input->post('user_name'); 
     $email = $this->input->post('user_email'); 

     $hashstring = $MERCHANT_KEY . '|' . $txnid . '|' . $amount . '|' . $productinfo . '|'. $fname . '|' . $email .'|'.$udf1.'|' .$udf2.'|' .$udf3.'|'.$udf4.'|'.$udf5.'||||||'. $SALT; 

     $hash = strtolower(hash('sha512', $hashstring)); 

     $data = array(
      'mkey' => $MERCHANT_KEY, 
      'tid' => $txnid, 
      'hash' => $hash, 
      'amount' => $amount, 
      'pinfo' => $productinfo, 
      'name' => $fname, 
      'productinfo'=>$productinfo, 
      'mailid' => $email, 
      'phoneno' => '9646403748', 
     ); 

     $this->load->view('payu/checkout', $data); 
} 

Теперь полностью заменить файл вида оформления заказа со следующими кодами

<html> 
    <head> 
    </head> 
    <body> 

     <h2>PayU Form</h2> 
     <br/> 
     <form method="post" name="payuForm" action="https://test.payu.in/_payment"> 

      <input name="key" type="hidden" value="<?php echo $mkey ?>" /> 
      <input name="txnid" type="hidden" value="<?php echo $tid ?>" /> 
      <input type="hidden" name="hash" value="<?php echo $hash ?>"/> 

      <input name="amount" type="hidden" value="<?php echo $amount; ?>" /> 

      <input name="productinfo" type="hidden" value="<?php echo $pinfo; ?>"> 

      <input type="hidden" name="service_provider" value="payu_paisa" size="64" /> 
      <input name="udf1" type="hidden" value=""> 
      <input name="udf2" type="hidden" value=""> 
      <input name="udf3" type="hidden" value=""> 
      <input name="udf4" type="hidden" value=""> 
      <input name="udf5" type="hidden" value=""> 

      <input name="firstname" id="firstname" type="hidden" value="<?php echo $name; ?>"/> 

      <input name="email" id="email" type="hidden" value='<?php echo $mailid; ?>'> 

      <input name="phone" type="hidden" value="<?php echo $phoneno; ?>"> 

      <input name="surl" type="hidden" value="<?php echo base_url('payu/success'); ?>" size="64" /> 
      <input name="furl" type="hidden" value="<?php echo base_url('payu/cancel'); ?>" size="64" /> 
      <input name="curl" type="hidden" value="<?php echo base_url('payu/cancel'); ?>" /> 

      <input type="submit" name="submit_form" value="Click Here for Payment" class="btn btn-info btn-block" > 
     </form> 
    </body> 
</html> 

Пожалуйста, попробуйте код выше, не добавляя какие-либо свои собственные коды для тестирования, и если одна и та же ошибка содержит комментарий ниже.

+0

Да, такая же проблема возникла. Некоторый мой код работает, но максимальное время, которое он не может выполнить. Я не понимаю, в чем проблема. –

+0

На самом деле, что я делаю, у меня есть регистрационная форма, и пользователь заполняет форму, а затем форму отправляется методу проверки, и сначала все поля формы вставляются в базу данных, тогда все поля после этого выполняются, как указано выше. Затем перенаправляется на платежный шлюз и т. Д. Несколько раз я вручную вводил значение суммы в контроллере по адресу $ this-> input-> post ('corpor_plan_rate'), он работал для меня 1 раз раньше. но тот же код сейчас не работает. Поэтому, пожалуйста, разрешите проблему. Код работает хорошо в базовом PHP-коде. Thanx –

+0

@BirendraSingh поэтому, если вы вручную вводите значения в $ amount, $ fname и $ email, этот код работает нормально? Я тестирую вышеуказанные коды в тестовом проекте CodeIgniter, используя мою тестовую соль и ключ, и он отлично работает для меня. Пожалуйста, позвоните в службу поддержки payumoney, чтобы убедиться, что ваша соль и ключ теста работают и исправляются. –