---
title: "Scriptproblem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/108306-scriptproblem"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "kbking"
published: "2004-08-01T08:53:42.000Z"
updated: "2004-08-03T09:55:23.000Z"
replies: 7
views: 445
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/108306-scriptproblem"
---

# Scriptproblem

## #1 — kbking, 2004-08-01T08:53Z

Hej!

Jag sitter och testar ett shoppingcart script, som kallas [NopCart](http://www.nopdesign.com/freecart/nopcart.zip)  och som verkar mycket flexibelt. Just nu har jag lagt till  betalväxeln PayPal.

Eftersom PayPal inte erbjuder svenska kronor, som valuta hade jag tänkt använda EURO.  Det jag gått bet på är att i scriptet - på rätt sätt - multiplicera med faktorn 0.10890000 för att få priset i EURO på PayPal-sidan. Jag får då felmeddelandet: "The link you have used to enter the PayPal system contains an incorrectly formatted item amount."

Den del av scriptet som för över värdena till PayPal är:

```
if ( PaymentProcessor == 'pp' ) { 
//Process hidden values for PayPal. 
strOutput += "<input type=hidden name=\"item_number_"+ strFooter + "\" value=\"" + fields[0] + "\">"; 
strOutput += "<input type=hidden name=\"quantity_" + strFooter + "\" value=\"" + fields[1] + "\">"; 
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + fields[2] + "\">"; 
strOutput += "<input type=hidden name=\"item_name_" + strFooter + "\" value=\"" + fields[3] + "\">"; 
if (i == iNumberOrdered) { 
strOutput += "<input type=hidden name=\"shipping_" + strFooter + "\" value=\"" + strShipping + "\">"; 
} else { 
strOutput += "<input type=hidden name=\"shipping_" + strFooter + "\" value=\"0.00\">"; 
} 
strOutput += "<input type=hidden name=\"on0_" + strFooter + "\" value=\"" + fields[5] + "\">"; 
}
```

och raden det gäller är:

 

```
 strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + fields[2] + "\">";
```

där fields\[2\] definieras:

```
fields[2] = database.substring( Token1+1, Token2 );          // Price

fields[2] == strPRICE
```

och Token0 och Token1 och Token2:

```
Token0 = database.indexOf("|", 0);
```

```
Token1 = database.indexOf("|", Token0+1);
```

```
Token2 = database.indexOf("|", Token1+1);
```

Min fråga är alltså hur jag ska skriva in faktorn 0.10890000 i scriptet.

Permalänk: https://www.webforum.nu/p/108306

## #2 — kbking, 2004-08-01T11:06Z

Det är väl en omöjlig fråga att besvara med kodsnuttar ryckta ur sitt sammanhang så här.

Scriptet i sin helhet kan nås via länken överst på sidan. Det översta kodsjoket här skall sedan in på rad 800 i scriptet.

Permalänk: https://www.webforum.nu/p/1399970

## #3 — Jojoxx, 2004-08-01T16:13Z

```
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + (parseFloat(fields[2])*0.1089) + "\">";
```

Förutsatt att resten av koden är korrekt.

Permalänk: https://www.webforum.nu/p/1400046

## #4 — kbking, 2004-08-01T17:40Z

Av allt att döma så är koden korrekt; alla uppgifter, som jag vill ha skickade till PayPal kommer också fram. Kruxet är att det är det svenska beloppet. Det är därför jag skulle vilja få in den här omräkningsfaktorn.

Med ditt förslag visar PayPal inget felmeddelande, utan istället en "steril" sida/kundvagn med texten: "Your shopping cart is empty."

Hmm...Jag kopierade och klistrade och kanske var det dumt att göra det. Så nu ersatte jag endast fields\[2\] med (parseFloat(fields\[2\])\*0.1089) och lät bli övrig fungerande kod. Det gjorde att jag nu får jag samma felmeddelande som förut: "The link you have used to enter the PayPal system contains an incorrectly formatted item amount."

Permalänk: https://www.webforum.nu/p/1400068

## #5 — Jojoxx, 2004-08-01T18:55Z

Det som kan vara fel i själva uträkningen är att det blir ett långt decimaltal som summa, vi kan avrunda det så här;

```
strOutput += "<input type=hidden name=\"amount_" + strFooter + "\" value=\"" + parseInt(parseFloat(fields[2])*0.1089+0.5) + "\">";
```

Fungerar det utan omräkningen borde det fungera så här. I annat fall skulle jag tippa på att det är fältnamnen som inte är korrekt. Det lilla jag använt PayPal har jag använt fältnamnet "amount" för summa och inte som i detta fall "amount\_..." (vad nu strFooter innehåller).

Permalänk: https://www.webforum.nu/p/1400117

## #6 — kbking, 2004-08-01T19:20Z

Det var Lösningen! :)

Skäms nästan att fråga, men blir det bästa avrundning med 0,5?

Vet du om det finns svenska betalväxlar, som jag kan utnyttja på liknande vis? Gratis eller inte spelar inte så stor roll, bara de är bra och har stort förtroende bland folk.

Permalänk: https://www.webforum.nu/p/1400129

## #7 — Jojoxx, 2004-08-03T09:46Z

parseInt huggar bara heltalsdelen av uttrycket. (parseInt(0.8) ger alltså 0 och inte 1, samma som Math.floor) Därför kompenserade jag med 0,5.

<http://www.wallit.se> är en svensk betalväxel som jag haft kontakt med. De fungerade bra och är enkla att ha att göra med.

Permalänk: https://www.webforum.nu/p/1400898

## #8 — kbking, 2004-08-03T09:55Z

Tack för svaret!

Då går jag in på deras sida och tar en närmare titt. :)

Permalänk: https://www.webforum.nu/p/1400902

---

Tråden på webben: https://www.webforum.nu/amne/javascript/108306-scriptproblem
