Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
<?php
2
 
3
    /**
4
     * @package   php_share
5
     * @author    Lars Tiefland <tiefland@weban.de>
6
     * @copyright 2010 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
8
     * @version   $Rev: 759 $
9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * @package   php_share
16
     * @author    Lars Tiefland <tiefland@weban.de>
17
     * @copyright 2010 Webagentur Niewerth
18
     */
19
 
20
    // SVN: $Id: paypal.php 759 2011-10-12 14:02:14Z tiefland $
21
 
22
    require_once "creditcard.interface.php";
23
 
24
    class paypal implements creditcard
25
    {
26
        protected $ini;
27
 
28
        function __construct()
29
        {
30
            if ( !is_array( $_SESSION["INI"] ) )
31
            {
32
                $this->ini = $GLOBALS["INI"];
33
            }
34
            else
35
            {
36
                $this->ini = $_SESSION["INI"];
37
            }
38
        }
39
        function getCreditcardStatus( $bestellId )
40
        {
41
            $summe = getBasketSumme();
42
            if ( $_SESSION["brutto"] == true && $this->ini["netto_preise"] ==
43
                1 )
44
            {
45
                $summe = getBasketSummeBrutto();
46
            }
47
            $prot = "http";
48
            if ( $this->ini["ssl_buy"] == 1 )
49
            {
50
                $prot = "https";
51
            }
52
            if ( isset( $this->ini["paypal"]["aktiv"] ) && $this->ini["paypal"]["email"] )
53
            {
54
                $email = $this->ini["paypal"]["email"];
55
                $out = '
56
                    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="paypal" target="_top" id="zahlung">Wenn Sie nicht automatisch weitergeleitet werden, dr&uuml;cken Sie bitte auf den PayPal-Button.<br>
57
                        <br>
58
                        <input type="hidden" name="cmd" value="_xclick">
59
                        <input type="hidden" name="business" value="' . $email .
60
                    '">
61
                        <input type="hidden" name="currency_code" value="EUR">
62
                        <input type="hidden" name="cancel_return" value="' .
63
                    $prot . '://' . $_SERVER["SERVER_NAME"] .
64
                    '/paypal_cancel_' . $bestellId . '.html">
65
                        <input type="hidden" name="return" value="' . $prot .
66
                    '://' . $_SERVER["SERVER_NAME"] . '/paypal_accept_' . $bestellId .
67
                    '.html">
68
                        <input type="hidden" name="amount" value="' . $summe .
69
                    '">
70
                        <input type="hidden" name="item_name" value="Ihre Bestellung bei ' .
71
                    $_SERVER["SERVER_NAME"] . ' (BestNr.: ' . $bestellId .
72
                    ')">
73
                        <input type="hidden" name="custom" value="' . $bestellId .
74
                    '" />
75
                        <br>
76
                        <input style="cursor: pointer;" type="image" name="submit" value="Jetzt mit PayPal bezahlen!" src="/images/webelemente/versand_paypal.jpg" alt="Jetzt mit PayPal bezahlen!">
77
                    </form>
78
                ';
79
 
80
                return $out;
81
            }
82
            return false;
83
        }
84
 
85
        function getCreditCardReturnStatus( $bestellId )
86
        {
87
            $table = ( $this->ini["dbConnect"]["order_db"] ) ? $this->ini["dbConnect"]["order_db"] .
88
                "." : "";
89
            $table .= "Bestellung";
90
            $query = "SELECT
91
                    Bemerkung
92
                FROM
93
                    $table
94
                WHERE
95
                    id=$bestellId
96
            ";
97
            $res = mysql_query( $query, $GLOBALS["order_dbh"] );
98
            $row = mysql_fetch_assoc( $res );
99
            $bemerkung = $row["Bemerkung"];
100
 
101
            switch ( $_GET["action"] )
102
            {
103
                case "cancel":
104
                    $res = false;
105
                    $bemerkung .=
106
                        "Die Zahlung per Paypal wurde vom Kunden am " . date( "d.m.Y" ) .
107
                        " um " . date( "H:i" ) . " Uhr abgebrochen!\n";
108
                    $status = "abgebrochen";
109
                    break;
110
                case "accept":
111
                    $res = true;
112
                    $bemerkung .= "Die Zahlung wurde von Paypal am " . date( "d.m.Y" ) .
113
                        " um " . date( "H:i" ) . " Uhr genehmigt!\n";
114
                    $res = true;
115
                    if ( USE_TRANSLATION2 === true )
116
                    {
117
                        $msg = $GLOBALS["langstrings"]["buy"]["paypal_accepted"];
118
                    } elseif ( $_SESSION["languageException"] )
119
                    {
120
                        $msg = "Paypal confirmed the successful payment";
121
                    }
122
                    else
123
                    {
124
                        $msg =
125
                            "Paypal hat die erfolgreiche Bezahlung best&auml;tigt!";
126
                    }
127
                    break;
128
            }
129
            $query = "
130
                UPDATE
131
                    $table
132
                SET
133
                    Bemerkung='$bemerkung'
134
                WHERE
135
                    id=$bestellId
136
            ";
137
            mysql_query( $query, $GLOBALS["order_dbh"] );
138
            $ret = array( "error" => !$res );
139
            if ( $ret["error"] )
140
            {
141
                $msg = $this->_getMsg( $ret, $status, $bestellId );
142
            }
143
            $ret["meld"] = $msg;
144
            return $ret;
145
        }
146
        function genCheckSum( $src )
147
        {
148
            switch ( $this->ini["kreditkarte"]["sha_algo"] )
149
            {
150
                case "sha512":
151
                    $data = hash( "sha512", $src );
152
                    break;
153
                case "sha256":
154
                    $data = hash( "sha256", $src );
155
                    break;
156
                case "sha1":
157
                default:
158
                    $data = sha1( $src );
159
                    break;
160
            }
161
            return $data;
162
        }
163
        private function _getMsg( $ret, $status, $bestellId )
164
        {
165
            if ( USE_TRANSLATION2 === true )
166
            {
167
                if ( $this->ini["change_order"] )
168
                {
169
                    $abschluss = $GLOBALS["langstrings"]["buy"]["click_button"];
170
                }
171
                else
172
                {
173
                    $abschluss = $GLOBALS["langstrings"]["buy"]["cancel_order"];
174
                }
175
            } elseif ( $_SESSION["languageException"] )
176
            {
177
                if ( $this->ini["change_order"] )
178
                {
179
                    $abschluss =
180
                        "Click on the button to choose an other payment method.";
181
                }
182
                else
183
                {
184
                    $abschluss = "Therefore we will now cancel your order.";
185
                }
186
            }
187
            else
188
            {
189
                if ( $this->ini["change_order"] )
190
                {
191
                    $abschluss =
192
                        "Klicken Sie auf den Button, um eine andere Zahlweise auszuwählen.";
193
                }
194
                else
195
                {
196
                    $abschluss =
197
                        "Deshalb werden wir nun Ihre Bestellung nun stornieren.";
198
                }
199
            }
200
            switch ( $status )
201
            {
202
                case "abgebrochen":
203
                    if ( USE_TRANSLATION2 === true )
204
                    {
205
                        $msg = $GLOBALS["langstrings"]["buy"]["order_canceled"];
206
                    } elseif ( $_SESSION["languageException"] )
207
                    {
208
                        $msg = "You have canceled the payment. ";
209
                    }
210
                    else
211
                    {
212
                        $msg = "Sie haben die Zahlung abgebrochen. ";
213
                    }
214
                    break;
215
            }
216
            $msg .= $abschluss;
217
            if ( $ret["error"] && $this->ini["change_order"] )
218
            {
219
                $msg .= '
220
                    <form method="post" action="/">
221
                        <input type="hidden" name="best_id" value="' . $bestellId .
222
                    '">
223
                        <input type="hidden" name="email" value="' . $_SESSION["SHOP"]["buy"]["Persdata"]["email"] .
224
                    '">
225
                        <input type="hidden" name="mode" value="change_order">
226
                        <input type="submit" value="Zahlart / Bestellung &auml;ndern">
227
                    </form>
228
                ';
229
            }
230
            return $msg;
231
        }
232
    }
233
?>