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: Payone Rechungskauf -> add_paydata[clearing_reference] bei Bestellung abgreifen.

    Nice_Stuff

    • Frisch an Board
    • Beiträge: 70
    • Geschlecht:
    Hallo Forum.

    Bei Bestellung auf Rechung wird eine add_paydata[clearing_reference] erzeugt und in den Payone Api Log geschrieben.

    Mir ist noch nicht ganz schlüssig wo diese Transaktionsnummer erzeugt wird. Möglicherweise in der PayonePayment.php unter:

    Code: PHP  [Auswählen]
    function _request_parameters($clearingtype) {
              global $order, $insert_id;

                    $request_parameters = array(
                            'aid' => $this->global_config['subaccount_id'],
                            'key' => $this->global_config['key'],
                            'clearingtype' => $clearingtype,
                            'reference' => $insert_id,
                            'amount' => round(((isset($order->info['pp_total'])) ? $order->info['pp_total'] : $order->info['total']), 2),
                            'currency' => $order->info['currency'],
                            'personal_data' => $this->personal_data,
                            'delivery_data' => $this->delivery_data,
                            'payment' => $this->payment_method,
                    );
       
        if ($this->global_config['send_cart'] == 'true') {
          $request_parameters['invoicing'] = $this->_getInvoicingTransaction($insert_id);
        }
     

    Meine Frage dazu ist aber, ob und wo dieses Array abgegriffen werden kann.

    Evtl. in der checkout_success.php ?!

    Hat jemand damit schon zu tun gehabt und kann mir weiterhelfen?

    Ich mögchte die Transaktionsnummer gerne in das comments feld integrieren.

    Danke für eure Unterstützung.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=37418.0

    Nice_Stuff

    • Frisch an Board
    • Beiträge: 70
    • Geschlecht:
    Ok, hat sich erledigt. Ich habe die add_paydata[clearing_reference] in der checkout_success.php erzeugt und weiterverarbeit. In der checkout_process.php war es nicht möglich, da der Wert noch nicht in der payone_api_log geschrieben war.

    Für interessierte:

    checkout_process.php
    Code: PHP  [Auswählen]
    $_SESSION['insert_id_clearing']= $insert_id;   
    $_SESSION['customer_id_clearing']= $_SESSION['customer_id'];
     

    checkout_success.php
    Code: PHP  [Auswählen]
    $cr_query = xtc_db_query("SELECT message FROM payone_api_log WHERE customers_id='".(int)$_SESSION['customer_id_clearing']."' AND log_count = '2' ORDER BY p1_api_log_id DESC LIMIT 1");
    if (xtc_db_num_rows($cr_query) > 0) {
            $cr_values = xtc_db_fetch_array($cr_query);            
            $string = implode('|',array_unique(explode('|', $cr_values['message'])));
            $parts  = explode('|', $string);       
            foreach($parts as $part) {
                    list($name, $value) = explode('=', $part);
                    $data[] = array($name => $value);                      
            }      
            foreach($data as $value) {                     
                    if(isset($value['add_paydata[clearing_reference]'])) { $clearing_reference = $value['add_paydata[clearing_reference]']; }
            }      
            if($clearing_reference) {
                    $comments_query = xtc_db_query("SELECT comments FROM " . TABLE_ORDERS . " WHERE orders_id='".(int)$_SESSION['insert_id_clearing']."'");
                    $comments_value = xtc_db_fetch_array($comments_query);
                   
                    if(!empty($comments_value['comments'])) {              
                    $comments = $clearing_reference." // ".$comments_value['comments'];
                    }
                    else {
                            $comments = $clearing_reference;
                    }
                    xtc_db_query("UPDATE ".TABLE_ORDERS."
                                             SET comments='"
    .$comments."'
                                       WHERE orders_id='"
    .(int)$_SESSION['insert_id_clearing']."'");
            }
    }

    unset ($_SESSION['insert_id_clearing']);
    unset ($_SESSION['customer_id_clearing']);

     
    2 Antworten
    3751 Aufrufe
    09. März 2010, 18:03:35 von Maria87
    10 Antworten
    12553 Aufrufe
    10. September 2009, 15:11:40 von ds170477
    0 Antworten
    1314 Aufrufe
    16. März 2017, 15:17:02 von fishnet
    5 Antworten
    4879 Aufrufe
    16. September 2015, 09:14:12 von Andy Steinhauf