---
title: "Betaltjänsten Samport"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/155670-betaltjänsten-samport"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Ann-Sofie"
published: "2007-01-07T22:13:10.000Z"
updated: "2007-01-25T13:30:05.000Z"
replies: 26
views: 1512
page: 1
pages: 2
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/php/155670-betaltjänsten-samport"
---

# Betaltjänsten Samport

_Sida 1 av 2._

## #1 — Ann-Sofie, 2007-01-07T22:13Z

Jag ska implementera en betaltjänst åt en kund som valt Samport. Jag har fått ok hjälp från supporten men nu har jag kört fast på en ganska väsentlig del, nämligen hur jag får över produkterna till php-filen där hela ordern räknas samman....

1\. Det finns en html fil där besökare fyller i sina personuppgifter samt kryssar i vad han/hon beställer. T.ex. ett medlemskap i en månad för 200kr.

2\. Via en php-fil skickas kunden till Samports betal-sida där uppgifterna kunden fyllde i html-filen syns. Jag har lyckats med medlemsnummer, namn, adress o.s.v. men inte med i det här fallet medlemskapet.

Nån som gjort detta och som hajar vad jag pratar om?

All annan info som jag fört över har jag använt:

```php
$Name = $_GET["realname"];
```

 

När det gäller produkterna har jag i html-filen ett formulär där man väljer med radioknappar. I php-filen har jag gjort som ovan med Name men även enligt Samports instruktioner:

"Sedan ser du till att "produkterna" ser ut enligt följande:
Artikelnr:Description:Quantity:Price;
1:Middag:1:250;
Om man har flera produkter separeras dessa med kommatecken.

Nu har min kund inte så många produkter (tjänster) men om man har en webbshop med flera hundra produkter kan väl inte meningen vara att man ska fylla i alla? Dessutom funkar det inte när jag gör det eftersom alla produkter visas hela tiden.... Det registreras inte att jag väljer en produkt.

Så här har jag gjort i min php-fil och det är här jag förstår att det är något fel:

```php
$Data = "1:Medlemsavg. 2 mån för 1:1:20000,2:Medlemsavgift 1 mån:1:20000,3:Medlemsavgift 3 mån:1:45000,4:Middag singlar:1:35000,5:Middag vänner:1:35000,6:Aktivitet singelföräldrar:1:30000,7:Annan aktivitet:1:40000";
```

 

Jag blir snart galen... hoppas verkligen någon här på forumet har klurat ut hur man gör detta.... Det enda jag ska få att fungera nu är att när kunden gör ett val i formuläret så ska det valet registreras som en order i orderlistan.

Trött och konfys.

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

## #2 — tydal, 2007-01-07T22:45Z

Artikelnr:Description:Quantity:Price låter ju som att det är ordern de vill ha, inte hela listan med alla produkter.

Normalt har man ju en databas, men eftersom det i ditt fall inte är så många produkter kan du ju lägga dem i arrayer i php-koden:

$description\[1\] = "Medlemsavg. 2 mån för 1";
$description\[2\] = "Medlemsavgift 1 mån";
$description\[3\] = "Medlemsavgift 3 mån";
osv...

$price\[1\] = 20000;
$price\[2\] = 20000;
$price\[3\] = 45000;
osv...

I html-koden har du då:

2 månader för 1 månad: \<input type="radio" name="artikelnr" value="1"\>
1 månad: \<input type="radio" name="artikelnr" value="2"\>
3 månader: \<input type="radio" name="artikelnr" value="3"\>

osv...

Då hittar du ju valt artikelnummer i $\_GET\['artikelnr'\]...

$artikelnr = $\_GET\['artikelnr'\];

och $Data blir då:

$Data = $artikelnr . ":" . $description\[$artikelnr\] . ":1:" . $price\[$artikelnr\];

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

## #3 — Ann-Sofie, 2007-01-08T10:54Z

Fantastiskt - det funkar!! Stort mega-space-tack till dig Tydal som hjälpte mig så snabbt mot vad supporten har gjort under en månads tid!!! 

Finns inte ord att tacka!!
ann-sofie

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

## #4 — Ann-Sofie, 2007-01-23T06:59Z

Nu drar jag upp den här tråden igen då jag behöver ändra förutsättningarna. Som koden är idag kan kunden välja ett alternativ (en artikel , description) men hur ändrar jag om kunden ska kunna välja flera?

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

## #5 — jawbreaker, 2007-01-23T07:57Z

Såhär kanske?

```
2 månader för 1 månad: <input type="checkbox" name="artikelnr[]" value="1">
1 månad: <input type="checkbox" name="artikelnr[]" value="2">
3 månader: <input type="checkbox" name="artikelnr[]" value="3">
```

