Shop Hosting
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Wer nutzt Ogone? SHA Problem

    NiceGuy_Eddie

    • Neu im Forum
    • Beiträge: 11
    Re: Wer nutzt Ogone? SHA Problem
    Antwort #15 am: 19. April 2013, 11:12:00
    Also wir haben jetzt mal alle Werte alphabetisch sortiert - nach wie vor unknown order/1/s/
    Hab jetzt nochmal Ogone kontaktiert.

    OBC

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: Wer nutzt Ogone? SHA Problem
    Antwort #16 am: 19. April 2013, 15:02:38
    Hi,

    Es ist mit dem Sortieren allein nicht getan. Wie gesagt, es müssen wirklich alle zu übertragenen Parameter für die Generierung der SHA-Checksumme berücksichtigt werden.

    Es muss auf jedenfall 
    Code: PHP  [Auswählen]
    "shasign" => strtoupper( sha1( $sha_signature ) )
    aus $params entfernt werden!


    In dieser ist z.B. das Array $param nicht enthalten.


    Ja, ich wusste es nicht mehr genau.
    Dann musst du dass Array selbst erstellen!

    ...Array $param existierte, jedenfalls enthält dieses Array alle Keys aus dem Array $params. ...

    Lass dir einfach mal das Array $params mittles print_r($params) ausgeben. Dann siehst du welche Keys in das Array $param gehören...
    Diese können je nach Moduleinstellungen variieren...


    Das wäre ja die Datei, die Crush zuvor angehängt hat. ( ogone_xtc_v1.0_2009_11_23)


    Hm, ich habe die Datei direkt von Ogone bekommen. Ich vergleiche mal die Datei von Crush mit meiner.

    MfG

    OBC

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Re: Wer nutzt Ogone? SHA Problem
    Antwort #17 am: 19. April 2013, 16:29:05
    Ich hab grad mal meine Datei mit der von Crush verglichen...

    Ich liste mal die Unterschiede auf und beziehe mich bei Nennung von Zeilennummern auf crush's datei!

    Als erstes in der ogone_cc.php in module/payments

    ca. Zeile 644 über

    Code: PHP  [Auswählen]
    $this->LogOgone( "ogone_cc::_ogonePreparePayment - call URL: ".$ogoneURL );

    ff. Code einfügen:

    Code: PHP  [Auswählen]
    // build transaction url
    $ogoneURL = MODULE_PAYMENT_OGONE_CC_URL;
    $param = array("pspid","orderid","amount","currency","language","cn","email","ownerzip","owneraddress","ownercty","ownertown","accepturl","declineurl","exceptionurl","cancelurl","catalogurl","homeurl","logo","pm","paramplus","paramvar" /*tp, wenn dynamisches template verwendet wird (der Einfachheit halber mit hier rein)*/ /*,"tp"*/);
    $params = array(
                                             "pspid"                                                => MODULE_PAYMENT_OGONE_CC_PSPID,
                                             "orderid"                              => $orders_id,
                                             "amount"                               => $amount,
                                             "currency"                             => urlencode( $_SESSION['currency'] ),
                                             "language"                             => $language,
                                             "cn"                                                   => urlencode( $order->billing['firstname'].' '. $order->billing['lastname'] ),
                                             "email"                                        => $order->customer['email_address'],
                                             "ownerzip"                     => urlencode( $order->billing['postcode'] ),
                                             "owneraddress"                 => urlencode( $order->billing['street_address'] ),
                                             "ownercty"                     => urlencode( $order->billing['country']['iso_code_2'] ),
                                             "ownertown"                    => urlencode( $order->billing['city'] ),
                                             // shasign muss auskommentiert bleiben oder gleich entfernt werden!!!
                                             //"shasign"                    => strtoupper( sha1( $sha_signature ) ),
                                             "accepturl"                    => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.'callback_ogone.php' ),
                                             "declineurl"                   => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.'callback_ogone.php' ),
                                             "exceptionurl"                 => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.'callback_ogone.php' ),
                                             "cancelurl"                    => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.'callback_ogone.php' ),
                                             "catalogurl"                   => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.FILENAME_DEFAULT ),
                                             "homeurl"                                      => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG.FILENAME_DEFAULT ),
                                             "logo"                                                 => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_LOGO ),
                                             "pm"                                                   => urlencode( 'CreditCard' ),
                                             "paramplus"                    => urlencode( session_name().'='.session_id() ),
                                             "paramvar"                             => urlencode( ( ENABLE_SSL=='true' ? HTTPS_SERVER : HTTP_SERVER ).DIR_WS_CATALOG ),
                                             // tp, wenn dynamisches template verwendet wird (der Einfachheit halber mit hier rein)
                                             //"tp"                                                         => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_URL )
                                             );


    if( !(MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_MODE === 'Dynamic Template') ) // use the static ogone template -> modify some styling options
    {
    //                      $ogoneURL .= "&title=".                                                                                 urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TITLE )
    //                                                              .  "&bgcolor=".                                                                         urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BGCOLOR )
    //                                                              .  "&txtcolor=".                                                                        urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_FONT_COLOR )
    //                                                              .  "&tblbgcolor=".                                                              urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TBLBGCOLOR )
    //                                                              .  "&tbltxtcolor=".                                                             urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TBLTXTCOLOR )
    //                                                              .  "&buttonbgcolor=".                                                   urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BUTTONBGCOLOR )
    //                                                              .  "&buttontxtcolor=".                                          urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BUTTONTXTCOLOR )
    //                                                              .  "&fonttype=".                                                                        urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_FONTTYPE );
                                                   
            array_push($param, "title", "bgcolor", "txtcolor", "tblbgcolor", "tbltxtcolor", "buttonbgcolor", "buttontxtcolor", "fonttype");
            array_push($params, array("title"                                                       => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TITLE ),
                                                                                                                    "bgcolor"                                               => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BGCOLOR ),
                                                                                                                    "txtcolor"                                      => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_FONT_COLOR ),
                                                                                                                    "tblbgcolor"                            => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TBLBGCOLOR ),
                                                                                                                    "tbltxtcolor"                           => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_TBLTXTCOLOR ),
                                                                                                                    "buttonbgcolor"                 => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BUTTONBGCOLOR ),
                                                                                                                    "buttontxtcolor"                => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_BUTTONTXTCOLOR ),
                                                                                                                    "fonttype"                                      => urlencode( MODULE_PAYMENT_OGONE_CC_DYNAMIC_TEMPLATE_FONTTYPE )
                                                                                                                    ));
    }

    sort($param);

    $pp     = "";
    $pp1    = "";
    foreach($param as $p){
            if(urldecode($params[$p])!=""){
                    $pp1 .= strtoupper($p).'='.urldecode($params[$p]).''.MODULE_PAYMENT_OGONE_CC_SHA_ADDSTRING;
                    $pp  .= strtoupper($p).'='.$params[$p].'&';
            }
    }

    $shasign = strtoupper( sha1 ( $pp1 ) );
    $ogoneURL = MODULE_PAYMENT_OGONE_CC_URL."?".$pp."SHASIGN=".$shasign;
    //echo "?".$pp."SHASIGN=".$shasign;

     

    Dann ab ca. Zeile 653 die Funktion _checkSHASignature() auskommentieren und mit dieser ersetzen

    Code: PHP  [Auswählen]
    /**
     * Verify feedback response.
     *
     * @return bool
     */

    function _checkSHASignature ( )
    {
      // IHR MÜSST DIESE PARAMETER PRÜFEN, OB BEIM TRANSAKTIONSFEEDBACK ALL DIESE PARAMETER ÜBERGEBEN WERDEN.
      // ZUSÄTZLICHE PARAMETER KÖNNEN JA IM OGONE-BACKEND HINZUGEFÜGT WERDEN
      $shaReqParams = array('ORDERID','CURRENCY','AMOUNT','PM','ACCEPTANCE','STATUS','CARDNO','PAYID','NCERROR','BRAND','IP','BIN','CN','COMPLUS','ECI','ED','SUBBRAND','TRXDATE','BATCHID','VALID','NBREMAILUSAGE','NBRIPUSAGE','NBRIPUSAGE_ALLTX','NBRUSAGE','NCERRORPLUS','NCSTATUS');
      foreach($_REQUEST as $k => $v){
        $kk = strtoupper($k);
        if(in_array($kk,$shaReqParams)){
          $preHash[$kk] = $v.MODULE_PAYMENT_OGONE_CC_SHA_ADDSTRING2;
          $preHash_[] = $kk;
        }
      }
      sort($preHash_);
      $pre_Hash = '';
      foreach($preHash_ as $p){
        $pre_Hash .= $p.'='.$preHash[$p].'';
      }
      $sha_signature = $pre_Hash;
      if ( $_REQUEST['SHASIGN'] != strtoupper( sha1( $sha_signature ) ) )
      {
        $this->LogOgone( "ogone_cc::_checkSHASignature: SECURE KEY INCORRECT !!! Request: ".$_REQUEST['SHASIGN']." Parameter: ".$sha_signature." Signature: ".strtoupper( sha1( $sha_signature )));
        return false;
      }
         
      return true;
    }
     

    Alle anderen Dateien sind identisch...

    MfG, ALex

    NiceGuy_Eddie

    • Neu im Forum
    • Beiträge: 11
    Re: Wer nutzt Ogone? SHA Problem
    Antwort #18 am: 19. April 2013, 20:10:35
    vielen Dank Alex!
    Funktioniert jetzt wieder einwandfrei.

    :thx:
    0 Antworten
    3507 Aufrufe
    23. August 2012, 23:26:02 von dk
    1 Antworten
    2423 Aufrufe
    30. Januar 2014, 08:50:56 von avito
    5 Antworten
    5131 Aufrufe
    06. Januar 2011, 19:21:33 von wbalter
    3 Antworten
    2804 Aufrufe
    17. November 2011, 06:15:12 von Eichenhorn
               
    anything