Удаление сеанса Opencart после публикации в виртуальной почте - PullRequest
0 голосов
/ 09 января 2019

Opencart версии 2.0.3.1. Я создал способ оплаты для получения оплаты от пользователей. Удаление исчезает после отправки данных в банк.

Данные формы, отправленные в банк, ниже

$okUrl and $failUrl=https://www.xxx/online/index.php?route=payment/tumbankalar/bank_response
elseif($this->session->data["BankaPosTipi"] == "3d") 
{

        $okUrl   = $this->config->get('tumbankalar_donusURL');
        $failUrl = $this->config->get('tumbankalar_donusURL');
        $clientId = $this->config->get('tumbankalar_isbankasi_isyerikodu');
        $url = "https://sanalpos.isbank.com.tr/fim/est3Dgate";
        $amount = $toplam_tutar;
        $oid = $order_info['order_id']; 
        $rnd = microtime();    
        $storekey = $this->config->get('tumbankalar_isbankasi_storekey');
        $hashstr = $clientId . $oid . $amount . $okUrl . $failUrl . $rnd  . $storekey;
        $hash = base64_encode(pack('H*',sha1($hashstr)));
        $bolum=1;
        $form = ''; 
        $form .= '<form name="pay_form" id="pay_form" method="post" action="'.$url.'">
                    <input type="hidden" name="pan" value="'.$kart_numarasi.'"/>
                    <input type="hidden" name="cv2" value="'.$kart_guvenlik_kodu.'"/>
                    <input type="hidden" name="Ecom_Payment_Card_ExpDate_Year" value="'.$kart_sonkullanma_tarihi_yil.'"/>
                    <input type="hidden" name="Ecom_Payment_Card_ExpDate_Month" value="'.$kart_sonkullanma_tarihi_ay.'"/>
                    <input type="hidden" name="cardType" value="'.$kart_tipi.'"/>
                    <input type="hidden" name="clientid" value="'.$clientId.'"/>
                    <input type="hidden" name="amount" value="'.$amount.'"/>
                    <input type="hidden" name="BOLUM" value="'.$bolum.'"/>
                    <input type="hidden" name="oid" value="'.$oid.'"/>  
                    <input type="hidden" name="okUrl" value="'.$okUrl.'"/>
                    <input type="hidden" name="failUrl" value="'.$failUrl.'"/>
                    <input type="hidden" name="rnd" value="'.$rnd.'"/>
                    <input type="hidden" name="hash" value="'.$hash.'"/>
                    <input type="hidden" name="storetype" value="3d"/>
                    <input type="hidden" name="lang" value="tr"/>
                    <input type="hidden" name="currency" value="949"/>
                 </form>';
        $form .= '<script type="text/javascript">document.pay_form.submit();</script>';
        echo $form;
        //print_r($this->session->data);

}

Я могу получить доступ ко всем сеансам до отправки формы в банк.

Функция обратного вызова ниже

function bank_response()
{
   print_r($this->session->data);
}

Но после публикации на сайте банка данных о платеже на моем сайте, сеансы удаляются. Сайт не работает из-за этой ошибки.

Данные, отправленные из банка, не совпадают с данными заказа на сайте.

Я возвращаюсь на сайт, потому что сеансы удалены.

Я могу получить доступ к сеансам, когда пытаюсь оплатить это время.

Я потратил много времени, чтобы решить проблему, но я не мог ее решить.

Пожалуйста, помогите мне.

Спасибо!

1 Ответ

0 голосов
/ 09 января 2019

найдите в своем модуле в public function index() часть этой строки $data['continue'] = $this->url->link('checkout/success', '', 'SSL'); или аналогичную, содержащую url->link('checkout/success' (после успешного удаления этой сессии) и переместите ее в

function bank_response()
{
   print_r($this->session->data);
}

Таким образом, это будет выполнено после получения ответа от банка. Я не уверен, потому что здесь только часть вашего кода, но это может вызвать вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...