Input Textfeld wo richtig setzten!!

aherzog

Erfahrenes Mitglied
Hallo Tutorials-Gemeinde

Die schweizer Post bringt mich bald ins Irrenhaus..echt....

Ich erstelle für eine schweizer Behindertenschule einen kleinen Bereich ein in dem der Gast auf einer Spendenseite in einem Textfeld einen Betrag (Spende) eingeben kann und danach öffnet sich die Seite der schweizerischen Post (genau Postfinance.ch).
Dabei werden weitere Daten übermittelt, wie z. B. erkennung über welchen Kunden es sich handelt, einen über md5-kodierten Code, Betrag, Sprache des Shops und die Währung.
Auf der sich öffnenden Postfinance-Seite können dann die Sicherheitsmerkmale eingegeben werden, um mit der PostCard bezahlen zu können

Ich bin momentan auf einem Testsystem der Postfinace, wo ich ausführlich testen kann, ob die übermittelten Daten auch richtig ankommen.

Dazu habe ich nun einen Test geschrieben:
PHP:
<form name="yellowpay_rafaelschule" action="https://yellowpaytest.postfinance.ch/checkout/Yellowpay.aspx?userctrl=Invisible" method="POST">
<?php
	$shopId ="xxxx";
	$hashSeed ="xxxxxxxxxxxxxxxxxx";
	$txtOrderTotal="200.00";
	$txtUsePopup="false";
	$txtUseWindow="true"; 
	$txtShopID="xxxxxxxxx";
	$txtLangVersion="xxxxx";            
	$txtArtCurrency="CHF";
	$txtHash = md5($txtShopID.$txtArtCurrency.$txtOrderTotal.$hashSeed);
?>
<input type="hidden" name="txtShopID"      value="<?=$txtShopID;?>">
<input type="hidden" name="txtOrderTotal"  value="<?=$txtOrderTotal;?>">
<input type="hidden" name="txtLangVersion" value="<?=$txtLangVersion;?>">
<input type="hidden" name="txtArtCurrency" value="<?=$txtArtCurrency;?>">
<input type="hidden" name="txtUsePopup"    value="<?=$txtUsePopup;?>">
<input type="hidden" name="txtUseWindow"   value="<?=$txtUseWindow;?>">
<input type="hidden" name="txtHash"        value="<?=$txtHash;?>">
<input type="submit" name="spenden"         value="Spenden">
</form>

Dieser Test verläuft positiv
Die 200.- werden richtig erkannt und dem richtigen Konto verbucht...
Soweit so gut..

Der Clue an der Sache ist der, das jedesmal wenn ich ein Textfeld integriere (das obige Script hat ja noch keines) bekomme ich Fehlermeldungen.
ich definiere das Textfeld folgendermassen.

<input type="text" name="txtOrderTotal" value="<?=$txtOrderTotal;?>">

Und hier beginnt mein Problem...
Es kommt immer folgende Fehlermeldung...

Notice: Undefined variable: txtOrderTotal in /public_html/9_spenden.php on line 56

in Linie 56 steht eben dieses Textfeld.
Ok. sollte ja auch kein Poblem sein.
Ich versuchte alle Inputfelder in das Formular einzufügen und nur dann ausführen lassen wenn der submit-Button gedrückt wurde.. ( if(isset.......)

Nun ist die Fehlermeldung weg. Das Script funktioniert auch... ABER...die Daten kommen nicht am Shop an...
Er bringt mir eine Fehlermeldung....

Ich habe mich schon zix Stunden mit diesem Problem beschäftigt, und auch xxx Mails mit der Postfinance ausgetauscht, doch die Antworten sind immer wieder die gleichen und helfen gar nichts..:mad:
Entweder haben die keine Ahnung, oder sie wollen nicht Helfen...Weiss der Geier....
Als ich Sie nach mehr als einem Monat eMailverkehr nach einem Beispielcode fragte haben Sie mir genau den oben geposteten übermittelt.. :confused::confused::confused:

Nun wende ich mich an euch, den woll richtigen Profis.. :)
habt Ihr eine Idee wie ich das sehr leidige Problem lössen kann?

Vielen Dank für eure Ratschläge und Hilfen..

Es grüssst.
Andreas
 
Gruezi :)
Nun ist die Fehlermeldung weg. Das Script funktioniert auch... ABER...die Daten kommen nicht am Shop an...
Er bringt mir eine Fehlermeldung....

