jag kopierade koden så får du gärna kolla men jag tycker att jag har gjort som du beskrivit
$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);
die($Data);
$ExtraData = "#PHPSessionID=xxx#CustomerID=xxx";
$TransactionType = "1";
$ISOLanguage = "SE";
$ISOCurrency = "752";
$DirectCapture = $_GET["att betala"];
Det är ett av livets stora mysterier det här ;-)
Nu testade jag att skapa en sida som jag döpte till art.php bara för att försöka testa din kod lite. Jag har i princip kört klipp och klistra från den här tråden.
<?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;
if (isset($_GET["artikelnummer"]))
{
$OrderNo = $_GET["medlemsnummer"];
$artikelnr = $_GET["artikelnummer"];
$artArr = array();
foreach ($artikelnr as $art)
{
$artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art];
}
$Data = implode(",", $artArr);
die($Data);
$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ån för 1)"];
$Medlavg1man = $_GET["medlemsavgift 200 kr (1 mån)"];
$Medlavg3man = $_GET["Medlemsavgift 450 kr (3 mån)"];
$Middagsinglar350kr = $_GET["Middag singlar 350 kr"];
$Middagvenner350kr = $_GET["Middag vänner 350 kr"];
$Aktivitetsingelforaldrar = $_GET["Aktivitet singelföräldrar"];
}
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<form method="get" action="art.php">
<br/>
<table width="780" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="34"> </td>
<td colspan="2" class="rubrik">Betala</td>
<td width="123"> </td>
<td width="18"> </td>
<td width="71"> </td>
<td width="225"> </td>
<td width="19"> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" class="rubrik"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="6" class="bread">Här fyller du i dina val och kontaktuppgifter, när du väljer <em>betala</em> slussas du vidare till vår betaltjänst som drivs av Samport. Med den kan du tryggt använda ditt kontokort! </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="6" class="bread"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="6" class="bread"> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="1"/></td>
<td width="258" class="bread">Medlemsavgift 200 kr (2 mån för 1) </td>
<td class="red">Starterbjudande!</td>
<td> </td>
<td class="bread">Förnamn:</td>
<td><input type="text" size="30" name="fornamn"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="2"/></td>
<td width="258" class="bread">Medlemsavgift 200 kr (1 mån) </td>
<td> </td>
<td> </td>
<td class="bread">Efternamn:</td>
<td><input type="text" size="30" name="efternamn"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="3"/></td>
<td width="258" class="bread">Medlemsavgift 450 kr (3 mån) </td>
<td> </td>
<td> </td>
<td class="bread">Gatuadress:</td>
<td><input type="text" size="30" name="adress"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>Postnr:</td>
<td><input type="text" size="30" name="postnummer"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="4"/></td>
<td width="258" class="bread">Middag singlar 350 kr </td>
<td> </td>
<td> </td>
<td class="bread">Ort:</td>
<td><input type="text" size="30" name="ort"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="5"/></td>
<td width="258" class="bread">Middag vänner 350 kr </td>
<td> </td>
<td> </td>
<td>Land:</td>
<td><select name="select" id="select">
<option selected>välj här</option>
<option value="25">Sverige</option>
</select> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"><input type="checkbox" name="artikelnummer[]" value="6"/></td>
<td width="258" class="bread">Aktivitet singelföräldrar 170 kr </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td width="32"> </td>
<td colspan="2" class="bread"> </td>
<td> </td>
<td>Medlemsnr:<br/>
(personnr)</td>
<td><input type="text" size="30" name="medlemsnummer"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td class="bread"> </td>
<td>
<input name="submit" type="submit" value="Betala" /></td>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
Jag markerade tre produkter i listan och klickade Betala. Programmet skriver då ut:
1:Medlemsavgiften 2 mån. för en:1:20000,2:Medlemsavgiften 1 mån.:1:20000,4:Middag singlar:1:35000
ja jag testade också och dina koder funkar ju. Det är troligtvis så att de strider mot någonting annat i php-filen som jag måste ha med från betaltjänstens sida. Tror duatt du skulle se det om du får hela php-filen?
Du kan också gå in och se hur det ska se ut "på riktigt" fast i den här versionen som ligger ute nu är det inte checkboxar utan radioknappar men du ser hur det ser ut när man klickar på betala (du betalar ju inget förrän du har fyllt i kortnummer så det är ju lugnt!!)
Där vill jag ju ha "artiklarna" under varandra och så ska de räknas ihop.
http://www.mingeltraffen.se/betala.html
Visst, kan du skicka över hela PHP-filen så kan jag titta på det. Det borde vara något annat som strular, precis som du skriver.
Hittade inte att man kunde bifoga filer någonstans så jag klistrar väl in hela filen, det får dom bjuda på eller hur? ;)
<?
// ======================================================================================
// Name: TellusPay Basic / Web
// Author: Tony Truong
// Date: 21 Sep 2005
//
// Requires: PHP
//
//
// Copyright © 1999-2005 Samport Payment Services AB, All rights Reserved
// --------------------------------------------------------------------------------------
// Visit Samport Payment Services AB - Payment Service Provider (Int) E-Commerce
// http://www.samport.com or http://www.telluspay.com
// ======================================================================================
// output buffering start
ob_start();
// starter en session
session_start();
// Encrypt function, do not edit!!!
function Encrypt($string, $key)
{
$result = '';
for($i=1; $i<=strlen($string); $i++)
{
$char = substr($string, $i-1, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$temp2 = ord($keychar);
$temp1 = ord($char);
$temp3 = $temp1 + $temp2;
if($temp3 > 255)
{
$temp3 = $temp3%255;
}
$char = chr($temp3);
$result.=$char;
}
return asc2hex($result);
}
function asc2hex ($temp) {
$i = 0;
$data = '';
$len = strlen($temp);
for ($i=0; $i<$len; $i++) $data.=sprintf("%02x",ord(substr($temp,$i,1)));
return $data;
}
function hex2asc($temp) {
$len = strlen($temp);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($temp,$i,2)));
return $data;
}
// Don't forget to URL encode all data types in the message with ISO8859-1.
$TellusPayID = "xxxxx"; // Provided by Samport
$SecretKey = "xxxxxx"; // Provided by Samport
$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;
if (isset($_GET["artikelnummer"]))
{
$OrderNo = $_GET["medlemsnummer"];
$artikelnr = $_GET["artikelnummer"];
$artArr = array();
foreach ($artikelnr as $art)
{
$artArr[] = $art . ":" . $description[$art] . ":1:" . $price[$art];
}
$Data = implode(",", $artArr);
die($Data);
$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 = "xxxx";
$Medlavg2for1 = $_GET["medlemsavgift 200 kr (2 mån för 1)"];
$Medlavg1man = $_GET["medlemsavgift 200 kr (1 mån)"];
$Medlavg3man = $_GET["Medlemsavgift 450 kr (3 mån)"];
$Middagsinglar350kr = $_GET["Middag singlar 350 kr"];
$Middagvenner350kr = $_GET["Middag vänner 350 kr"];
$Aktivitetsingelforaldrar = $_GET["Aktivitet singelföräldrar"];
// Check the technical manual for additional data types / flags
$Data = "TP01=$DirectCapture&TP700=$TellusPayID&TP701=$OrderNo&TP740=$Data&TP901=$TransactionType&TP491=$ISOLanguage&TP490=$ISOCurrency&TP801=$Email&TP8021=$FirstName&TP8022=$LastName&TP803=$Address&TP804=$ZipCode&TP805=$City&TP806=$Country&TP8071=$ID&TP900=$IP&TP950=$ExtraData";
$Data = Encrypt($Data, hex2asc($SecretKey));
$URL = "http://unix.telluspay.com/EncryptedPost/?Data=$Data&TPID=$TellusPayID";
header("Location: $URL");
?>
Jadu, några småfel var det i PHP-koden, men jag har ingen aning om vad det är som ger felmeddelandet ärligt talat.
Jag gjorde på nytt en testsida där jag slängde in din PHP-kod, och ändrade lite så att den ser ut enligt följande.
<?
// ============================================================ ==========================
// Name: TellusPay Basic / Web
// Author: Tony Truong
// Date: 21 Sep 2005
//
// Requires: PHP
//
//
// Copyright © 1999-2005 Samport Payment Services AB, All rights Reserved
// --------------------------------------------------------------------------------------
// Visit Samport Payment Services AB - Payment Service Provider (Int) E-Commerce
// http://www.samport.com or http://www.telluspay.com
// ============================================================ ==========================
// output buffering start
ob_start();
// starter en session
session_start();
// Encrypt function, do not edit!!!
function Encrypt($string, $key)
{
$result = '';
for($i=1; $i<=strlen($string); $i++)
{
$char = substr($string, $i-1, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$temp2 = ord($keychar);
$temp1 = ord($char);
$temp3 = $temp1 + $temp2;
if($temp3 > 255)
{
$temp3 = $temp3%255;
}
$char = chr($temp3);
$result.=$char;
}
return asc2hex($result);
}
function asc2hex ($temp) {
$i = 0;
$data = '';
$len = strlen($temp);
for ($i=0; $i<$len; $i++) $data.=sprintf("%02x",ord(substr($temp,$i,1)));
return $data;
}
function hex2asc($temp) {
$data = '';
$len = strlen($temp);
for ($i=0;$i<$len;$i+=2) $data.=chr(hexdec(substr($temp,$i,2)));
return $data;
}
// Don't forget to URL encode all data types in the message with ISO8859-1.
$TellusPayID = "xxxxx"; // Provided by Samport
$SecretKey = "xxxxxx"; // Provided by Samport
$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 = "1";
$FirstName = $_GET["fornamn"];
$LastName = $_GET["efternamn"];
$Address = $_GET["adress"];
$ZipCode = $_GET["postnummer"];
$City = $_GET["ort"];
$Country = $_GET["land"];
$ID = "xxx";
$IP = "xxxx";
// Check the technical manual for additional data types / flags
$Data = "TP01=$DirectCapture&TP700=$TellusPayID&TP701=$OrderNo&TP740=$Data&TP901=$TransactionType&TP491=$ISOLanguage&TP490=$ISOCurrency&TP8021=$FirstName&TP8022=$LastName&TP803=$Address&TP804=$ZipCode&TP805=$City&TP806=$Country&TP8071=$ID&TP900=$IP&TP950=$ExtraData";
$Data = Encrypt($Data, hex2asc($SecretKey));
$URL = "http://unix.telluspay.com/EncryptedPost/?Data=$Data&TPID=$TellusPayID";
header("Location: $URL");
?>
Jag har testat att skriva ut $Data-variabeln efter att den satts ihop till en jättelång sträng längst ned på sidan, och jag såg inget uppenbart fel. Men då vet jag iofs inte hur den måste se ut för att den ska fungera med Telluspay :-)
Det måste väl vara Telluspay-sidan i sig (den man skickar vidare all data till) som ger felmeddelandet om att något är fel. Den här PHP-koden verkar okej.
Men du måste byta namn på din selectbox som används för att välja land i html-filen förresten. Den hette visst select, men den borde heta land istället.
Tack för all hjälp - jag lämnade filerna till en kille som löst det via sin firma. Eftersom det första problemet löste sig så markerar jag det som accepterad lösning.
Tack för ditt engagemang!!