Beste,
Ik maak gebruik van het Versio CP in combinatie met TargetPay. De iDeal betalingen gaan goed en komen door bij TargetPay, echter krijg ik het niet voor elkaar om een succes return te krijgen. Dit houdt in dat de betaling binnenkomt maar niet direct wordt afgerond.
Wellicht kunnen jullie mij hiermee helpen? Welke gegevens hebben jullie hiervoor benodigd? (ik krijg geen foutmelding oid. de handleiding van Targetpay is hier te vinden maar hier word ik niet direct wijzer van (in de zin van; ik zie niet wat ik fout heb/doe) https://www.targetpay.com/docs/Targe...AL_V1.0_nl.pdf )
Alvast hartelijke bedankt,
Justin.
- Versio CP Targetpay, krijg geen succes return
-
20-12-2013, 15:53 #1
- Berichten
- 10
- Lid sinds
- 11 Jaar
Versio CP Targetpay, krijg geen succes return
-
In de schijnwerper
Webapps op maat! Voordelig en snel gerealiseerd.Freelance / Werk[SNELLE LEVERING] Laat je website / webshop snel en professioneel bouwen!Freelance / WerkLinkvada.com Linkbuilding Platform: Direct Linkbuilden op 77.000+ premium domeinenLinkpartners[BELANGRIJK] Festinger Vault - Download 25.000 thema's en pluginsPromotie -
20-12-2013, 15:59 #2
- Berichten
- 487
- Lid sinds
- 15 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Als je de Targetpay API zip hebt gedownload staat er een ExampleIdeal.php, even uit me hoofd krijg je een GET waarde "trxid" terug wanneer de return URL aangeroepen wordt. Staat de return URL ook goed zodat Targetpay weet welke URL en bestand hij moet aanroepen na de transactie ?
-
20-12-2013, 20:30 #3
- Berichten
- 10
- Lid sinds
- 11 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Nou, standaard gebruikt VersioCP onderstaande script. Daar zou de API in verwerkt moeten zitten.
PHP Code:<?php
/**
* DEVELOPED BY VERSIO.NL
*/
if(VERSIO !== true)
{
header('HTTP/1.0 404 Not Found');
exit;
}
class Targetpay
{
public $rtlo;
public $description;
public $issuer;
public $amount;
public $returnUrl;
public $reportUrl;
public function __construct()
{
$this->db = Database::getInstance();
if(!defined('TARGETPAY_LAYOUTCODE'))
{
die('Geen targetpay gegevens ingevuld');
}
$this->rtlo = TARGETPAY_LAYOUTCODE;
}
public function startPayment()
{
try
{
$aParams = array();
$aParams['rtlo'] = $this->rtlo;
$aParams['bank'] = $this->issuer;
$aParams['description'] = $this->description;
$aParams['amount'] = $this->amount;
$aParams['returnurl'] = $this->returnUrl;
$aParams['reporturl'] = $this->reportUrl;
$response = $this->getResponse($aParams);
$aResponse = explode('|', $response);
if(!isset($aResponse[1]))
{
throw new Exception('Error' . $aResponse[0]);
}
$iTrxID = explode(' ', $aResponse[0]);
return array($iTrxID[1], $aResponse[1]);
}
catch(Exception $e)
{
die($e->getMessage());
}
}
public function validatePayment($transactionId)
{
$aParams = array();
$aParams['rtlo'] = $this->rtlo;
$aParams['trxid'] = $transactionId;
$aParams['once'] = 0;
$response = $this->getResponse($aParams);
$aResponse = explode('|', $response);
if($aResponse[0] == '000000 OK')
{
return true;
}
return false;
}
protected function getResponse($aParams, $sRequest = 'https://www.targetpay.com/ideal/start?')
{
$sParamString = $this->makeParamString($aParams);
$ch = curl_init($sRequest.$sParamString);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
$response = curl_exec($ch);
curl_close($ch);
if($response === false)
{
throw new Exception('Could not fetch response');
}
return $response;
}
protected function makeParamString($aParams)
{
$str = '';
foreach($aParams as $key => $val)
{
$str .= '&' . urlencode($key) . '=' . urlencode($val);
}
return substr($str, 1);
}
}
?>
-
21-12-2013, 03:07 #4
- Berichten
- 1.004
- Lid sinds
- 17 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Even een domme vraag misschien, maar waarom stuur je versio geen e-mailtje? Ik zie namelijk zo 1,2,3 geen fouten in dat script. Maar kan aan mij liggen. Maar versio heeft het ontwikkeld en vrijgegeven. Neem aan dat ze er dan ook support op geven =)
-
21-12-2013, 08:08 #5
- Berichten
- 10
- Lid sinds
- 11 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Dat is zeker geen domme vraag, heb wel contact met Versio gezocht echter willen ze (nog) geen support leveren omdat ze de release ovv. BETA hebben gedaan :/
-
21-12-2013, 09:17 #6
- Berichten
- 493
- Lid sinds
- 12 Jaar
Re: Versio CP Targetpay, krijg geen succes return
@Justin, zo zie je maar weer hoe goed de support van Versio aan hun klanten is...
Het kan natuurlijk ook dat de fout bij TargetPay ligt, neem daar telefonisch contact mee op ?
Groeten
Jacques
-
21-12-2013, 14:56 #7
- Berichten
- 10
- Lid sinds
- 11 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Tot die tijd, mochten er mensen zijn met tips; héél graag :-)
-
21-12-2013, 15:12 #8
- Berichten
- 1.004
- Lid sinds
- 17 Jaar
Re: Versio CP Targetpay, krijg geen succes return
versio.. paupercompany
-
21-12-2013, 19:45 #9
- Berichten
- 442
- Lid sinds
- 16 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Gouden TIP: Zoek een andere hosting.
-
21-12-2013, 19:55 #10
- Berichten
- 10
- Lid sinds
- 11 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Ik host niet bij Versio. Ik gebruik dan ook alleen de integratie met mijn bestaande DA omgeving. Dat de domeinregistratie bij Versio plaatsvindt is niet zo spannend :-)
Neemt niet weg dat ik nog geen werkende oplossing voor het script heb gevonden :(
-
23-12-2013, 11:40 #11
- Berichten
- 10
- Lid sinds
- 11 Jaar
Re: Versio CP Targetpay, krijg geen succes return
Oké, via de Targetpay site heb ik onderstaande scriptje gevonden, even wat geordend en getest. Deze werkt wel.
PHP Code:<?php
// Stel eerst deze 5 parameters in.
$rtlo=12345;
$description="Targetpay iDeal Script";
$amount=84;
$returnurl="http://mijndomein.nl/iDealExample.php";
$reporturl="http://mijndomein.nl/iDealExample.php";
// De bank is geselecteerd. Nu starten we de transactie.
if( isset ($_GET['bank'])) {
$url = StartTransaction($rtlo, $_GET['bank'], $description, $amount, $returnurl, $reporturl);
header( "Location: ". $url );
}
// De consument komt vanaf de bank terug op de returnurl.
// Hier controleren we de transactiestatus
if( isset($_GET['ec']) && isset($_GET['trxid'])){
// 000000 OK betekent succesvol. We kunnen het product leveren
if(($status = CheckReturnurl( $rtlo, $_GET['trxid'] ))=="000000 OK" )
{
// Melding wanneer betaling succesvol was
die( "Betaling gelukt!
<br>Product geactiveerd." );
}
// Melding wanneer betaling mislukt is
else die( "De betaling is mislukt!" );
}
// De reporturl wordt vanaf de Targetpay server aangeroepen
if ( isset($_POST['rtlo'])&&isset($_POST['trxid'])&& isset($_POST['status'])) {
HandleReporturl($_POST['rtlo'], $_POST['trxid'], $_POST['status'] ); }
// Hier begint het proces met het selecteren van de bank
SelectBank();
// Paragraaf 2: Selecteer de bank
function SelectBank(){
$url="https://www.targetpay.com/ideal/getissuers.php"; $strResponse = httpGetRequest($url);
echo "<html>";
echo "<form method=\"get\" name=\"idealform\">";
echo "<select name=\"bank\">".$strResponse."</select>";
echo "<INPUT TYPE=\"submit\" VALUE=\"Ga door..\"></form>"; echo "</html>";
}
// Paragraaf 3. Start de transactie door een redirect url naar de bank op te vragen
function StartTransaction( $rtlo, $bank, $description, $amount, $returnurl, $reporturl)
{
$url= "https://www.targetpay.com/ideal/start?".
"rtlo=".$rtlo.
"&bank=".$bank.
"&description=".urlencode($description).
"&amount=".$amount.
"&returnurl=".urlencode($returnurl).
"&reporturl=".urlencode($reporturl);
$strResponse = httpGetRequest($url); $aResponse = explode('|', $strResponse );
# Bad response
if ( !isset ( $aResponse[1] ) ) die('Error' . $aResponse[0] );
$responsetype = explode ( ' ', $aResponse[0] ); $trxid = $responsetype[1];
// Hier kunt u het transactie id aan uw order toevoegen.
if( $responsetype[0] == "000000" ) return $aResponse[1];
else die($aResponse[0]); }
// Paragraaf 5. Vraag de status op vanuit de returnurl
function CheckReturnurl($rtlo, $trxid){
$once=1;
$test=0; // Set to 1 for testing as described in paragraph 1.3
$url= "https://www.targetpay.com/ideal/check?". "rtlo=".$rtlo.
"&trxid=".$trxid.
"&once=".$once.
"&test=".$test;
return httpGetRequest($url);
}
// Update uw orderstatus en lever het product indien $status="000000 OK"
function HandleReporturl($rtlo, $trxid, $status ){
if( substr($_SERVER['REMOTE_ADDR'],0,10) == "89.184.168" ){
// Update uw orderstatus hier // ........
// De reporturl hoort OK terug te geven aan Targetpay.
die( "OK" ); }else{
die("IP address not correct... This call is not from Targetpay"); }
}
function httpGetRequest($url){
$ch = curl_init( $url );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ; $strResponse = curl_exec($ch);
curl_close($ch);
if ( $strResponse === false )
die("Could not fetch response " . $url ); return $strResponse;
} ?>
Wellicht dat hier enkele PHP mensen zitten die het wel voor elkaar krijgen? Zo ja, mag ik beroep op jullie kennis doen? :-)
Alvast bedankt!
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic