Prestashop: переход с SHA1 на SHA2 - PullRequest
0 голосов
/ 19 июня 2019

Мне нужно обновить систему безопасности POS-модуля в Prestashop, и теперь я столкнулся с проблемой: при получении подписи платежа возникает ошибка.

Старый код :

  static public function getFirma($orderId, $importe, $tipoMondea, $exponente, $urlOK, $urlNOK ) {
        //Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+Tipo Moneda+Exponente+'SHA1'+URL_OK+URL_NOK

        $cryptKey = self::getCryptKey();
        $merchantId = Configuration::get('CECA_MERCHANT_ID');
        $acquirerBIN = Configuration::get('CECA_ACQUIRER_BIN');
        $terminalId = Configuration::get('CECA_TERMINAL_ID');

        return sha1($cryptKey.$merchantId.$acquirerBIN.$terminalId.$orderId.$importe.$tipoMondea.$exponente.'SHA1'.$urlOK.$urlNOK);
    }

    static public function getFirmaIPN($orderId, $importe, $tipoMondea, $exponente, $referencia ) {
        //Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+TipoMoneda+Exponente+Referencia

        $cryptKey = self::getCryptKey();
        $merchantId = Configuration::get('CECA_MERCHANT_ID');
        $acquirerBIN = Configuration::get('CECA_ACQUIRER_BIN');
        $terminalId = Configuration::get('CECA_TERMINAL_ID');

        return sha1($cryptKey.$merchantId.$acquirerBIN.$terminalId.$orderId.$importe.$tipoMondea.$exponente.$referencia);
    }

Я пробовал это:

static public function getFirma($orderId, $importe, $tipoMondea, $exponente, $urlOK, $urlNOK ) {
        //Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+Tipo Moneda+Exponente+'SHA2'+URL_OK+URL_NOK

        $cryptKey = self::getCryptKey();
        $merchantId = Configuration::get('CECA_MERCHANT_ID');
        $acquirerBIN = Configuration::get('CECA_ACQUIRER_BIN');
        $terminalId = Configuration::get('CECA_TERMINAL_ID');

        return hash('sha2', $cryptKey.$merchantId.$acquirerBIN.$terminalId.$orderId.$importe.$tipoMondea.$exponente.'SHA2'.$urlOK.$urlNOK);
    }

    static public function getFirmaIPN($orderId, $importe, $tipoMondea, $exponente, $referencia ) {
        //Clave_encriptacion+MerchantID+AcquirerBIN+TerminalID+Num_operacion+Importe+TipoMoneda+Exponente+Referencia

        $cryptKey = self::getCryptKey();
        $merchantId = Configuration::get('CECA_MERCHANT_ID');
        $acquirerBIN = Configuration::get('CECA_ACQUIRER_BIN');
        $terminalId = Configuration::get('CECA_TERMINAL_ID');

        return hash('sha2', $cryptKey.$merchantId.$acquirerBIN.$terminalId.$orderId.$importe.$tipoMondea.$exponente.$referencia);
    }

но я получил ошибку при пропущенных параметрах. missing parameters

Помощь будет высоко ценится.

...