Avatar billede dbmanager Nybegynder
02. maj 2005 - 14:19 Der er 6 kommentarer og
1 løsning

Integration til Payzip i php

Hej Eksperter

Jeg sidder og forsøger at lave noget payzip integration i php, men er måske ikke den store ørn til php.

Jeg har flg.:


$QSTRING= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>";
$QSTRING.= "<PAYZIP_XML>";
$QSTRING.= "<REQUEST>";
$QSTRING.= "<Pin>9999</Pin>";
$QSTRING.= "<AccID>8888<AccID>";
$QSTRING.= "<OrderID>7777</OrderID>";
$QSTRING.= "<Function>INSERT_ORDER</Function>";
$QSTRING.= "<PRODUCTS>";
$QSTRING.= "<MailNotify>0</MailNotify>";
$QSTRING.= "<EMailAddress>{$email}</EMailAddress>";
$QSTRING.= "<Description>Varebeskrivelse {$amount} GBP</Description>";
$QSTRING.= "<Currency>GBP</Currency>";
$QSTRING.= "<AmountTotal>{$amount}</AmountTotal>";
$QSTRING.= "<VATRateTotal>0</VATRateTotal>";
$QSTRING.= "<ProductTotal>{$amount}</ProductTotal>";
$QSTRING.= "</PRODUCTS>";
$QSTRING.= "</REQUEST>";
$QSTRING.= "</PAYZIP_XML>";



$ret = PostToHost("www.payzip.net","/testapi/api/apixml.asp",80, $QSTRING);
echo "$ret";

echo "<script

language=javascript>document.location.href='https://www.payzip.net/testapi/w2w/default.asp?AccID=8888&OrderID=7777

'</script>";

function PostToHost($host, $path, $port, $data_to_send)
{
    $ret = "";
    $fp = fsockopen($host,$port,$errno,$errstr,30);
    if($fp)
    {
        fputs($fp, "POST $path HTTP/1.0\n");
        fputs($fp, "Host: $host\n");
        fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
        fputs($fp, "Content-length: " . strlen($data_to_send) . "\n");
        fputs($fp, "Connection: close\n\n");
        fputs($fp, $data_to_send);
        while(!eof($fp))
        {
            $ret .= fgets($fp, 128);
        }
        fclose($fp);
        $q = stristr($ret,"RESULT");
echo "$q";
        if (!$q !=false)
            $ret = $q;
    }
    else
    {
        $ret = "Bad Connection ".$errno."[".$errstr."]";
    }
    return $ret;
}



Nogen der kan se lyset?
Avatar billede jakobdo Ekspert
02. maj 2005 - 19:12 #1
$QSTRING.= "<AccID>8888<AccID>";
Skal vel være:
$QSTRING.= "<AccID>8888</AccID>";

Du har: $QSTRING.= "</PRODUCTS>";
Mangler du ikke:
$QSTRING.= "<PRODUCTS>"; i toppen?
Avatar billede dbmanager Nybegynder
02. maj 2005 - 19:27 #2
>$QSTRING.= "<AccID>8888<AccID>";
>Skal vel være:
>$QSTRING.= "<AccID>8888</AccID>";
Du har ret


>Du har: $QSTRING.= "</PRODUCTS>";
>Mangler du ikke:
>$QSTRING.= "<PRODUCTS>"; i toppen?
Der er i linie 8

Det var nu stadig ikke det, men while(!eof($fp)) skulle være while(!feof($fp)), og det gjorde en del forskel, nu mangler jeg så lige at finde ud af, hvorfor $email ikke indeholder en mailadresse...
Avatar billede jakobdo Ekspert
02. maj 2005 - 19:30 #3
Og evt smid et kig her: http://www.captive.dk/flathead/
Avatar billede dbmanager Nybegynder
02. maj 2005 - 20:51 #4
Den har jeg kigget på. Den indeholder stort set det samme som vejledningen fra PayZip.

Nu har jeg bare to problemer tilbage.

Jeg kan ikke finde mailadressen (variablen der indeholder den), og hvordan jeg henter det ordreid som payzip tildeler transaktionen.

Foreløbig tak for hjælpen - smid lige et svar.
Avatar billede jakobdo Ekspert
03. maj 2005 - 08:02 #5
Svar...
Det ordre ID, er vel noget med at læse hvad du får tilbage fra din posttohost function?
Avatar billede dbmanager Nybegynder
03. maj 2005 - 08:14 #6
Ja, men jeg skal lige have gennemskuet hvordan.

Måske vender jeg tilbage omkring det.
Avatar billede jakobdo Ekspert
03. maj 2005 - 08:20 #7
Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester