login  Naam:   Wachtwoord: 
Registreer je!
 Forum

IcePay API werkend krijgen (Opgelost)

Offline GroundZero - 24/09/2016 10:04 (laatste wijziging 24/09/2016 17:33)
Avatar van GroundZeroLid Hi guys,

ik volg de handleiding op https://icepay....Manual.pdf maar blijf vast lopen op de foutmelding:

Bad Request - Invalid Content Length
HTTP Error 400. There is an invalid content length or chunk length in the request.

Ik krijg het echt niet opgelost want volgens mijn heb ik alles goed gedaan (obviously not lol). Iemand die mij kan vertellen wat ik verkeerd doe?

Mijn code hier onder:

  1. <div class="col-md-12">
  2. <?php
  3. $body = array("Timestamp" => date('Y-m-d h:m:s', time()),
  4. "Amount" => '500',
  5. "Country" =>'NL',
  6. "Currency" =>'EUR',
  7. "Description" => 'website',
  8. "EndUserIP" => $_SERVER['REMOTE_ADDR'],
  9. "PaymentMethod" => 'iDeal',
  10. "Issuer" => "ING",
  11. "Language" => 'NL',
  12. "OrderID" => '1231234',
  13. "URLCompleted" => 'http://www.website.nl/bestelling-ontvangen/',
  14. "URLError" => 'http://www.website.nl/betaling-mislukt/');
  15.  
  16. $url = 'https://connect.icepay.com/webservice/api/v1/payment/checkout';
  17. $checksum = hash('sha256', utf8_encode($url.'/POST30203MIJNGEHEIMECODE'.json_encode($body)));
  18.  
  19. $curl = curl_init();
  20. curl_setopt($curl, CURLOPT_URL, $url );
  21. curl_setopt($curl, CURLINFO_HEADER_OUT, 1);
  22. curl_setopt($curl, CURLOPT_HTTPHEADER, array('MerchantID: 123456', 'Checksum: '.$checksum));
  23. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  24. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
  25. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
  26. curl_setopt($curl, CURLOPT_POST, 1);
  27.  
  28. $response = curl_exec($curl);
  29. curl_close($curl);
  30.  
  31. echo '<pre><code>';
  32. print_r( json_encode($body) );
  33. echo '</code></pre>';
  34.  
  35. echo '<pre><code>';
  36. print_r( $checksum );
  37. echo '</code></pre>';
  38.  
  39. echo '<pre><code>';
  40. print_r( strlen($checksum) );
  41. echo '</code></pre>';
  42.  
  43. echo '<pre><code>';
  44. print_r( $response );
  45. echo '</code></pre>';
  46. ?>
  47. </div>



EDIT:
Ik ben nu een stuk verder, de timestamp is niet goed maar krijg nu wel een answer terug. Schijnbaar moet ik de body mee geven in de curl en niet alleen in de checksum, uit de documentatie begreep ik dat het alleen in de checksum hoefde...

  1. curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($body));


Iemand enig idee hoe ik de timestamp moet maken? krijg nu de melding:

{"Message":"ERR_0003: Please provide a valid Timestamp member"}

terug terwijl in mijn code staat:

  1. "Timestamp" => date('Y-m-d\Th:m:s\Z', time())

4 antwoorden

Gesponsorde links
Offline UpLink - 24/09/2016 18:06 (laatste wijziging 24/09/2016 18:14)
Avatar van UpLink ... Heb je ook alle nodige software op je server draaien voor icepay?

- Soap
- Curl(ssl)
- REST
- een geldig SSL certificaat

Ik heb hier een tijdje geleden ook mee aan het kloojen geweest toen ik icepay werkend wou krijgen op magento.

  1. This is the current UTC time that must have the following format: yyyy-mm-ddThh:mm:ssZ Example: 2015-01-01T01:30:00Z


ICEPAY levert trouwens een PHP REST API die je kan gebruiken. Is dat niet eenvoudiger dan het wiel opnieuw uit te vinden?
Bedankt door: GroundZero
Offline nielsvdwal - 26/09/2016 09:23
Avatar van nielsvdwal PHP gevorderde De timestamp verkrijg je door alleen time() te gebruiken. Dus zonder date() functie eromheen.
Bedankt door: GroundZero
Offline Thomas - 03/10/2016 15:21 (laatste wijziging 13/10/2016 14:58)
Avatar van Thomas Moderator Mja, maar er wordt een bepaald formaat verwacht, time() retourneert een unix timestamp en lijkt mij dan ook ongeschikt. Wel kun je time() weglaten uit de date() aanroep, wellicht bedoelde je dat?

EDIT: het format van je timestamp is niet helemaal in orde: h:m:s geeft geen leading zeros voor uren en minuten, hiervoor dien je H:i:s te gebruiken (case-sensitive).
Bedankt door: GroundZero
Offline GroundZero - 31/10/2016 19:47
Avatar van GroundZero Lid Oke duidelijk daarmee kom ik al een stuk verder dankjewel Goed tips guys!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.294s