2017-02-11 11 views
0

저는 codeigniter를 작업하고 payumoney 지불 게이트웨이를 통합하려고합니다. 여기에 나는 등록 양식이 있고 양식에 다양한 필드가 있습니다. 지금 내가하고있는 일은 payumoney 지불 게이트웨이를 추가하고 싶습니다. 그러나 문제는 이것이 fname 또는 금액을 직접 작성하면됩니다. 내 여기Codeigniter를 통합하는 동안 Payumoney 오류가 발생했습니다.

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); 
    } 

과 : this-> 입력 -> 포스트 ('FIRST_NAME 님')은 여기 click to view the image (Here is the error in the image)

는 데이터 the values for data array

내 코드는 변수를 다음입니다 다음 오류처럼 보여줍니다 보기 페이지 :

<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> 

나를 고맙습니다

을 문제를 발견하고 .. 그것을 해결 도와주세요
+0

테스트 URL에서 원래 판매자 키와 소금을 사용하면 payumoney 측에서 동일한 오류 메시지가 표시됩니다. 따라서 판매자 열쇠와 소금을 다시 확인하시는 것이 좋습니다. 그리고 그것이 문제가 아니라면 질문과 함께 print_r ($ data) 값을 게시 할 수 있습니다. 게시하기 전에 판매자 키와 소금 및 기타 중요한 정보를 제거 할 수 있습니다. –

+0

그냥 테스트 계정으로 사용됩니다. 그래서 $ 데이터를 게시했습니다 –

+0

안녕 제임스 나는 print_r ($ 데이터)를 추가했습니다. CodeGinter을 사용하고 있는지 확인하십시오. –

답변

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 ('corporate_plan_rate') 위치에 직접 입력하는 경우가 있습니다. 하지만 지금은 같은 코드가 작동하지 않습니다. 그래서 문제를 해결하십시오. 핵심 PHP 코드에서 작동하는 코드. 고맙습니다 –

+0

@BirendraSingh 그래서 $ amount, $ fname 및 $ email에 수동으로 값을 입력하면 위 코드가 올바르게 작동합니까? 필자는 테스트 코드와 키를 사용하여 테스트 CodeIgniter 프로젝트에서 위의 코드를 테스트합니다. payumoney 지원 담당자에게 전화하여 시험용 소금과 열쇠가 올바르게 작동하는지 확인하십시오. –