Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** @package php_share* @author Lars Tiefland <tiefland@weban.de>* @copyright 2010 Webagentur Niewerth* @license propietary http://www.weban.de* @version $Rev: 643 $* @filesource**//**** @package php_share* @author Lars Tiefland <tiefland@weban.de>* @copyright 2010 Webagentur Niewerth*/// SVN: $Id: ideal.php 643 2011-08-29 08:27:14Z tiefland $require_once "creditcard.interface.php";class ideal implements creditcard{protected $ini;function __construct(){if ( !is_array( $_SESSION["INI"] ) ){$this->ini = $GLOBALS["INI"];}else{$this->ini = $_SESSION["INI"];}}function getCreditcardStatus( $bestellId ){$sha_arr = array();$sha = "";define( "ZUGANG", $this->ini["ideal"]["zugang"] );define( "SECRET", $this->ini["ideal"]["secret"] );$srv = "ideal";if ( $this->ini["ideal"]["test"] == 1 ){$srv = "idealtest";}$srv .= '.rabobank.nl';$url = 'https://' . $srv . '/ideal/mpiPayInitRabo.do';$title = "Bestelling : " . $bestellId;$title = htmlentities( $title );$name = $_SESSION["SHOP"]["buy"]["Persdata"]["Vorname"] . " " .$_SESSION["SHOP"]["buy"]["Persdata"]["Nachname"];$b_url = $this->ini["absoluteURL"];$b_url_s = ( $this->ini["ssl_buy"] ) ? str_replace( "http://","https://", $b_url ) : $b_url;$cancelurl = $b_url_s . "/cancel_" . $bestellId . "_ideal.html";$accepturl = $b_url_s . "/accept_" . $bestellId . "_ideal.html";$exceptionurl = $b_url_s . "/except_" . $bestellId ."_ideal.html";$email = $_SESSION["SHOP"]["buy"]["Persdata"]["email"];$summe = round( getBasketSumme(), 2 ) * 100;if ( $_SESSION["brutto"] == true && $this->ini["netto_preise"] ==1 ){$summe = round( getBasketSummeBrutto(), 2 ) * 100;}$until = date( "Y-m-d\TH:i:s\Z", strtotime( "+10 minutes" ) );$sha_arr[] = SECRET;$sha_arr[] = ZUGANG;$sha_arr[] = 0;$sha_arr[] = $summe;$sha_arr[] = $bestellId;$sha_arr[] = "ideal";$sha_arr[] = $until;$sha_arr[] = 1;$sha_arr[] = $title;$sha_arr[] = 1;$sha_arr[] = $summe;//SHA-String bauen$sha = implode( "", $sha_arr );$clean_shaString = HTML_entity_decode( $sha );$not_allowed = array( "\t", "\n", "\r", " " );$clean_shaString = str_replace( $not_allowed, "", $clean_shaString );$shaSign = $this->genCheckSum( $clean_shaString );$erg = '<form method="post" action="' . $url .'" id="zahlung" name="ideal"><input type="hidden" name="merchantID" value="' . ZUGANG .'"><input type="hidden" name="subID" value="0"><input type="hidden" name="amount" value="' . $summe .'" ><input type="hidden" name="purchaseID" value="' . $bestellId .'"><input type="hidden" name="language" value="nl"><input type="hidden" name="currency" value="EUR"><input type="hidden" name="description" value="' . $title .'"><input type="hidden" name="hash" value="' . $shaSign .'"><input type="hidden" name="paymentType" value="ideal"><input type="hidden" name="validUntil" value="' . $until .'"><input type="hidden" name="itemNumber1" value="1"><input type="hidden" name="itemDescription1" value="' .$title . '"><input type="hidden" name="itemQuantity1" value="1"><input type="hidden" name="itemPrice1" value="' . $summe .'"><input type="hidden" name="urlCancel" value="' . $cancelurl .'"><input type="hidden" name="urlSuccess" value="' . $accepturl .'"><input type="hidden" name="urlError" value="' . $exceptionurl .'"><input type="submit" value="Bevestig bestelling" id=submit2 name=submit2></form>';return $erg;}function getCreditcardReturnStatus( $bestellId ){$table = ( $this->ini["dbConnect"]["order_db"] ) ? $this->ini["dbConnect"]["order_db"] ."." : "";$table .= "Bestellung";if ( $_GET["action"] ){$query = "SELECT Bemerkung FROM $table WHERE id=$bestellId";$res = mysql_query( $query );$row = mysql_fetch_assoc( $res );$bemerkung = $row["Bemerkung"];}switch ( $_GET["action"] ){case "cancel":// Kreditkartenzahlung$bemerkung .= "Die Zahlung wurde vom Kunden am " . date( "d.m.Y" ) ." um " . date( "H:i" ) . " Uhr abgebrochen!\n";$query = "UPDATE $table SET Bemerkung='$bemerkung' WHERE id=$bestellId";$res = mysql_query( $query );if ( $_SESSION["languageException"] ){$msg ="You have canceled the payment. Therefore we will now cancel your order.";}else{$msg ="Leider haben Sie die Zahlung abgebrochen. Daher werden wir Ihre Bestellung nun stornieren.";}break;case "accept":// Kreditkartenzahlung$bemerkung .="Die Zahlung wurde von der Kreditkartenorganisation am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr genehmigt!\n";$kk_info["code"] = "";$kk_info["status"] = "offen";$kk_info = serialize( $kk_info );$query = "UPDATE $table SET Bemerkung='$bemerkung', kk_info='$kk_info' WHERE id=$bestellId";$res = mysql_query( $query );if ( $_SESSION["languageException"] ){$msg ="Your credit card organization confirmed the successful payment";}else{$msg ="Ihre Kreditkartenorganisation hat die erfolgreiche Bezahlung bestätigt!";}break;case "decline":$bemerkung .="Die Zahlung wurde von der Kreditkartenorganisation am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr abgelehnt!\n";$query = "UPDATE $table SET Bemerkung='$bemerkung' WHERE id=$bestellId";$res = mysql_query( $query );if ( $_SESSION["languageException"] ){$msg ="Unfortunately your credit card organization refused the payment. Therefore we will now cancel your order.";}else{$msg ="Leider hat Ihre Kreditkartenorganisation die Bezahlung verweigert. Daher werden wir Ihre Bestellung nun stornieren.";}break;case "except":$bemerkung .="Der Status der Zahlung wurde von der Kreditkartenorganisation am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr als unklar definiert!\n";$query = "UPDATE $table SET Bemerkung='$bemerkung' WHERE id=$bestellId";$res = mysql_query( $query );if ( $_SESSION["languageException"] ){$msg ="The status of the payment was defined as unclear by your credit card organization. Therefore we will cancel your order in 7 days.";}else{$msg ="Der Status der zahlung wurde von der Kreditkartenorganisation als unklar definiert. Daher werden wir Ihre Bestellung in 7 Tagen stornieren.";}break;}return array( "error" => !$res, "meld" => $msg );}function genCheckSum( $src ){switch ( $this->ini["ideal"]["sha_algo"] ){case "sha512":$data = hash( "sha512", $src );break;case "sha256":$data = hash( "sha256", $src );break;case "sha1":default:$data = sha1( $src );break;}return $data;}}?>