Hallo,
ik sukkel even met targetpay.com hun betaalsysteem
ik heb verscheidende dingen geprobeerd
soms lukt het half soms niet
hun code ( bij mister cash) is:
PHP
<?php
$rtlo=xxxxx;
$description="Mister Cash Example";
$amount=50;
$returnurl="http://www.uwsite.nl/MisterCashExample.php";
$reporturl="http://www.uwsite.nl/MisterCashExample.php";
// Customer returns to the returnurl, now we check the transaction status
if( isset($_GET['trxid']) ){
// 000000 OK means Status is successful. We deliver the product
if( ($status = CheckReturnurl( $rtlo, $_GET['trxid'] )) == "000000 OK" ){
// Update the orderinfo to success
die( "Status was Successful...Thank you for your order" );
}
//In all other cases do not delever(yet)
// Update the orderinfo to failed
else die( $status );
} elseif ( isset($_POST['trxid']) && isset($_POST['amount']) ){
// The reporturl is called from the Targetpay server
HandleReporturl( $_POST['trxid'], $_POST['amount'],$_POST['status'] );
} else{
// Start of the transaction
// We redirect to Mister Cash via Clearpark
$redirecturl = StartTransaction( $rtlo, $description, $amount, $returnurl, $reporturl );
header ("Location: ".$redirecturl);
die();
}
// Paragraph 2. Request redirect URL to Mister Cash payment screen
function StartTransaction( $rtlo, $description, $amount, $returnurl, $reporturl){
$url= "https://www.targetpay.com/mrcash/start?".
"rtlo=".$rtlo.
"&description=".urlencode(substr($description,0,32)).
"&amount=".$amount.
"&userip=".urlencode($_SERVER['REMOTE_ADDR']).
"&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];
// You may add the trxid to your orderinfo here
if( $responsetype[0] == "000000" ) return $aResponse[1];
else die($aResponse[0]);
}
// Paragraph 3. Request status
function CheckReturnurl($rtlo, $trxid){
$once=1;
$test=0; // Set to 1 for testing as described in paragraph 1.3
$url= "https://www.targetpay.com/mrcash/check?".
"rtlo=".$rtlo.
"&trxid=".$trxid.
"&once=".$once.
"&test=".$test;
return httpGetRequest($url);
}
// Handler for the reporturl as described in paragrapg 2.1
// Update your your orderstatus and deliver the product if $status = "000000 OK"
function HandleReporturl($trxid, $amount, $status ){
if( substr($_SERVER['REMOTE_ADDR'],0,10) == "89.184.168" ){
// Update your orderinfo status here.
//......
//reporturl should return OK to 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;
}
?>
Toon Meer
dus wat ik ervan begrijp is dat je rltoo moet invullen ( hier doe ik het niet)
en de amount
maar moet geheel dat script worden opgeslaan bij bv betaal.php?
en dus bij returnurl die link geven?
en bij reporturl moet ik dus laten gaan nara bv geheim.php?
en hoe kan ik ervoor zorgen dat de id van een lid wordt meegegeven en dus door de report wordt meegegeven?
en volgens mij moet onderstaande stukje code op geheim.php staan?
PHP
function HandleReporturl($trxid, $amount, $status ){
if( substr($_SERVER['REMOTE_ADDR'],0,10) == "89.184.168" ){
// Update your orderinfo status here.
//......
//reporturl should return OK to 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;
}
Toon Meer
dus mijn vraag is hoe doet ik dit ? zodat ik geen fout zou maken?
ik hoop dat jullie mij verder helpen, zodat ik dan kan verdre uitproberen.
Mvg,
T.Aaron