[PRICE]
Autor: MP MEDICAL PARTNER
Visited 1487,
Followers 2,
Udostępniony 0
Hallo
Ich hoffe Es kann mir jemand helefen. Das online Payment-System unserer Bank benötigt den Betrag als ganzes Zahl (ohne Dezimalstelle).
Einen Betrag von z.B. € 18.50 muss als 1850 übermittelt werden.
Das System generiert unter [PRICE] leider diesen Betrag 1825.000
Hat jemand eine Ahnung wie ich dies korrigieren kann?
Vielen Dank!
Posted on the
Können Sie den für ihre Bank eingefügten Code aufzeigen?
Das gleiche muss bei der Übernahme für Postfinance gelöst werden, hier wird in dem Sourcecode, der in WebsiteX5 eingebunden wird die Umrechnung vorgenommen.
Hier ein Auszug aus dem script:
<script type="text/javascript">
function createTarget(t) {
var orderamt = "[PRICE]"; var ordernr = "[ORDER_NO]"; var txtShopID = " identifiantshop "; var txtArtCurrency = "CHF"; var txtLang = "de_DE"; var hashSeed = "HashSeed"; var orderamthcnd = Math.floor(orderamt*100); var txtToHash = ordernr + orderamthcnd + txtArtCurrency + txtShopID + hashSeed; var txtHash = Crypto.SHA1(txtToHash);
document.getElementsByName("orderID")[0].value = ""+ordernr; document.getElementsByName("amount")[0].value = ""+orderamthcnd; document.getElementsByName("SHASign")[0].value = txtHash; window.open("", t, "width=800,height=550,scrollbars,resizable,status"); return true; }
</script>
In den fett dargestellten Variablen Zuweisungen wird für Postfinance der Wert zugewiesen und dann mit 100 multipliziert, mit math.floor die Nachkommastellen entfernt, dies nebst anderen Funktionen im Script.
Die entsprechenden Source-Code sollten von ihrer Bank zur Verfügung stehen oder müssten sonst von einem Programmierer erstellt werden.
Warum für 18.50 = 1825.000 werden ist mir unklar, haben Sie bereits ein Script eingebunden, welches diese Berechnung so vornimmt?
Gruss JJ
Autor
Hallo Vielen Dank für die Antwort!
Das hier ist der Code:
<FORMNAME="uppform" ACTION="https://pilot.datatrans.biz/upp/jsp/upStart.jsp" METHOD="post">
<INPUT TYPE=HIDDEN NAME="language" VALUE="de">
<B>Starting UPP in standard mode</B><BR>(this page simulates merchant's checkout page)
<TABLE>
<TR><TD COLSPAN=3> </TD></TR>
<TR>
<TD ALIGN=LEFT nowrap>Merchant Id : </TD>
<TD WIDTH=10> </TD>
<TD ALIGN=LEFT nowrap>
<INPUT TYPE=TEXT SIZE=20 NAME="merchantId" value="1100003435">
</TD>
</TR>
<TR>
<TD ALIGN=LEFT nowrap>Amount : </TD>
<TD WIDTH=10> </TD>
<TD ALIGN=LEFT nowrap>
<INPUT TYPE=TEXT SIZE=20 NAME="amount" value="[PRICE]"> (= 10.00)
</TD>
</TR>
<TR>
<TD ALIGN=LEFT nowrap>Currency : </TD>
<TD WIDTH=10> </TD>
<TD ALIGN=LEFT nowrap>
<INPUT TYPE=TEXT SIZE=20 NAME="currency" value="CHF">
</TD>
</TR>
<TR>
<TD ALIGN=LEFT nowrap>Transaction ID : </TD>
<TD WIDTH=10> </TD>
<TD ALIGN=LEFT nowrap>
<INPUT TYPE=TEXT SIZE=20 NAME="refno" value="[ORDER_NO]"> (reference number)
</TD>
</TR>
<TR><TD COLSPAN=3> </TD></TR>
<TR>
<TD> </TD>
<TD> </TD>
<TD ALIGN=LEFT><INPUT TYPE=SUBMIT VALUE="Zur Kasse..."></TD>
</TR>
</TABLE>
</FORM>
Vielen Dank für die Hilfe!
Haben Sie ihre Bank schon mal angefragt, ob das Script (oder die Lösung)für die Umrechnung vorhanden ist.
Für die Zuweisung von [PRICE] an "amount" braucht es noch eine Umrechnung mit Multiplikation 100 und Umwandlung in Ganzzahl (in [removed] amount = Math.floor(amount*100); dies nach Zuweisung var amount = "[PRICE]" ).
Obwohl im Beispiel von Postfinance alles vorhanden ist dafür, reicht mein Wissen nicht aus, um dies in Ihrem Code einzufügen. Ich müsste den Weg von Versuchen und Irrrtum gehen.
Wenn die Techniker ihrer Bank nicht helfen, vielleicht finden Sie hier jemanden der damit mehr Erfahrung hat ?
Gruss JJ
sorry, das ich an die Grenzen meiner Möglichkeiten stosse.
Zum Schutz vor Schadcode ändert dern Editor Worte, wo [removed] steht war JAVA und SCRIPT als ein Wort.
gruss JJ
Autor
Trotzdem herzlichen Dank für Ihre Mühe!
Guten Tag,
Bitte versuchen Sie [PRICE] mit [PRICE, 100, ####] in Ihren Code im Programm auszutauschen damit die Summe Ohne Dezimalstellen erscheinen wird.
Bitte lassen Sie mir wissen ob es funktioniert.
Autor
Ja es hat funktioniert!!!
Vielen Herzlichen Dank Claudio!