PHP kullanarak SSL üzerinden XML gönderme Sorunlar

0 Cevap php

Ben sorun PHP kullanarak bir ödeme ağ geçidi için XML gönderme sahip.

https://dev.psigate.com:8645/Messenger/AMMessenger: ağ geçidi (psiGate) XML POST bu sandbox url verir

İşte kod:

if (isset($_POST) && $_GET['task'] == 'new') {
    $dealer = new Dealer($USER->getDealerId());
    $contact = $dealer->getContact();
    // new PSiGate Account
    $xml  = '<?XML version="1.0"?>';
    $xml .= "<Request>\n";
    $xml .= "   <CID>10000001</CID>\n";
    $xml .= "   <UsertID>teststore</UserID>\n";
    $xml .= "   <Password>testpass</Password>\n";  
    $xml .= "   <Action>AMA01</Action>\n";  
    $xml .= "   <Account>\n";
    $xml .= "       <AccountID>".$USER->getDealerId()."</AccountID>\n";
    $xml .= "       <Name>".$contact->getFirstname()." ".$contact->getFirstname()."</Name>\n";
    $xml .= "       <Company>".$contact->getCompany()."</Company>\n";
    $xml .= "       <Address1>".$contact->getAddressLine1()."</Address1>\n";
    $xml .= "       <Address2>".$contact->getAddressLine2()."</Address2>\n";
    $xml .= "       <City>".$contact->getCity()."</City>\n";
    $xml .= "       <Province>".$contact->getProvince()."</Province>\n";
    $xml .= "       <Postalcode>".$contact->getPostalCode(TRUE)."</Postalcode>\n";
    $xml .= "       <Country>".$contact->getCountry()."</Country>\n";
    $xml .= "       <Phone>".$contact->getWorkPhone(TRUE)." EXT. ".$contact->getWorkPhoneExt()."</Phone>\n";
    $xml .= "       <Fax>".$contact->getFaxPhone(TRUE)."</Fax>\n";
    $xml .= "       <Email>".$contact->getEmail()."</Email>\n";
    $xml .= "       <CardInfo>\n";
    $xml .= "           <CardHolder>".$_POST['Bname']."</CardHolder>\n";
    $xml .= "           <CardNumber>".$_POST['CardNumber']."</CardNumber>\n";
    $xml .= "           <CardExpMonth>".$_POST['CardExpMonth']."</CardExpMonth>\n";
    $xml .= "           <CardExpYear>".$_POST['CardExpYear']."</CardExpYear>\n";
    $xml .= "       </CardInfo>\n";
    $xml .= "   </Account>\n";
    $xml .= "</Request>\n";
    $fp = fsockopen("dev.psigate.com", 8645, $errno, $errstr, 30);
    if (!$fp)    {
        echo 'Failed to open connection.';
    } else {
        $contentlength = strlen($xml);
        $out  = "POST /Messenger/AMMessenger HTTP/1.0\r\n";
        $out .= "Host: ssl://dev.psigate.com\r\n";
        $out .= "Connection: Keep-Alive\r\n";
        $out .= "Content-type: application/x-www-form-urlencoded\r\n";
        $out .= "Content-length: $contentlength\r\n\r\n";
        $out .= "XML=$xml";
        fwrite($fp, $out);
        while (!feof($fp)) {
            $theOutput .= fgets($fp, 128);
        }
        fclose($fp);
        echo "there should be output";       
        echo $theOutput;
    } 
}

Ben herhangi bir çıktı sadece mesaj alamadım: "Orada çıkışı olmalı" ve komut dosyası yaklaşık 45 saniye boyunca çalışır ya da ben öyle bir şey yapıyor inanıyorum .. lol!

0 Cevap