```
$artikelnr = $_GET['artikelnr'];

$artArr = array();
foreach ($artikelnr as $art)
{
	$artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art];
}

$Data = implode(',', $artArr);
```

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

## #6 — Ann-Sofie, 2007-01-24T09:50Z

Fånga upp värde från html-formuläret

Jag drar all kod tror jag för när jag inte själv förstår så är det svårt att veta exakt vilka utdrag ni som förstår behöver se...
(fick ingen hjälp av Samport, förstår inte varför vi fick infon att man inte behöver kunna PHP för att få igång betaltjänsten...)

Jag vill alltså att kunden ska kunna välja mer än ett alternativ i formuläret och sedan ska detta plockas upp i php-filen. Som det är nu kan man fylla i flera alternativ men det är bara det sista som förs över till php-filen.

```
<form method="get"  action="http://www.domänen.se/filename.php">
<br/>
<table width="780" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="34">&nbsp;</td>
    <td colspan="2" class="rubrik">Betala</td>
    <td width="123">&nbsp;</td>
    <td width="18">&nbsp;</td>
    <td width="71">&nbsp;</td>
    <td width="225">&nbsp;</td>
    <td width="19">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="2" class="rubrik">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="6" class="bread">H&auml;r fyller du i dina val och kontaktuppgifter, n&auml;r du v&auml;ljer <em>betala</em> slussas du vidare till v&aring;r betaltj&auml;nst som drivs av Samport. Med den kan du tryggt anv&auml;nda ditt kontokort! </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="6" class="bread">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="6" class="bread">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="32"><input type="checkbox" name="artikelnummer" value="1"/></td>
    <td width="258" class="bread">Medlemsavgift 200 kr (2 m&aring;n f&ouml;r 1) </td>
    <td class="red">Starterbjudande!</td>
    <td>&nbsp;</td>
    <td class="bread">F&ouml;rnamn:</td>
    <td><input type="text" size="30" name="fornamn"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="32"><input type="checkbox" name="artikelnummer" value="2"/></td>
    <td width="258" class="bread">Medlemsavgift 200 kr (1 m&aring;n) </td>
  
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td class="bread">Efternamn:</td>
    <td><input type="text" size="30" name="efternamn"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
   <td width="32"><input type="checkbox" name="artikelnummer" value="3"/></td>
    <td width="258" class="bread">Medlemsavgift 450 kr (3 m&aring;n) </td>
  
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td class="bread">Gatuadress:</td>
    <td><input type="text" size="30" name="adress"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>Postnr:</td>
    <td><input type="text" size="30" name="postnummer"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="32"><input type="checkbox" name="artikelnummer" value="4"/></td>
    <td width="258" class="bread">Middag singlar  350 kr </td>
  
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td class="bread">Ort:</td>
    <td><input type="text" size="30" name="ort"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="32"><input type="checkbox" name="artikelnummer" value="5"/></td>
    <td width="258" class="bread">Middag v&auml;nner  350 kr </td>
  
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>Land:</td>
    <td><select name="select" id="select">
        <option selected>v&auml;lj h&auml;r</option>
        <option value="25">Sverige</option>
      </select>    </td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
   <td width="32"><input type="checkbox" name="artikelnummer" value="6"/></td>
    <td width="258" class="bread">Aktivitet singelf&ouml;r&auml;ldrar 170 kr </td>
  
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td width="32">&nbsp;</td>
    <td colspan="2" class="bread">&nbsp;</td>
  
    <td>&nbsp;</td>
    <td>Medlemsnr:<br/>
      (personnr)</td>
    <td><input type="text" size="30" name="medlemsnummer"/></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td class="bread">&nbsp;</td>
    <td>&nbsp;
      <input name="submit" type="submit" value="Betala" /></td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
```

 

och här är den delen av php-filen som tar upp värde från html-filen:

```php
$description[1] = "Medlemsavgiften 2 mån. för en";
$description[2] = "Medlemsavgiften 1 mån.";
$description[3] = "Medlemsavgiften 3 mån.";
$description[4] = "Middag singlar";
$description[5] = "Middag vänner";
$description[6] = "Aktivitet singelföräldrar";

$price[1] = 20000;
$price[2] = 20000;
$price[3] = 45000;
$price[4] = 35000;
$price[5] = 35000;
$price[6] = 17000;

$OrderNo = $_GET["medlemsnummer"];
$Data = $artikelnummer.":".$description[$artikelnummer].":1:".$price[$artikelnummer];
$ExtraData = "#PHPSessionID=XXXXXXX#CustomerID=XXXXX";
$TransactionType = "1";
$ISOLanguage = "SE";
$ISOCurrency = "752";
$DirectCapture = $_GET["att betala"];

$FirstName = $_GET["fornamn"];
$LastName = $_GET["efternamn"];
$Address = $_GET["adress"];
$ZipCode = $_GET["postnummer"];
$City = $_GET["ort"];
$Country = $_GET["land"];
$ID = "XXXXXXX";
$IP = "XXXXXXX";

$Medlavg2for1 = $_GET["medlemsavgift 200 kr (2 m&aring;n f&ouml;r 1)"];
$Medlavg1man = $_GET["medlemsavgift 200 kr (1 m&aring;n)"];
$Medlavg3man = $_GET["Medlemsavgift 450 kr (3 m&aring;n)"];
$Middagsinglar350kr = $_GET["Middag singlar  350 kr"];
$Middagvenner350kr = $_GET["Middag v&auml;nner  350 kr"];
$Aktivitetsingelforaldrar = $_GET["Aktivitet singelf&ouml;r&auml;ldrar"];

// Check the technical manual for additional data types / flags
 

?>
```

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

## #7 — jawbreaker, 2007-01-24T10:09Z

Du får nog byta namn från artikelnummer till artikelnummer\[\] på dina checkboxar.
Alltså 

```
<input type="checkbox" name="artikelnummer[]" value="1"/>
```

 och sen likadant på alla övriga artikelnummer-checkboxar.

Och i PHP-koden:

```php
$OrderNo = $_GET["medlemsnummer"];
$artikelnr = $_GET["artikelnummer"];
$artArr = array();
foreach ($artikelnr as $art)
{
	$artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art];
}
$Data = implode(",", $artArr);
$ExtraData = "#PHPSessionID=XXXXXXX#CustomerID=XXXXX";
```

Och så har du en del konstigheter i din PHP-kod i övrigt... Till exempel

```php
$DirectCapture = $_GET["att betala"];

$Medlavg2for1 = $_GET["medlemsavgift 200 kr (2 m&aring;n f&ouml;r 1)"]; 
$Medlavg1man = $_GET["medlemsavgift 200 kr (1 m&aring;n)"]; 
$Medlavg3man = $_GET["Medlemsavgift 450 kr (3 m&aring;n)"]; 
$Middagsinglar350kr = $_GET["Middag singlar  350 kr"]; 
$Middagvenner350kr = $_GET["Middag v&auml;nner  350 kr"]; 
$Aktivitetsingelforaldrar = $_GET["Aktivitet singelf&ouml;r&auml;ldrar"];
```

 förstår jag inte riktigt vad du vill göra med.

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

## #8 — Ann-Sofie, 2007-01-24T10:21Z

Tack för hjälpen men tyvärr får jag felmeddelande. Den känner inte av att jag har gjort något artikelval alls nu...

Jag förstår inte heller riktigt koden kan jag ju säga då jag är otroligt novis på just PHP men de har vissa kriterier på hur det ska se ut och ett är ang. just beställningen av artiklar att det ska vara:

```php
$Data = $artikelnummer.":".$description[$artikelnummer].":1:".$price[$artikelnummer];
```

 

Det sista citatet du klistrade in från min kod trodde jag var att det är det som efter GET som kunden ser att de har beställt?!?

Fler idéer?

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

## #9 — jawbreaker, 2007-01-24T10:54Z

Nja, så blir koden om du bara har en artikel. Men om du har flera artiklar så ska alla komma efter varandra, separerade med kommatecken (om jag förstår dina tidigare inlägg rätt). Min kod borde göra så att $Data-variabeln innehåller alla produkter som valts, separerade med just kommatecken.

Vad exakt får du för felmeddelande? Och hur ser ändringarna i PHP-koden ut?

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

## #10 — Ann-Sofie, 2007-01-24T11:44Z

Felmeddelandet lyder:
Format Error, missing product name, please try again or contact shop administrator

Men om man måste separera de olika artiklarna med kommatecken, kan jag inte på något sätt göra det i 
$Data = $artikelnummer.":".$description\[$artikelnummer\].":1:".$price\[$artikelnummer\]; 

Hur tror du att det skulle se ut isåfall?

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

## #11 — jawbreaker, 2007-01-24T11:52Z

Det är det jag gjorde i min kod tidigare. Testade du den?

```php
$artikelnr = $_GET["artikelnummer"]; 
$artArr = array(); 
foreach ($artikelnr as $art) 
{ 
    $artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art]; 
} 
$Data = implode(",", $artArr);
```

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

## #12 — Ann-Sofie, 2007-01-24T12:05Z

Ja jag försökte men det var då jag fick felkoden ovan, precis som den inte känner av några artiklar.

Du kan dubbelkolla om du vill, så här såg koderna ut efter att jag testade dina ändringar:

