SOAP / XML - koppeling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Niek Berckmans

Niek Berckmans

07/07/2011 12:32:02
Quote Anchor link
Hoi,

Voor het voltooien van maandelijkse eenmalige machtigingen werk ik met Buckaroo. Buckaroo geeft de mogelijkheid om batches door te sturen met informatie over de transacties die voltooid moeten worden via een SOAP / XML - koppeling. Ik krijg echter geen connectie met de server van Buckaroo en vroeg me af of jullie me hiermee kunnen helpen.

Het volgende script (ik heb het even in 1 bestand gepropt) zou moeten zorgen voor de verzending:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
class Transaction {

    // Send GET/POST data through sockets
        function postToHost($data, $timeout = 30)
        {


            $fsp = fsockopen('payment.buckaroo.nl');
            $res = '';
            
            if($fsp)
            {

                // echo "\n\nSEND DATA: \n\n" . $data . "\n\n";

                fputs($fsp, 'POST /soap/soap.asmx HTTP/1.1' . $this->CRLF);
                fputs($fsp, 'Host: payment.buckaroo.nl' . $this->CRLF);
                fputs($fsp, 'Content-Type: text/xml; charset=utf-8' . $this->CRLF);
                fputs($fsp, 'Content-Length: ' . strlen($data) . $this->CRLF);
                fputs($fsp, 'SOAPAction: "https://payment.buckaroo.nl/EenmaligeMachtiging"' . $this->CRLF . $this->CRLF);
                fputs($fsp, $data, strlen($data));

                while(!feof($fsp))
                {

                    $res .= @fgets($fsp, 128);
                }


                fclose($fsp);

                // echo "\n\nRECIEVED DATA: \n\n" . $res . "\n\n";
            }
            else
            {
                $this->setError('Error while connecting to Buckaroo', false, __FILE__, __LINE__);
            }


            return $res;
        }

        
        protected function setError($sDesc, $sCode = false, $sFile = 0, $sLine = 0)
        {

            $this->aErrors[] = array('desc' => $sDesc, 'code' => $sCode, 'file' => $sFile, 'line' => $sLine);
        }


        public function getErrors()
        {

            return $this->aErrors;
        }


        public function hasErrors()
        {

            return (sizeof($this->aErrors) ? true : false);
        }


}

$data='<?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:Body>
            <EenmaligeMachtiging xmlns="https://payment.buckaroo.nl/">
                <XMLMessage>
                    <Payload VersionID="1.0" xmlns="">
                        <Control Test="1">
                            <Timestamp>2011-07-06 12:10:53</Timestamp>
                            <MerchantID>1</MerchantID>
                           </Control>
                        <Content>
                            <Transaction Id="1">
                                <Customer>
                                    <Gender>1</Gender>
                                    <Firstname>Test</Firstname>
                                    <Lastname>Test</Lastname>
                                    <Mail>[email protected]</Mail>
                                </Customer>
                                <AccountNumber>123456789</AccountNumber>
                                <AccountName>Test</AccountName>
                                <Amount Currency="EUR">1</Amount>
                                <CollectDate>2011-08-01</CollectDate>
                                <CollectType>recurring</CollectType>
                                <Invoice>11080000001</Invoice>
                                <Reference></Reference>
                                <Description>Abbonnement 08/11</Description>
                              </Transaction>
                        </Content>
                    </Payload>
                   </XMLMessage>
                <XMLSignature>
                    <Signature xmlns="">
                        <Fingerprint>1</Fingerprint>
                        <DigestMethod>MD5</DigestMethod>
                        <CalculateMethod>111</CalculateMethod>
                        <SignatureValue>1</SignatureValue>
                    </Signature>
                   </XMLSignature>
          </EenmaligeMachtiging>
       </soap:Body>
</soap:Envelope>'
;
$transaction = new Transaction;
echo $transaction->postToHost($data);
if($transaction->hasErrors()){
    print_r($transaction->getErrors());    
}

?>


Ik krijg de volgende error: Array ( [0] => Array ( [desc] => Error while connecting to Buckaroo
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
=> [file] => /var/www/vhosts/newsmail.nl/httpdocs/soap-xml.php [line] => 34 ) ).

Normaal gezien verzend ik de XML altijd op deze manier en geeft dit geen problemen. Weet iemand een oplossing hiervoor?

Bvd,
Niek
 
PHP hulp

PHP hulp

21/11/2024 19:30:57
 
B a s
Beheerder

B a s

07/07/2011 12:42:45
Quote Anchor link
Het gaat dus mis bij

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$fsp
= fsockopen('payment.buckaroo.nl')
?>


Moet je niet op een speciale poort verbinden? Is dit script van Buckaroo zelf of heb jij dit geschreven?
 
Niek Berckmans

Niek Berckmans

07/07/2011 12:45:36
Quote Anchor link
Ik heb het geschreven, aangezien Buckaroo geen PHP hulp geeft. Het komt uit een script dat ik gebruik om iDEAL transacties te versturen.

Buckaroo zegt het volgende:

Elke request dat u via deze koppeling stuurt dient de volgende URL te gebruiken:
- https://payment.buckaroo.nl/soap/soap.asmx

Wanneer ik naar deze pagina ga krijg ik het volgende:

POST /soap/soap.asmx HTTP/1.1
Host: payment.buckaroo.nl
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://payment.buckaroo.nl/EenmaligeMachtiging"

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<EenmaligeMachtiging xmlns="https://payment.buckaroo.nl/">
<XMLMessage />
<XMLSignature />
</EenmaligeMachtiging>
</soap:Body>
</soap:Envelope>

Toevoeging op 07/07/2011 18:22:23:

Het connectieprobleem lag inderdaad aan de port.
De volgende regel maakt in ieder geval de connectie met Buckaroo:

$fsp = fsockopen('payment.buckaroo.nl',443,$errno,$error,$timeout);

Daarna maak ik de request d.m.v.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
fputs($fsp, 'POST /soap/soap.asmx HTTP/1.1\r\n');
fputs($fsp, 'Host: payment.buckaroo.nl\r\n');
fputs($fsp, 'Content-Type: application/soap+xml; charset=utf-8\r\n');
fputs($fsp, 'Content-Length: ' . strlen($data) . '\r\n\r\n');
fputs($fsp, $data, strlen($data));
?>


Ik krijg echter geen response. Weet iemand waar dit aan kan liggen?
 
Remco van Arkelen

Remco van Arkelen

09/11/2011 07:40:04
Quote Anchor link
Stom, zie nu pas hoe oud het bericht is :)
Gewijzigd op 09/11/2011 07:41:08 door Remco van Arkelen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.