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: 760 $* @filesource**//**** @package php_share* @author Lars Tiefland <tiefland@weban.de>* @copyright 2010 Webagentur Niewerth*/// SVN: $Id: saferpay.php 760 2011-10-12 14:04:01Z tiefland $require_once "creditcard.interface.php";class saferpay implements creditcard{protected $ini;function __construct(){if ( !is_array( $_SESSION["INI"] ) ){$this->ini = $GLOBALS["INI"];}else{$this->ini = $_SESSION["INI"];}}function getCreditcardStatus( $bestellId ){$summe = getBasketSumme() * 100;if ( $_SESSION["brutto"] == true && $this->ini["netto_preise"] ==1 ){$summe = round( getBasketSummeBrutto(), 2 ) * 100;}$b_url = $this->ini["absoluteURL"];$b_url_s = ( $this->ini["ssl_buy"] ) ? str_replace( "http://","https://", $b_url ) : $b_url;$links = "SUCCESSLINK=" . $b_url_s . "/accept_$bestellId.html";$links .= "&BACKLINK=" . $b_url_s . "/cancel_$bestellId.html";$links .= "&FAILLINK=" . $b_url_s . "/decline_$bestellId.html";$orderid = "Bestellung: " . $bestellId; // The length is limited to 12 characters.$btext = urlencode( htmlentities( "SaferPay Einkauf von " . $_SESSION['Persdata']['Vorname'] ." " . $_SESSION['Persdata']['Nachname'] ) );$url ="https://www.saferpay.com/hosting/CreatePayInit.asp?AMOUNT=" .$summe . "&ORDERID=$bestellId&CURRENCY=EUR&DESCRIPTION=$btext&ACCOUNTID=" .$this->ini["kreditkarte"]["zugang"] . "&" . $links;$c = file_get_contents( $url );if ( strpos( $c, "DATA" ) !== false ){$erg = '<form action="' . $c .'" method="post" id="zahlung" name="creditcard"><input type="submit" value="per Kreditkarte bezahlen" style="cursor:pointer;" /></form>';}else{$_SESSION["zahlarten"]["kreditkarte"] = false;$ret["error"] = true;$erg = $this->_getMsg( $ret, "init_fehler", $bestellId );}return $erg;}function getCreditCardReturnStatus( $bestellId ){$table = ( $this->ini["dbConnect"]["order_db"] ) ? $this->ini["dbConnect"]["order_db"] ."." : "";$table .= "Bestellung";$query = "SELECT Bemerkung FROM $table WHERE id=$bestellId";$res = mysql_query( $query, $GLOBALS["order_dbh"] );$row = mysql_fetch_assoc( $res );$bemerkung = $row["Bemerkung"];switch ( $_GET["action"] ){case "cancel":$res = false;$bemerkung .="Die Zahlung über saferpay wurde vom Kunden am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr abgebrochen!\n";$kk_info["code"] = "";$kk_info["status"] = "abgebrochen";break;case "accept":$len = strpos( $_SERVER['QUERY_STRING'], "&DATA=" ) + 1;$query = substr( $_SERVER['QUERY_STRING'], $len );$url ="https://www.saferpay.com/hosting/VerifyPayConfirm.asp?$query";$c = file_get_contents( $url );if ( strpos( $c, "ID" ) !== false ){$start = strpos( $c, "ID=" );$len = strpos( $c, "&TOKEN=" );$bemerkung = $row["Bemerkung"];$bemerkung .="Die Zahlung wurde von der Kreditkartenorganisation am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr genehmigt!\n";$kk_info["code"] = substr( $c, $start, $len - $start );$kk_info["status"] = "offen";if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["cc_accepted"];} elseif ( $_SESSION["languageException"] ){}else{$msg ="Ihre Kreditkartenorganisation hat die erfolgreiche Bezahlung bestätigt!";}}break;case "decline":$res = false;$kk_info["code"] = "";$kk_info["status"] = "abgelehnt";$bemerkung .="Die Zahlung wurde von der Kreditkartenorganisation am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr abgelehnt!\n";break;}$kk_info_str = serialize( $kk_info );$query = "UPDATE$tableSETBemerkung='$bemerkung',kk_info='$kk_info_str'WHEREid=$bestellId";mysql_query( $query, $GLOBALS["order_dbh"] );$ret = array( "error" => !$res );if ( $ret["error"] ){$msg = $this->_getMsg( $ret, $kk_info["status"], $bestellId );}$ret["meld"] = $msg;return $ret;}function genCheckSum( $src ){switch ( $this->ini["kreditkarte"]["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;}private function _getMsg( $ret, $status, $bestellId ){if ( USE_TRANSLATION2 === true ){if ( $this->ini["change_order"] ){$abschluss = $GLOBALS["langstrings"]["buy"]["click_button"];}else{$abschluss = $GLOBALS["langstrings"]["buy"]["cancel_order"];}} elseif ( $_SESSION["languageException"] ){if ( $this->ini["change_order"] ){$abschluss ="Click on the button to choose an other payment method.";}else{$abschluss = "Therefore we will now cancel your order.";}}else{if ( $this->ini["change_order"] ){$abschluss ="Klicken Sie auf den Button, um eine andere Zahlweise auszuwählen.";}else{$abschluss ="Deshalb werden wir nun Ihre Bestellung nun stornieren.";}}switch ( $status ){case "init_fehler";if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["saferpay_not_avail"];} elseif ( $_SESSION["languageException"] ){$msg ="Unfourtunately the payment via Saferpay is not available at the moment. ";}else{$msg ="Leider steht die Zahlung über Saferpay zur Zeit nicht zur Verfügung. ";}break;case "abgebrochen":if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["order_canceled"];} elseif ( $_SESSION["languageException"] ){$msg = "You have canceled the payment. ";}else{$msg = "Sie haben die Zahlung abgebrochen. ";}break;case "abgelehnt":if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["cc_declined"];} elseif ( $_SESSION["languageException"] ){$msg ="Unfortunately your creditcard organization refused the payment. ";}else{$msg ="Leider hat Ihre Kreditkartenorganisation die Bezahlung verweigert. ";}break;case "unklar":if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["cc_excepted"];} elseif ( $_SESSION["languageException"] ){$msg ="The status of the payment was defined as unclear by your credit card organization. ";}else{$msg ="Der Status der zahlung wurde von der Kreditkartenorganisation als unklar definiert. ";}break;}$msg .= $abschluss;if ( $ret["error"] && $this->ini["change_order"] ){$msg .= '<form method="post" action="/"><input type="hidden" name="best_id" value="' . $bestellId .'"><input type="hidden" name="email" value="' . $_SESSION["SHOP"]["buy"]["Persdata"]["email"] .'"><input type="hidden" name="mode" value="change_order"><input type="submit" value="Zahlart / Bestellung ändern"></form>';}return $msg;}}?>