```php
$description[1] = "Medlemsavgiften 2 mån. för en";
$description[2] = "Medlemsavgiften 1 mån.";
$description[3] = "Medlemsavgiften 3 mån.";
$description[4] = "Middag singlar";
$description[5] = "Middag vänner";
$description[6] = "Aktivitet singelföräldrar";

$price[1] = 20000;
$price[2] = 20000;
$price[3] = 45000;
$price[4] = 35000;
$price[5] = 35000;
$price[6] = 17000;

$OrderNo = $_GET["medlemsnummer"]; 
$artikelnr = $_GET["artikelnummer"]; 
$artArr = array(); 
foreach ($artikelnr as $art) 
{ 
    $artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art]; 
} 
$Data = implode(",", $artArr); 

$ExtraData = "#PHPSessionID=xxx#CustomerID=xxx";
$TransactionType = "1";
$ISOLanguage = "SE";
$ISOCurrency = "752";
$DirectCapture = $_GET["att betala"];

$FirstName = $_GET["fornamn"];
$LastName = $_GET["efternamn"];
$Address = $_GET["adress"];
$ZipCode = $_GET["postnummer"];
$City = $_GET["ort"];
$Country = $_GET["land"];
$ID = "xxx";
$IP = "xxx";

$Medlavg2for1 = $_GET["medlemsavgift 200 kr (2 m&aring;n f&ouml;r 1)"];
$Medlavg1man = $_GET["medlemsavgift 200 kr (1 m&aring;n)"];
$Medlavg3man = $_GET["Medlemsavgift 450 kr (3 m&aring;n)"];
$Middagsinglar350kr = $_GET["Middag singlar  350 kr"];
$Middagvenner350kr = $_GET["Middag v&auml;nner  350 kr"];
$Aktivitetsingelforaldrar = $_GET["Aktivitet singelf&ouml;r&auml;ldrar"];
```

 

```
<td width="32"><input type="checkbox" name="artikelnummer[]" value="4"/></td>
```

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

## #13 — jawbreaker, 2007-01-24T12:31Z

Jag tycker det ser rätt ut faktiskt.
Om du lägger till 

```php
die($Data);
```

 direkt efter 

```php
$Data = implode(",", $artArr);
```

 så borde programmet avbryta och skriva ut vad $Data innehåller. Kan du testa och se vad som skrivs ut?

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

## #14 — Ann-Sofie, 2007-01-24T12:37Z

..suck då är jag tillbaka till att den sista artikeln jag kryssar i kommer upp i php-filen men inte de första.

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

## #15 — jawbreaker, 2007-01-24T12:46Z

Innehåller $Data bara en artikel alltså? Och alla checkboxar heter artikelnummer\[\] i HTML-koden, så det ligger inte kvar någon/några som heter artikelnummer (utan \[\] på slutet)?

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

## #16 — Ann-Sofie, 2007-01-24T12:55Z

Nu har jag gått igenomn koden supernoga och alla checkboxar heter verkligen bara artikelnummer\[\]

(är bara 6 artiklar så det är inte så svårt att kolla heller)

När jag väljer betala så kommer felmeddelandet upp. när jag tar bort \[\] så det bara står artikelnummer kommer endast en artikel upp oavsett hur många jag har klickat i.

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

## #17 — jawbreaker, 2007-01-24T13:03Z

Jo, namnet måste sluta med \[\], annars tar PHP bara emot ett värde. Men varför det blir fel vet jag inte riktigt då.
Testade du att lägga till die($Data); ? Och vad exakt skrevs i så fall ut av programmet?

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

## #18 — Ann-Sofie, 2007-01-24T13:06Z

Felmeddelandet:
Format Error, missing product name, please try again or contact shop administrator!

Du tror inte att man ska lägga upp alla 6 artiklarna separerade med kommatecken i $Data?

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

## #19 — Ann-Sofie, 2007-01-24T13:10Z

Så här skrev supporten om det kan hjälpa till, jag förstod inte vad hon menade:

"Du kan tex ha en variabel som heter Producter. Sedan får du ha en if-sats eller liknande som gör så att om ett fält eller en radiobutton inte är ifylld så ska inte denna tas med, men om det är något i fältet ska denna data läggas i variablen. Du får lägga in kolon emellan produktnummer och beskrivning precis som innan och separera de olika produkterna med kommatecken. Tillslut kommer strängen att se ut precis som du ”hårdkodade” i php-filen och du skickar iväg denna sträng till php-filen (…. + "&strProducter=" + Producter +)  och hämtar den  med hjälp av tex Request.QueryString("strProducter")"

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

## #20 — jawbreaker, 2007-01-24T13:23Z

Skrivs det där felmeddelandet verkligen ut om du lägger till die($Data); direkt efter raden med implode..? Det låter väldigt konstigt... Det borde skrivas ut vad variabeln i sig innehåller.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/155670-betaltjänsten-samport  
Nästa sida: https://www.webforum.nu/amne/php/155670-betaltjänsten-samport/page2.md
