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: acceptance.php 760 2011-10-12 14:04:01Z tiefland $require_once "creditcard.interface.php";class acceptance implements creditcard{protected $ini;function __construct(){if ( !is_array( $_SESSION["INI"] ) ){$this->ini = $GLOBALS["INI"];}else{$this->ini = $_SESSION["INI"];}}function getCreditcardStatus( $bestellId ){switch ( $this->ini["kreditkarte"]["mode"] ){case "direct":$operation = "SAL";break;case "auth":default:$operation = "RES";break;}$sha_arr = array();$sha = "";define( "PSPID", $this->ini["kreditkarte"]["zugang"] );define( "SECRET", $this->ini["kreditkarte"]["secret"] );if ( USE_TRANSLATION2 === true ){$title = $GLOBALS["langstrings"]["buy"]["your_order_at"];} elseif ( $_SESSION["languageException"] ){$title = "Your order at ";}else{$title = "Ihre Bestellung bei ";}$title .= $_SERVER["SERVER_NAME"];$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 . ".html";$declineurl = $b_url_s . "/decline_" . $bestellId . ".html";$accepturl = $b_url_s . "/accept_" . $bestellId . ".html";$exceptionurl = $b_url_s . "/except_" . $bestellId . ".html";$email = $_SESSION["SHOP"]["buy"]["Persdata"]["email"];$summe = round( getBasketSummeBrutto(), 2 ) * 100;switch ( $_SESSION["sprache"] ){case "uk":$locale = "en_US";break;default:$locale = "de_DE";break;}$currency = $_SESSION["real_currency"];if ( !$currency ){$currency = "EUR";}switch ( $this->ini["kreditkarte"]["version"] ){case "1":$erg = '<form method="post" action="https://secure.paytool.de/ncol/prod/orderstandard.asp" id="zahlung" name="creditcard"><input type="hidden" name="PSPID" value="' .PSPID . '"><input type="hidden" name="orderID" value="' . $bestellId .'"><input type="hidden" name="amount" value="' . $summe .'"><input type="hidden" name="currency" value="' .$currency . '"><input type="hidden" name="language" value="' .$locale . '"><!-- lay out information --><input type="hidden" name="TITLE" value="' . $title .'"><input type="hidden" name="LOGO" value="logo.gif"><!-- post-payment redirection --><input type="hidden" name="accepturl" value="' .$accepturl . '"><input type="hidden" name="declineurl" value="' .$declineurl . '"><input type="hidden" name="exceptionurl" value="' .$exceptionurl . '"><input type="hidden" name="cancelurl" value="' .$cancelurl . '"><!-- miscellanous --><input type="hidden" name="homeurl" value="' . $b_url .'"><input type="hidden" name="catalogurl" value="' .$b_url . '"><input type="hidden" name="CN" value="' . $name .'"><input type="hidden" name="EMAIL" value="' . $email .'"><input type="hidden" name="PM" value=""><input type="hidden" name="BRAND" value=""><input type="hidden" name="ownerZIP" value=""><input type="hidden" name="owneraddress" value=""><input type="hidden" name="SHASign" value=""><input type="hidden" name="Alias" value=""><input type="hidden" name="AliasUsage" value=""><input type="hidden" name="OPERATION" value="' .$operation . '"><input type="hidden" name="COM" value=""><input type="hidden" name="COMPLUS" value=""><input type="hidden" name="PARAMPLUS" value=""><input type="hidden" name="USERID" value=""><input type="submit" value="per Kreditkarte bezahlen" id="submit2" name="submit2"></form>';break;case "2":$sha = $bestellId . $summe . "EUR" . PSPID . SECRET;$shaSign = sha1( $sha );$erg = '<form method="post" action="https://secure.paytool.de/ncol/prod/orderstandard.asp" id="zahlung" name="creditcard"><input type="hidden" name="PSPID" value="' .PSPID . '"><input type="hidden" name="orderID" value="' . $bestellId .'"><input type="hidden" name="amount" value="' . $summe .'"><input type="hidden" name="currency" value="' .$currency . '"><input type="hidden" name="language" value="' .$locale . '"><!-- lay out information --><input type="hidden" name="TITLE" value="' . $title .'"><input type="hidden" name="LOGO" value="logo.gif"><!-- post-payment redirection --><input type="hidden" name="accepturl" value="' .$accepturl . '"><input type="hidden" name="declineurl" value="' .$declineurl . '"><input type="hidden" name="exceptionurl" value="' .$exceptionurl . '"><input type="hidden" name="cancelurl" value="' .$cancelurl . '"><!-- miscellanous --><input type="hidden" name="homeurl" value="' . $b_url .'"><input type="hidden" name="catalogurl" value="' .$b_url . '"><input type="hidden" name="CN" value="' . $name .'"><input type="hidden" name="EMAIL" value="' . $email .'"><input type="hidden" name="PM" value=""><input type="hidden" name="BRAND" value=""><input type="hidden" name="ownerZIP" value=""><input type="hidden" name="owneraddress" value=""><input type="hidden" name="SHASign" value="' . $shaSign .'"><input type="hidden" name="Alias" value=""><input type="hidden" name="AliasUsage" value=""><input type="hidden" name="OPERATION" value="' .$operation . '"><input type="hidden" name="COM" value=""><input type="hidden" name="COMPLUS" value=""><input type="hidden" name="PARAMPLUS" value=""><input type="hidden" name="USERID" value=""><input type="submit" value="per Kreditkarte bezahlen" id="submit2" name="submit2"></form>';break;case "3":$sha_arr[] = "ACCEPTURL=" . $accepturl;$sha_arr[] = "AMOUNT=" . $summe;$sha_arr[] = "CANCELURL=" . $cancelurl;$sha_arr[] = "CATALOGURL=" . $url;$sha_arr[] = "CN=" . $name;$sha_arr[] = "CURRENCY=" . $currency;$sha_arr[] = "DECLINEURL=" . $declineurl;$sha_arr[] = "EMAIL=" . $email;$sha_arr[] = "EXCEPTIONURL=" . $exceptionurl;$sha_arr[] = "HOMEURL=" . $url;$sha_arr[] = "LANGUAGE=de_DE";$sha_arr[] = "OPERATION=" . $operation;$sha_arr[] = "ORDERID=" . $bestellId;$sha_arr[] = "PSPID=" . PSPID;$sha_arr[] = "TITLE=" . $title;//SHA-String bauen$sha = implode( SECRET, $sha_arr ) . SECRET;$shaSign = sha1( $sha );$erg = '<form method="post" action="https://secure.paytool.de/ncol/prod/orderstandard.asp" id="zahlung" name="creditcard"><input type="hidden" name="PSPID" value="' .PSPID . '"><input type="hidden" name="ORDERID" value="' . $bestellId .'"><input type="hidden" name="AMOUNT" value="' . $summe .'"><input type="hidden" name="CURRENCY" value="' .$currency . '"><input type="hidden" name="HOMEURL" value="' . $b_url .'"><input type="hidden" name="CATALOGURL" value="' .$b_url . '"><input type="hidden" name="CN" value="' . $name .'"><input type="hidden" name="EMAIL" value="' . $email .'"><!-- post-payment redirection --><input type="hidden" name="ACCEPTURL" value="' .$accepturl . '"><input type="hidden" name="CANCELURL" value="' .$cancelurl . '"><input type="hidden" name="DECLINEURL" value="' .$declineurl . '"><input type="hidden" name="EXCEPTIONURL" value="' .$exceptionurl . '"><!-- lay out information --><input type="hidden" name="LANGUAGE" value="' .$locale . '"><input type="hidden" name="TITLE" value="' . $title .'"><!-- miscellanous --><input type="hidden" name="OPERATION" value="' .$operation . '"><input type="hidden" name="SHASign" value="' . $shaSign .'"><input type="submit" value="per Kreditkarte bezahlen" id="submit2"></form>';break;case "4":$sha_arr[] = "ACCEPTURL=" . $accepturl;$sha_arr[] = "AMOUNT=" . $summe;$sha_arr[] = "CANCELURL=" . $cancelurl;$sha_arr[] = "CATALOGURL=" . $b_url;$sha_arr[] = "CN=" . $name;$sha_arr[] = "CURRENCY=" . $currency;$sha_arr[] = "DECLINEURL=" . $declineurl;$sha_arr[] = "EMAIL=" . $email;$sha_arr[] = "EXCEPTIONURL=" . $exceptionurl;$sha_arr[] = "HOMEURL=" . $b_url;$sha_arr[] = "LANGUAGE=" . $locale;$sha_arr[] = "OPERATION=" . $operation;$sha_arr[] = "ORDERID=" . $bestellId;$sha_arr[] = "PSPID=" . PSPID;$sha_arr[] = "TITLE=" . $title;//SHA-String bauen$sha = implode( SECRET, $sha_arr ) . SECRET;$shaSign = $this->genCheckSum( $sha );$erg = '<form method="post" action="https://secure.paytool.de/ncol/prod/orderstandard.asp" id="zahlung" name="creditcard"><input type="hidden" name="PSPID" value="' .PSPID . '"><input type="hidden" name="ORDERID" value="' . $bestellId .'"><input type="hidden" name="AMOUNT" value="' . $summe .'"><input type="hidden" name="CURRENCY" value="' .$currency . '"><input type="hidden" name="HOMEURL" value="' . $b_url .'"><input type="hidden" name="CATALOGURL" value="' .$b_url . '"><input type="hidden" name="CN" value="' . $name .'"><input type="hidden" name="EMAIL" value="' . $email .'"><!-- post-payment redirection --><input type="hidden" name="ACCEPTURL" value="' .$accepturl . '"><input type="hidden" name="CANCELURL" value="' .$cancelurl . '"><input type="hidden" name="DECLINEURL" value="' .$declineurl . '"><input type="hidden" name="EXCEPTIONURL" value="' .$exceptionurl . '"><!-- lay out information --><input type="hidden" name="LANGUAGE" value="' .$locale . '"><input type="hidden" name="TITLE" value="' . $title .'"><!-- miscellanous --><input type="hidden" name="OPERATION" value="' .$operation . '"><input type="hidden" name="SHASign" value="' . $shaSign .'"><input type="submit" value="per Kreditkarte bezahlen" id="submit2"></form>';break;default:$erg = false;break;}return $erg;}function getCreditcardReturnStatus( $bestellId ){$sha = "";if ( $this->ini["kreditkarte"]["version"] == 4 ){/*admin_debug( $_SERVER["QUERY_STRING"] );admin_debug( $_GET );$data["ACCEPTANCE"] = "ACCEPTANCE=" . $_GET["ACCEPTANCE"];$data["AMOUNT"] = "AMOUNT=" . sprintf( "%.02f", $_GET["amount"] );$data["BRAND"] = "BRAND=" . $_GET["BRAND"];$data["CARDNO"] = "CARDNO=" . $_GET["CARDNO"];$data["CN"] = "CN=" . ( $_GET["CN"] );$data["CURRENCY"] = "CURRENCY=" . $_GET["currency"];$data["ED"] = "ED=" . $_GET["ED"];$data["IP"] = "IP=" . $_GET["IP"];if ( $_GET["NCERROR"] ){$data["NCERROR"] = "NCERROR=" . $_GET["NCERROR"];}else{$data["NCERROR"] = "NCERROR=0";}$data["ORDERID"] = "ORDERID=" . $_GET["orderID"];$data["PAYID"] = "PAYID=" . $_GET["PAYID"];$data["PM"] = "PM=" . $_GET["PM"];$data["STATUS"] = "STATUS=" . $_GET["STATUS"];$data["TRXDATE"] = "TRXDATE=" . $_GET["TRXDATE"];sort( $data );admin_debug( $data );define( "PSPID", $this->ini["kreditkarte"]["zugang"] );define( "SECRET", $this->ini["kreditkarte"]["secret"] );$sha = implode( SECRET, $data ) . SECRET;admin_debug( $sha );$shasign = strtoupper($this->genCheckSum( $sha ));admin_debug( $shasign );exit;*/}$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, $GLOBALS["order_dbh"] );$row = mysql_fetch_assoc( $res );$bemerkung = $row["Bemerkung"];}switch ( $_GET["action"] ){case "cancel":// Kreditkartenzahlung$bemerkung .="Die Zahlung über acceptance wurde vom Kunden am " .date( "d.m.Y" ) . " um " . date( "H:i" ) ." Uhr abgebrochen!\n";$kk_info["code"] = "";$kk_info["status"] = "abgebrochen";$res = false;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";$res = true;if ( USE_TRANSLATION2 === true ){$msg = $GLOBALS["langstrings"]["buy"]["cc_accepted"];} elseif ( $_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";$kk_info["code"] = "";$kk_info["status"] = "abgelehnt";$res = false;$_SESSION["zahlarten"]["kreditkarte"] = false;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";$kk_info["code"] = "";$kk_info["status"] = "unklar";$res = false;$_SESSION["zahlarten"]["kreditkarte"] = false;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 "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;}}if ( !function_exists( "getBasketSummeBrutto" ) ){/*** getBasketSummeBrutto()** @param integer $mwst* @return*/function getBasketSummeBrutto( $mwst = 19, $noVersand = false, $no_gutschein = false ){if ( $GLOBALS["INI"]["netto_preise"] == 1 ){$ret = getBasketSumme( $noVersand, $no_gutschein );if ( is_array( $ret ) ){$ret = $ret["total"];}$ret += getBasketSummeMWST( $mwst, $noVersand, $no_gutschein );}else{$ret = getBasketSumme( $noVersand, $no_gutschein );if ( is_array( $ret ) ){$ret = $ret["total"];}}return $ret;}}?>