Невозможно получить значение в успешном ответе payumoney, который передается из метода контроллера - PullRequest
1 голос
/ 30 июня 2019

Я интегрировал платежный шлюз payumoney в свой проект, и он работал нормально, но у меня есть дополнительные требования, поэтому я хочу передать это id. Я получаю идентификатор, такой как '$ this-> input-> post (' id '), и присваиваю ему переменную $ plan_info и передаю его на страницу подтверждения (страница просмотра), когда пользователь нажимает кнопку подтверждения, Оплата будет произведена дебетовым / сетевым банком. На странице успеха я не получаю значение $ plan_info, однако перехожу на страницу подтверждения.

Код, написанный на контроллере

    $product_info = 'testTransaction';
    $customer_name = $this->input->post('customer_name');
    $customer_email = $this->input->post('customer_email');
    $customer_mobile = $this->input->post('mobile_number');
    $id = $this->input->post('id');
    $customer_address = $this->input->post('customer_address');
    $MERCHANT_KEY = "xyz"; 
    $SALT = "xyzxyz";   
    $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20);
    //optional udf values 
    $udf1 = '';
    $udf2 = '';
    $udf3 = '';
    $udf4 = '';
    $udf5 = ''; 
    $hashstring = $MERCHANT_KEY . '|' . $txnid . '|' . $amount . '|' . $product_info . '|' . $customer_name . '|' . $customer_email  . '|'. $udf1 . '|' . $udf2 . '|' . $udf3 . '|' . $udf4 . '|' . $udf5 . '||||||' . $SALT; 
    $hash = strtolower(hash('sha512', $hashstring));
    $success = base_url() . 'Success';
    $fail = base_url() . 'Success';
    $cancel = base_url() . 'Success';
    $data = array(
        'mkey' => $MERCHANT_KEY,
        'tid' => $txnid,
        'hash' => $hash,
        'amount' => $amount,
        'name' => $customer_name,
        'productinfo' => $product_info,
        'mailid' => $customer_email,
        'phoneno' => $customer_mobile,
        'address' => $customer_address,
        'action' => "https://test.payu.in", //for live change action  
         https://secure.payu.in
        'sucess' => $success,
        'failure' => $fail,
        'cancel' => $cancel,
        'plan_info'=>$id // This value which is passed to confirm page should get back in payment success response 
    );
    $this->load->view('confirmation', $data);

код, записанный в виде файла

<div class="card-body">
                    <form action="<?php echo $action; ?>/_payment" method="post" id="payuForm" name="payuForm">
                        <input type="hidden" name="key" value="<?php echo $mkey; ?>" />
                        <input type="hidden" name="hash" value="<?php echo $hash; ?>"/>
                        <input type="hidden" name="txnid" value="<?php echo $tid; ?>" />
                        <div class="form-group">
                            <label class="control-label">Total Payable Amount</label>
                            <input class="form-control" name="amount" value="<?php echo $amount; ?>"  readonly/>
                        </div>
                        <div class="form-group">
                            <label class="control-label">Your Name</label>
                            <input class="form-control" name="firstname" id="firstname" value="<?php echo $name; ?>" readonly/>
                        </div>
                        <div class="form-group">
                            <label class="control-label">Email</label>
                            <input class="form-control" name="email" id="email" value="<?php echo $mailid; ?>" readonly/>
                        </div>
                        <div class="form-group">
                            <label class="control-label">Phone</label>
                            <input class="form-control" name="phone" value="<?php echo $phoneno; ?>" readonly />
                        </div>
                        <div class="form-group">
                            <label class="control-label"> Booking Info</label>
                                    <input class="form-control" name="productinfo" value="<?php echo $productinfo; ?>" readonly />

                                    <input type="hidden" class="form-control" name="plan_info" value="<?php echo $plan_info; ?>"  />
                        </div>
                        <div class="form-group">
                            <label class="control-label">Address</label>
                            <input class="form-control" name="address1" value="<?php echo $address; ?>" readonly/>     
                        </div>
                        <div class="form-group">
                            <input name="surl" value="<?php echo $sucess; ?>" size="64" type="hidden" />
                            <input name="furl" value="<?php echo $failure; ?>" size="64" type="hidden" />  
                            <!--for test environment comment  service provider   -->
                            <input type="hidden" name="service_provider" value="payu_paisa" size="64" />

                            <input name="curl" value="<?php echo $cancel; ?> " type="hidden" />
                        </div>
                        <div class="form-group float-right">
                            <input type="submit" value="Pay Now" class="btn btn-success" />
                        </div>
                    </form> 
                </div>

Мое требование

1) Как передать значение в udf1 (если я передаю $udf1, тогда я получаю ошибку контрольной суммы).
2) Если переменная $planinfo передана отдельно (не в $udf1), то как получить это значение на странице успеха (я пробовал echo '<pre>'; print_r($_POST); exit();), все значения получаются, кроме значения $plan_info.

Итак, как мне получить информацию о плане и как передать любое значение в uf1, не получая ошибку контрольной суммы

1 Ответ

0 голосов
/ 30 июня 2019
  1. присвойте $ udf1 = $ id перед $ hashstring
  2. Передайте значение $ udf1 в массив $ data, например,

    $ data = array ('udf1' => $ id, ..)

  3. Добавить / передать значение udf1 на странице просмотра.

...