Zum Inhalt springen

Übergabe der Werte aus Shoppingbasket via handleScript klappt nicht.

Erstellt am 21. Juni 2005 · 3 Antworten · letzte Antwort am 17. April 2007

Tags: Frage

pagemachine ·

hallo leute,
möchte für die bezahlung paypal und creditcard verwenden. um die daten zu übertragen möchte ich ein handleScript einsetzten, das die entsprechenden daten mit der url überträgt.
leider werden die werte wie z.b gesamtpreis nicht an das script übergeben.

plugin.tt_products {
   shipping >
   shipping {
      radio = 1
      TAXpercentage = 16
      10.title = Germany
      10.priceTax = 4.90
      20.title = Europe (ex.Germany)
      20.priceTax =  14.90
   }
   payment >
   payment {
      radio = 1
      TAXpercentage = 16
      #10.title = cash on delivery
      #10.priceTax = 2.50
      15.title = PayPal
      15.image.file = fileadmin/images/paypal.gif
      15.image.params = align=right
      15.priceTax = 1.00

      20.title = Creditcard
      20.priceTax = 4.00
      20.handleScript = fileadmin/templates/cash_cc.php
      20.handleScript {
 
   }
  PIDinfo = 49
  PIDbasket = 28

in der datei cash_cc werden die daten gesammelt und an die entsprechende url weiter gesendet. die weiterleitung an die angegebene url funktioniert auch, jedoch werden keine werte übertragen.

<?php
 
 //der versuch einige werte zu übernehmen.
 $baseAmount = $this->calculatedSums_tax["goodstotal"]+$this->calculatedSums_tax["shipping"];
 $preis = $this->$calculatedBasketItem["totalTax"];
 $preis2 = $this->$calculatedSums_tax["total"];
 $preis3 = $this->$orderData["calculatedSum_tax"]["total"];
 $preis4 = $this->$calculatedBasketItem["totalTax"];
 $preis5 = $this->$calculatedSums_tax;

   
    $weiterleitung = "http://www.url.de?preis=";
	$weiterleitung .= $preis;
	$weiterleitung .= $preis2;
	$weiterleitung .= $preis3;
	$weiterleitung .= $preis4;
	$weiterleitung .= $preis5;
	$weiterleitung .= $preis6;
	$weiterleitung .= $preis7;
	
	$weiterleitung .= $baseAmount;
	header("Location: $weiterleitung");
?>

hat jemand einen tipp?

Flink ·

Das Problem mit dem Handle-Script ist, daß es als Alternative zur Funktion 'getBasket' aufgerufen wird, die die oben beschriebenen globalen Variablen ausfüllt. Daher stehen diese in der Handle-Funktion nicht zur Verfügung.

Es wäre zwar sinnvoll, daß das Handle-Skript erst nach dem getBasket aufgerufen wird. Soweit ich in der OS-Commerce Mailingliste gelesen habe, arbeitet Robert Lemke an einer Lösung zu Zahlungsmethoden für TYPO3.

Im Moment muß man im Handle-Script den gesamten Code aus 'getBasket' hineinkopieren und dort anpassen oder getBasket darin aufrufen.

Das habe ich alles dem Code entnommen.

case "products_finalize":

if ($this->checkRequired())	{
$this->load_noLinkExtCobj();			$this->mapPersonIntoToDelivery();
$handleScript = $TSFE->tmpl->getFileName($this->basketExtra["payment."]["handleScript"]);
if ($handleScript)	{
	$content = $this->includeHandleScript($handleScript,$this->basketExtra["payment."]["handleScript."]);
	} else {
	$orderUid = $this->getBlankOrderUid();
	$content=$this->getBasket("###BASKET_ORDERCONFIRMATION_TEMPLATE###");
	$content.=$this->finalizeOrder($orderUid);	// Important: 	MUST come after the call of prodObj->getBasket, because this function, getBasket, calculates the order! And that information is used in the finalize-function
	}
pagemachine ·

hallo flink,
danke für die info.
habe heute den ganzen tag "rumgewerkelt" und durch zufall eine lösung gefunden.
aus der beispieldatei:

payment_DIBS.php

habe ich noch folgende zeile in die o.g. php-datei eingefügt:

$content=$this->getBasket($tSubpart,$localTemplateCode);		// This not only gets the output but also calculates the basket total, so it's NECESSARY!

eingefügt. dann bekome ich die werte, die ich benötige und kann sie als url an das zahlsystem übergeben (in dem fall ecs-solutions). nach der zahlung kommt der user auf eine separate FINALIZE-seite zurück.

jetzt werde ich es aber erst mal weiter ausgiebig testen.

gruß
miklos

Obstel ·

ok, hab ein kleines problem, das script hier ist zwar 2 jahre alt, aber ich hab ein ähnliches Problem.

Wie bekomme ich die Tracking OrderID von tt_products in mein handlescript ?