Was ist denn das für eine Fehlermeldung?
Ist denn die Seite, auf welcher sich dein Formular befindet, auch verschlüsselt, wie die Zielseite? (https://yellowpaytest.postfinance.ch....)
 
Seit wann ist PHP Typsicher? Oo
Ich habs auf meinem lokalen Rechner versucht, und bekomme bei der Bank "Feld txtLangVersion" ist ungültig!". Liegt aber wohl an den "xxxxx".
Seltsam ist irgendwie auch das mit dem =, sowas habe ich noch nie gesehen.
Und der Input muss natürlich zwischen (bzw. am Anfang oder Ende) der hiddens stehen.
Scheint aber alles in allem ein Problem der Bank zu sein.

Ich würde sagen: drauf und steig auf PayPal um, da hat man solche Probleme nicht und kann von überall aus spenden.
 
Was meinst du überhaupt mit "Textfeld"...ich sehe dort keine? :-(

Falls du meinst, du möchtest gerne Textfelder verwenden, wo der User halt die Summe etc. eingibt, und dann direkt an die Bank senden, das geht so wahrscheinlich nicht, nehme ich an, denn du benötigst dort den txtHash, und diesen kannst du erst nach der Eingabe der Daten erzeugen, da dort auch die Summe hinein muss.

Du könntest den hash zwar auch mit JS berechnen vor dem Senden, aber dann können ja User ohne JS an nicht Spenden...deswegen würde ich eher noch eine Stufe zwischenschalten, die den Hash mit PHP erzeugt, ca. so:
PHP:
<?php
    $shopId ="xxxx";
    $hashSeed ="xxxxxxxxxxxxxxxxxx";
    $txtUsePopup="false";
    $txtUseWindow="true"; 
    $txtShopID="xxxxxxxxx";
    $txtLangVersion="xxxxx";            
    $txtArtCurrency="CHF";
    
    
    if(!isset($_POST['txtOrderTotal']) || !is_numeric($_POST['txtOrderTotal']) || $_POST['txtOrderTotal']<=0)
      {
        $txtOrderTotal='';
        $formAction='';
        $inputType='text';
        $buttonText='Weiter';
      }
    else
      {
        
        $txtOrderTotal=number_format(trim($_POST['txtOrderTotal']),2,'.','');
        $formAction='https://yellowpaytest.postfinance.ch/checkout/Yellowpay.aspx?userctrl=Invisible';
        $inputType='hidden';
        $buttonText=$txtArtCurrency.' '.$txtOrderTotal.' jetzt Spenden';
      }
    
    $txtHash = md5($txtShopID.$txtArtCurrency.$txtOrderTotal.$hashSeed);
      
    
?>
<form name="yellowpay_rafaelschule" action="<?=$formAction;?>" method="POST">
<input type="hidden"            name="txtShopID"      value="<?=$txtShopID;?>">
<input type="<?=$inputType;?>"  name="txtOrderTotal"  value="<?=$txtOrderTotal;?>">
<input type="hidden"            name="txtLangVersion" value="<?=$txtLangVersion;?>">
<input type="hidden"            name="txtArtCurrency" value="<?=$txtArtCurrency;?>">
<input type="hidden"            name="txtUsePopup"    value="<?=$txtUsePopup;?>">
<input type="hidden"            name="txtUseWindow"   value="<?=$txtUseWindow;?>">
<input type="hidden"            name="txtHash"        value="<?=$txtHash;?>">
<input type="submit"            name="spenden"        value="<?=$buttonText;?>">
</form>
 
Halo miteinander..

wow....da ist ja was gegangen...:):):)


@Sven Mintel...
zuerst mal vielen Dank für dein Scriptbeispiel...
Habs noch nicht genau angeschaut...werde es aber noch heute ausprobieren und dir sicher noch bescheid geben..
Zu deiner Frage: Nein die Spendenseite ist nicht verschlüsselt.
Ist eine ganz normale http-Seite. Laut Postfinance soll das auch nicht nötig sein.
Zum Texfeld. Ja im obigen Script ist kein Textfeld eingebettet.
Deshalb funktioniert es auch :suspekt:
Das war dann ja auch meine Frage wie und wo soll ich es einbauen, damit es richtig läuft.

Jedesmal wenn ich eins einbaue geht nix mehr..
Egal wie ichs mache..einfach nichts.
Dabei geht zwar das Fenster von Yellowpay auf, doch im Fenster ist kein Betrag keine Shop-ID und auch keine Währung vorhanden..
Dann kommt natürlich eine Fehlermeldung "txthash" fehlerhaft..


@Kai008
Das dein Versuch gescheitert ist, liegt genau an den xxxx-en..Du verstehst sicher das ich diese Zugangsdaten hier nicht öffentlich posten kann. Da hätte ich schnell ein Riesenproblem mit dem Schulleiter. Das mit dem <?= habe auch ich noch nie gesehen. erstaunlicherweise funktioniert es..Scheint deshalb woll eine gültige Schreibweise zu sein.
Was PayPal betrifft, so ist der Schulleiter ev. kein Fan davon. Wüsste es erlich gesagt nicht einmal. Aber in der Schweiz ist die Postcard sehr gut vertretten und deshalb diese Möglichkeit anzubieten, ist absolut eine gute Idee..

Dies mal zum ersten.
Ich mache jetzt noch ne kurze Pause, und werde mich dann an das Script wagen ;-):rolleyes:
Melde mich dann sofort wieder mit ersten Ergebnissen..

Gruss aus der Schweiz.
Andreas
 
Hallo

das Script t.....cooooooooolll

Irgendwie freu ich mich wie verrückt, und auf der anderen Seite bin ich sehr entäuscht von der schweizer Post, das die mir nicht geholfen haben. Aber was solls....hauptsache jetzt ist entlich Schluss damit...

Viele Grüsse vom Schulleiter und von mir.
2x Danke

Gruss Andreas und Schulleiter
 
Zurück