changed git call from https to git readonly
[atutor.git] / mods / ecomm / include / payments.lib.php
1 <?php
2 /************************************************************************/
3 /* ATutor                                                                                                                               */
4 /************************************************************************/
5 /* Copyright (c) 2002-2010                                              */
6 /* Inclusive Design Institute                                           */
7 /* http://atutor.ca                                                     */
8 /* This program is free software. You can redistribute it and/or        */
9 /* modify it under the terms of the GNU General Public License          */
10 /* as published by the Free Software Foundation.                        */
11 /************************************************************************/
12
13 if (!defined('AT_INCLUDE_PATH')) { exit; }
14
15 /**
16 * Collects purchase information for PayPal -
17 * @access  public
18 * @param   int $payment_id              Payment Identifier generated by ATutor  
19 * @param   dbl $amount  the fee for the course
20 * @param   int $course_id               the numeric identifier for the course being paid for
21 * @return  $_POST data          Pruchase information sent to Paypal
22 */
23 function paypal_print_form($payment_id, $amount, $course_id) {
24         global $_config, $system_courses;
25         if($_config['ec_gateway'] == 'PayPal'){
26 ?>
27
28                 <form action="<?php echo $_config['ec_uri']; ?>" method="post">
29                         <input type="hidden" name="cmd" value="_xclick"/>
30                         <input type="hidden" name="business" value="<?php echo $_config['ec_vendor_id']; ?>"/>
31                         <input type="hidden" name="item_name" value="<?php echo htmlspecialchars($system_courses[$course_id]['title']); ?>"/>
32                         <input type="hidden" name="item_number" value="<?php echo $payment_id; ?>"/>
33                         <input type="hidden" name="amount" value="<?php echo $amount; ?>"/>
34                         <input type="hidden" name="page_style" value="Primary"/>
35                         <input type="hidden" name="notify_url" value="<?php echo AT_BASE_HREF; ?>mods/ecomm/response_ipn.php"/>
36                         <input type="hidden" name="no_shipping" value="0"/>
37                         <input type="hidden" name="return" value="<?php echo AT_BASE_HREF; ?>mods/ecomm/response_paypal_user.php"/>
38                         <input type="hidden" name="cancel_return" value="<?php echo AT_BASE_HREF; ?>mods/ecomm/response_paypal_user.php"/>
39                         <input type="hidden" name="no_note" value="1"/>
40                         <input type="hidden" name="currency_code" value="<?php echo $_config['ec_currency']; ?>"/>
41                         <input type="hidden" name="lc" value="CA"/>
42                         <input type="submit" border="0" name="submit" value="<?php echo _AT('ec_paybypaypal'); ?>"/>
43                         <img src="<?php echo $_base_path; ?>mods/ecomm/images/visa_42x27.gif" title="<?php echo _AT('ec_acceptvisa'); ?>" alt="<?php echo _AT('ec_acceptvisa'); ?>" align="middle" /> <img src="<?php echo $_base_path; ?>mods/ecomm/images/mc_42x27.gif" title="<?php echo _AT('ec_acceptmastercard'); ?>" alt="<?php echo _AT('ec_acceptmastercard'); ?>" align="middle" />
44                 </form>
45         
46         <?php
47         }
48 }
49
50 function paypal_authenticate_user_response() {
51         //don't do anything
52 }
53
54 function mirapay_print_form($payment_id, $amount, $course_id) {
55         global $_config;
56         if($_config['ec_gateway'] == 'MiraPay'){
57                 $mkey = md5($payment_id.$amount.$_config['ec_password']);
58         ?>
59                 <form method="post" action="<?php echo $_config['ec_uri']; ?>">
60                         <input type="hidden" name="MTID"        value="<?php echo $payment_id; ?>"/>
61                         <input type="hidden" name="Merchant_ID" value="<?php echo $_config['ec_vendor_id']; ?>"/>
62                         <input type="hidden" name="MKEY"        value="<?php echo $mkey; ?>"/>
63                         <input type="hidden" name="Amount1"     value="<?php echo $amount; ?>"/>
64                         <input type="hidden" name="SuccessURL"  value="<?php echo AT_BASE_HREF; ?>mods/ecomm/response_user.php"/>
65                         <input type="hidden" name="FailURL"     value="<?php echo AT_BASE_HREF; ?>mods/ecomm/response_user.php"/>
66                         <input type="hidden" name="Currency"    value="<?php echo $_config['ec_currency'];  ?>"/>
67                         <input type="submit" name="confirm" class="button" value="<?php echo _AT('ec_paybycredit'); ?>"/> 
68                         <img src="<?php echo $_base_path; ?>mods/ecomm/images/visa_42x27.gif" title="<?php echo _AT('ec_acceptvisa'); ?>" alt="<?php echo _AT('ec_acceptvisa'); ?>" align="middle" /> <img src="<?php echo $_base_path; ?>mods/ecomm/images/mc_42x27.gif" title="<?php echo _AT('ec_acceptmastercard'); ?>" alt="<?php echo _AT('ec_acceptmastercard'); ?>" align="middle" />
69                 </form>
70         <?php
71         }
72 }
73
74 function mirapay_authenticate_ipn() {
75         // nothing to do
76 }
77
78 function mirapay_authenticate_user_response( ) {
79         if (isset($_GET['MTID'], $_GET['Amount1'], $_GET['MiraID'], $_GET['Response'])) {
80                 global $_config, $msg;
81                 $response_hash = md5($_GET['MTID'] . $_GET['Amount1'] . $_GET['MiraID'] . $_GET['Response'] . $_config['ec_password']);
82                 if ($response_hash == $_GET['MKEY'] && !strcasecmp($_GET['Response'], 'APPROVED')) {
83                         approve_payment($_GET['MTID'], $_GET['MiraID']);
84                         $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');
85                 } else {
86                         $msg->addError('EC_PAYMENT_FAILED');
87                 }
88         }
89 }
90
91 function beanstream_print_form($payment_id, $amount, $course_id) {
92
93         global $_config, $db, $addslashes;
94         if($_config['ec_gateway'] == 'BeanStream'){
95         $mtid = mysql_insert_id($db);
96         $mkey = md5($mtid.$amount.$password);
97         $sql = "SELECT * from ".TABLE_PREFIX."members WHERE member_id = $_SESSION[member_id]";
98
99         $result = mysql_query($sql, $db);
100
101         while($row = mysql_fetch_assoc($result)){
102                                 $member['firstname'] = $row['first_name'];
103                                 $member['lastname'] = $row['last_name'];
104                                 $member['email'] = $row['email'];
105                                 //$member['organization'] = $row['organization'];
106                                 $member['address'] = $row['address'];
107                                 $member['postal'] = $row['postal'];
108                                 $member['province'] = $row['province'];
109                                 $member['city'] = $row['city'];
110                                 $member['telephone'] = $row['phone'];
111                                 $member['country'] = $row['country'];
112                         }
113         
114         $firstname = $addslashes($member['firstname']);
115         $lastname = $addslashes( $member['lastname']);
116         $email = $addslashes( $member['email']);
117         $address = $addslashes($member['address']);
118         $postal = $addslashes($member['postal']);
119         $telephone = $addslashes($member['telephone']);
120         $country = $addslashes($member['country']);
121         $province = $addslashes($member['province']);
122         $city = $addslashes($member['city']);
123         $payment_id = $_SESSION['course_title'];
124         ?>
125         <div style="float:left; border:thin solid black; padding:1em; -moz-border-radius:.5em;">
126         <form method="post" action="<?php echo $_config['ec_uri']; ?>">
127         <!-- stored  for history -->
128         <input type="hidden"  name="firstname" value="<?php echo $firstname; ?>">
129         <input type="hidden"  name="lastname" value="<?php echo $lastname; ?>">
130         <input type="hidden"  name="ordName" value="<?php echo $firstname.' '.$lastname; ?>">
131         <input type="hidden"  name="trnCardOwner" value="<?php echo $firstname.' '.$lastname; ?>">
132
133         <input type="hidden"  name="organization" value="<?php echo $organization; ?>">
134         
135         <?php 
136
137         if($address == ''){
138             $more_info = '<label for="address">'._AT('street_address').'</label>:<br /> <input type="text" value="" size="40" name="ordAddress1" id="address"><br />';
139         }else{ ?>
140                 <input type="hidden"  name="ordAddress1" value="<?php echo $address; ?>">
141         <?php } ?>
142         
143         <?php 
144         if($city == ''){
145             $more_info .= '<label for="city">'._AT('city').'</label>:<br /> <input type="text" value="" size="20" name="ordCity" id="city"><br />';
146         }else{ ?>
147                 <input type="hidden"  name="ordCity" value="<?php echo $city; ?>">
148         <?php } ?>
149         
150         <?php 
151             $more_info .= '<label for="provstate">'._AT('ec_province').'</label>:<br /> 
152                         <select name="ordProvince" id="provstate">      
153                         <optgroup label="">
154                         <option value="--">--choose--</option>
155                         <option value="--">Outside U.S./Canada</option>
156                         </optgroup>
157                         <optgroup label="Canadian Provinces">
158                         <option value="AB">Alberta</option>                                             
159                         <option value="BC">British Columbia</option>                                            
160                         <option value="MB">Manitoba</option>                                            
161                         <option value="NB">New Brunswick</option>
162                         <option value="NL">Newfoundland and Labrador</option>                                           
163                         <option value="NT">Northwest Territories</option>                                               
164                         <option value="NS">Nova Scotia</option>                                         
165                         <option value="NU">Nunavut</option>                                             
166                         <option value="ON">Ontario</option>                                             
167                         <option value="Z2">Other</option>                                               
168                         <option value="PE">Prince Edward Island</option>                                                
169                         <option value="QC">Quebec</option>                                              
170                         <option value="SK">Saskatchewan</option>                                                
171                         <option value="YT">Yukon</option>
172                         </optgroup>
173                         <optgroup label="U.S. States">                                          
174                         <option value="AL">Alabama</option>                                             
175                         <option value="AK">Alaska</option>                                              
176                         <option value="AS">American Samoa</option>
177                         <option value="AZ">Arizona</option>                                             
178                         <option value="AR">Arkansas</option>                                            
179                         <option value="CA">California</option>                                          
180                         <option value="CO">Colorado</option>                                    
181                         <option value="CT">Connecticut</option>                                         
182                         <option value="DE">Delaware</option>                                            
183                         <option value="DC">District of Columbia</option>                                                
184                         <option value="FM">Federated States of Micronesia</option>                                              
185                         <option value="FL">Florida</option>                                             
186                         <option value="GA">Georgia</option>                                             
187                         <option value="GU">Guam</option>                                                
188                         <option value="HI">Hawaii</option>                                              
189                         <option value="ID">Idaho</option>                                               
190                         <option value="IL">Illinois</option>                                            
191                         <option value="IN">Indiana</option>                                             
192                         <option value="IA">Iowa</option>                                                
193                         <option value="KS">Kansas</option>                                              
194                         <option value="KY">Kentucky</option>                                            
195                         <option value="LA">Louisiana</option>                                           
196                         <option value="ME">Maine</option>                                               
197                         <option value="MH">Marshall Islands</option>                                            
198                         <option value="MD">Maryland</option>                                            
199                         <option value="MA">Massachusetts</option>                                               
200                         <option value="MI">Michigan</option>                                            
201                         <option value="MN">Minnesota</option>                                           
202                         <option value="MS">Mississippi</option>                                         
203                         <option value="MO">Missouri</option>                                            
204                         <option value="MT">Montana</option>                                             
205                         <option value="NE">Nebraska</option>                                            
206                         <option value="NV">Nevada</option>                                              
207                         <option value="NH">New Hampshire</option>                                               
208                         <option value="NJ">New Jersey</option>                                          
209                         <option value="NM">New Mexico</option>                                          
210                         <option value="NY">New York</option>                                            
211                         <option value="NC">North Carolina</option>                                              
212                         <option value="ND">North Dakota</option>
213                         <option value="MP">Northern Mariana Islands</option>
214                         <option value="OH">Ohio</option>
215                         <option value="OK">Oklahoma</option>                                            
216                         <option value="OR">Oregon</option>                                              
217                         <option value="Z1">Other</option>                                               
218                         <option value="PW">Palau</option>                                               
219                         <option value="PA">Pennsylvania</option>                                                
220                         <option value="PR">Puerto Rico</option>                                         
221                         <option value="RI">Rhode Island</option>                                                
222                         <option value="SC">South Carolina</option>                                              
223                         <option value="SD">South Dakota</option>                                                
224                         <option value="TN">Tennessee</option>                                           
225                         <option value="TX">Texas</option>                                               
226                         <option value="UT">Utah</option>                                                
227                         <option value="VT">Vermont</option>
228                         <option value="VI">Virgin Islands</option>
229                         <option value="VA">Virginia</option>                                            
230                         <option value="WA">Washington</option>                                          
231                         <option value="WV">West Virginia</option>                                               
232                         <option value="WI">Wisconsin</option>                                           
233                         <option value="WY">Wyoming</option>
234                         </optgroup>
235                                                 
236                         </select><br />';
237             
238                 ?>
239
240         <?php 
241         if($postal == ''){
242             $more_info .= '<label for="postal">'._AT('ec_postal').'</label>:<br /> <input type="text" value="" size="20" name="ordPostalCode" id="postal"><br />';
243         }else{ ?>
244                 <input type="hidden"  name="ordPostalCode" value="<?php echo $postal; ?>">
245         <?php } ?>
246         
247         <?php 
248         if($telephone == ''){
249             $more_info .= '<label for="telephone">'._AT('ec_telephone').'</label>:<br /> <input type="text" value="" size="20" name="ordPhoneNumber" id="telephone"><br />';
250         }else{ ?>
251                 <input type="hidden"  name="ordPhoneNumber" value="<?php echo $telephone; ?>">
252         <?php } ?>
253
254         <?php 
255             $more_info .= '<label for="country">Country</label>:<br /> 
256             <select name="ordCountry" id="country">
257                         <option value="">--choose--</option>
258                         <option value="AF">Afghanistan</option>
259                         <option value="AL">Albania</option>
260                         <option value="DZ">Algeria</option>
261                         <option value="AS">American Samoa</option>
262                         <option value="AD">Andorra</option>
263                         <option value="AG">Angola</option>
264                         <option value="AI">Anguilla</option>
265                         <option value="AG">Antigua &amp; Barbuda</option>
266                         <option value="AR">Argentina</option>
267                         <option value="AA">Armenia</option>
268                         <option value="AW">Aruba</option>
269                         <option value="AU">Australia</option>
270                         <option value="AT">Austria</option>
271                         <option value="AZ">Azerbaijan</option>
272                         <option value="BS">Bahamas</option>
273                         <option value="BH">Bahrain</option>
274                         <option value="BD">Bangladesh</option>
275                         <option value="BB">Barbados</option>
276                         <option value="BY">Belarus</option>
277                         <option value="BE">Belgium</option>
278                         <option value="BZ">Belize</option>
279                         <option value="BJ">Benin</option>
280                         <option value="BM">Bermuda</option>
281                         <option value="BT">Bhutan</option>
282                         <option value="BO">Bolivia</option>
283                         <option value="BL">Bonaire</option>
284                         <option value="BA">Bosnia &amp; Herzegovina</option>
285                         <option value="BW">Botswana</option>
286                         <option value="BR">Brazil</option>
287                         <option value="BC">British Indian Ocean Ter</option>
288                         <option value="BN">Brunei</option>
289                         <option value="BG">Bulgaria</option>
290                         <option value="BF">Burkina Faso</option>
291                         <option value="BI">Burundi</option>
292                         <option value="KH">Cambodia</option>
293                         <option value="CM">Cameroon</option>
294                         <option value="CA">Canada</option>
295                         <option value="IC">Canary Islands</option>
296                         <option value="CV">Cape Verde</option>
297                         <option value="KY">Cayman Islands</option>
298                         <option value="CF">Central African Republic</option>
299                         <option value="TD">Chad</option>
300                         <option value="CD">Channel Islands</option>
301                         <option value="CL">Chile</option>
302                         <option value="CN">China</option>
303                         <option value="CI">Christmas Island</option>
304                         <option value="CS">Cocos Island</option>
305                         <option value="CO">Colombia</option>
306                         <option value="CC">Comoros</option>
307                         <option value="CG">Congo</option>
308                         <option value="CK">Cook Islands</option>
309                         <option value="CR">Costa Rica</option>
310                         <option value="CT">Cote D\'Ivoire</option>
311                         <option value="HR">Croatia</option>
312                         <option value="CU">Cuba</option>
313                         <option value="CB">Curacao</option>
314                         <option value="CY">Cyprus</option>
315                         <option value="CZ">Czech Republic</option>
316                         <option value="DK">Denmark</option>
317                         <option value="DJ">Djibouti</option>
318                         <option value="DM">Dominica</option>
319                         <option value="DO">Dominican Republic</option>
320                         <option value="TM">East Timor</option>
321                         <option value="EC">Ecuador</option>
322                         <option value="EG">Egypt</option>
323                         <option value="SV">El Salvador</option>
324                         <option value="GQ">Equatorial Guinea</option>
325                         <option value="ER">Eritrea</option>
326                         <option value="EE">Estonia</option>
327                         <option value="ET">Ethiopia</option>
328                         <option value="FA">Falkland Islands</option>
329                         <option value="FO">Faroe Islands</option>
330                         <option value="FJ">Fiji</option>
331                         <option value="FI">Finland</option>
332                         <option value="FR">France</option>
333                         <option value="GF">French Guiana</option>
334                         <option value="PF">French Polynesia</option>
335                         <option value="FS">French Southern Ter</option>
336                         <option value="GA">Gabon</option>
337                         <option value="GM">Gambia</option>
338                         <option value="GE">Georgia</option>
339                         <option value="DE">Germany</option>
340                         <option value="GH">Ghana</option>
341                         <option value="GI">Gibraltar</option>
342                         <option value="GB">Great Britain</option>
343                         <option value="GR">Greece</option>
344                         <option value="GL">Greenland</option>
345                         <option value="GD">Grenada</option>
346                         <option value="GP">Guadeloupe</option>
347                         <option value="GU">Guam</option>
348                         <option value="GT">Guatemala</option>
349                         <option value="GN">Guinea</option>
350                         <option value="GY">Guyana</option>
351                         <option value="HT">Haiti</option>
352                         <option value="HW">Hawaii</option>
353                         <option value="HN">Honduras</option>
354                         <option value="HK">Hong Kong</option>
355                         <option value="HU">Hungary</option>
356                         <option value="IS">Iceland</option>
357                         <option value="IN">India</option>
358                         <option value="ID">Indonesia</option>
359                         <option value="IA">Iran</option>
360                         <option value="IQ">Iraq</option>
361                         <option value="IR">Ireland</option>
362                         <option value="IM">Isle of Man</option>
363                         <option value="IL">Israel</option>
364                         <option value="IT">Italy</option>
365                         <option value="JM">Jamaica</option>
366                         <option value="JP">Japan</option>
367                         <option value="JO">Jordan</option>
368                         <option value="KZ">Kazakhstan</option>
369                         <option value="KE">Kenya</option>
370                         <option value="KI">Kiribati</option>
371                         <option value="NK">Korea North</option>
372                         <option value="KS">Korea South</option>
373                         <option value="KW">Kuwait</option>
374                         <option value="KG">Kyrgyzstan</option>
375                         <option value="LA">Laos</option>
376                         <option value="LV">Latvia</option>
377                         <option value="LB">Lebanon</option>
378                         <option value="LS">Lesotho</option>
379                         <option value="LR">Liberia</option>
380                         <option value="LY">Libya</option>
381                         <option value="LI">Liechtenstein</option>
382                         <option value="LT">Lithuania</option>
383                         <option value="LU">Luxembourg</option>
384                         <option value="MO">Macau</option>
385                         <option value="MK">Macedonia</option>
386                         <option value="MG">Madagascar</option>
387                         <option value="MY">Malaysia</option>
388                         <option value="MW">Malawi</option>
389                         <option value="MV">Maldives</option>
390                         <option value="ML">Mali</option>
391                         <option value="MT">Malta</option>
392                         <option value="MH">Marshall Islands</option>
393                         <option value="MQ">Martinique</option>
394                         <option value="MR">Mauritania</option>
395                         <option value="MU">Mauritius</option>
396                         <option value="ME">Mayotte</option>
397                         <option value="MX">Mexico</option>
398                         <option value="MI">Midway Islands</option>
399                         <option value="MD">Moldova</option>
400                         <option value="MC">Monaco</option>
401                         <option value="MN">Mongolia</option>
402                         <option value="MS">Montserrat</option>
403                         <option value="MA">Morocco</option>
404                         <option value="MZ">Mozambique</option>
405                         <option value="MM">Myanmar</option>
406                         <option value="NA">Nambia</option>
407                         <option value="NU">Nauru</option>
408                         <option value="NP">Nepal</option>
409                         <option value="AN">Netherland Antilles</option>
410                         <option value="NL">Netherlands (Holland, Europe)</option>
411                         <option value="NV">Nevis</option>
412                         <option value="NC">New Caledonia</option>
413                         <option value="NZ">New Zealand</option>
414                         <option value="NI">Nicaragua</option>
415                         <option value="NE">Niger</option>
416                         <option value="NG">Nigeria</option>
417                         <option value="NW">Niue</option>
418                         <option value="NF">Norfolk Island</option>
419                         <option value="NO">Norway</option>
420                         <option value="OM">Oman</option>
421                         <option value="PK">Pakistan</option>
422                         <option value="PW">Palau Island</option>
423                         <option value="PS">Palestine</option>
424                         <option value="PA">Panama</option>
425                         <option value="PG">Papua New Guinea</option>
426                         <option value="PY">Paraguay</option>
427                         <option value="PE">Peru</option>
428                         <option value="PH">Philippines</option>
429                         <option value="PO">Pitcairn Island</option>
430                         <option value="PL">Poland</option>
431                         <option value="PT">Portugal</option>
432                         <option value="PR">Puerto Rico</option>
433                         <option value="QA">Qatar</option>
434                         <option value="ME">Republic of Montenegro</option>
435                         <option value="RS">Republic of Serbia</option>
436                         <option value="RE">Reunion</option>
437                         <option value="RO">Romania</option>
438                         <option value="RU">Russia</option>
439                         <option value="RW">Rwanda</option>
440                         <option value="NT">St Barthelemy</option>
441                         <option value="EU">St Eustatius</option>
442                         <option value="HE">St Helena</option>
443                         <option value="KN">St Kitts-Nevis</option>
444                         <option value="LC">St Lucia</option>
445                         <option value="MB">St Maarten</option>
446                         <option value="PM">St Pierre &amp; Miquelon</option>
447                         <option value="VC">St Vincent &amp; Grenadines</option>
448                         <option value="SP">Saipan</option>
449                         <option value="SO">Samoa</option>
450                         <option value="AS">Samoa American</option>
451                         <option value="SM">San Marino</option>
452                         <option value="ST">Sao Tome &amp; Principe</option>
453                         <option value="SA">Saudi Arabia</option>
454                         <option value="SN">Senegal</option>
455                         <option value="SC">Seychelles</option>
456                         <option value="SL">Sierra Leone</option>break;
457                         <option value="SG">Singapore</option>
458                         <option value="SK">Slovakia</option>
459                         <option value="SI">Slovenia</option>
460                         <option value="SB">Solomon Islands</option>
461                         <option value="OI">Somalia</option>
462                         <option value="ZA">South Africa</option>
463                         <option value="ES">Spain</option>
464                         <option value="LK">Sri Lanka</option>
465                         <option value="SD">Sudan</option>
466                         <option value="SR">Suriname</option>
467                         <option value="SZ">Swaziland</option>
468                         <option value="SE">Sweden</option>
469                         <option value="CH">Switzerland</option>
470                         <option value="SY">Syria</option>
471                         <option value="TA">Tahiti</option>
472                         <option value="TW">Taiwan</option>
473                         <option value="TJ">Tajikistan</option>
474                         <option value="TZ">Tanzania</option>
475                         <option value="TH">Thailand</option>
476                         <option value="TG">Togo</option>
477                         <option value="TK">Tokelau</option>
478                         <option value="TO">Tonga</option>
479                         <option value="TT">Trinidad &amp; Tobago</option>
480                         <option value="TN">Tunisia</option>
481                         <option value="TR">Turkey</option>
482                         <option value="TU">Turkmenistan</option>
483                         <option value="TC">Turks &amp; Caicos Is</option>
484                         <option value="TV">Tuvalu</option>
485                         <option value="UG">Uganda</option>
486                         <option value="UA">Ukraine</option>
487                         <option value="AE">United Arab Emirates</option>
488                         <option value="GB">United Kingdom</option>
489                         <option value="US">United States of America</option>
490                         <option value="UY">Uruguay</option>
491                         <option value="UZ">Uzbekistan</option>
492                         <option value="VU">Vanuatu</option>
493                         <option value="VS">Vatican City State</option>
494                         <option value="VE">Venezuela</option>
495                         <option value="VN">Vietnam</option>
496                         <option value="VB">Virgin Islands (Brit)</option>
497                         <option value="VA">Virgin Islands (USA)</option>
498                         <option value="WK">Wake Island</option>
499                         <option value="WF">Wallis &amp; Futana Is</option>
500                         <option value="YE">Yemen</option>
501                         <option value="ZR">Zaire</option>
502                         <option value="ZM">Zambia</option>
503                         <option value="ZW">Zimbabwe</option>
504                         </select><br />
505             
506             <br />';
507 ?>
508
509         <input type="hidden"  name="receipt" value="<?php echo $receipt; ?>">
510         <input type="hidden"  name="project" value="<?php echo $project; ?>">
511         <input type="hidden"  name="comment" value="<?php echo $comment; ?>">
512         <input type="hidden"  name="trnType" value="<?php echo $comment; ?>">
513         <input type="hidden"  name="tmp_amount" value="<?php echo $tmp_amount; ?>">
514         
515         <input type="hidden"  name="trnOrderNumber" value="<?php echo $mtid; ?>">
516         <input type="hidden"  name="ref2" value="<?php echo $payment_id; ?>">
517         <input type="hidden"  name="ref1" value="<?php echo $invoice_id; ?>">
518         <input type="hidden"  name="ref3" value="<?php echo $invoice; ?>">
519         <input type="hidden"  name="ref4" value="<?php echo $course_id; ?>">
520         <input type="hidden" name="merchant_id" value="<?php echo $_config['ec_vendor_id']; ?>">
521         <input type="hidden"  name="MKEY" value="<?php echo $mkey; ?>">
522         <input type="hidden"  name="trnAmount" value="<?php echo $amount; ?>">
523         
524         <input type="hidden" name="approvedPage"  value="<?php echo AT_BASE_HREF; ?>mods/ecomm/success_beanstream.php"/>
525         <input type="hidden" name="declinedPage"     value="<?php echo AT_BASE_HREF; ?>mods/ecomm/failure_beanstream.php"/>
526
527         
528         <input type="hidden"  name="errorPage" value="<?php echo AT_BASE_HREF; ?>mods/ecomm/error_beanstream.php">
529         <input type="hidden"  name="ordEmailAddress" value="<?php echo $email; ?>">
530         <?php
531         if($more_info != ''){
532           echo _AT('ec_more_info_required');
533           echo $more_info;
534         }
535         
536         ?>
537         
538         
539         <label for="cardnum"><?php echo _AT('ec_cc_number'); ?></label>
540         <input type="text" name="trnCardNumber" id="cardnum" value="<?php echo $cardnumber; ?>">        <br /><br />
541         <label for="expmonth"><?php echo _AT('ec_cc_expiry_month'); ?></label>
542         <select name="trnExpMonth" id="expmonth">
543         <option value="01"><?php echo _AT('date_jan'); ?></option>
544         <option value="02"><?php echo _AT('date_feb'); ?></option>
545         <option value="03"><?php echo _AT('date_mar'); ?></option>
546         <option value="04"><?php echo _AT('date_apr'); ?></option>
547         <option value="05"><?php echo _AT('date_may'); ?></option>
548         <option value="06"><?php echo _AT('date_jun'); ?></option>
549         <option value="07"><?php echo _AT('date_jul'); ?></option>
550         <option value="08"><?php echo _AT('date_aug'); ?></option>
551         <option value="09"><?php echo _AT('date_sep'); ?></option>
552         <option value="10"><?php echo _AT('date_oct'); ?></option>
553         <option value="11"><?php echo _AT('date_nov'); ?></option>
554         <option value="12"><?php echo _AT('date_dec'); ?></option>
555         </select>
556          <label for="expyear"><?php echo _AT('ec_cc_expiry_year'); ?></label>
557         <select name="trnExpYear" id="expyear">
558         <option value="10">2010</option>
559         <option value="11">2011</option>
560         <option value="12">2012</option>
561         <option value="13">2013</option>
562         <option value="14">2014</option>
563
564         </select><br /><br />
565           <label for="cvd"><?php echo _AT('ec_cc_cvd_number'); ?></label>
566           <input type="test"  name="trnCardCvd" size = "4" value="<?php echo $cvd; ?>"> <small><?php echo _AT('ec_cc_cvd_number'); ?></strong><br /><br />
567         
568
569                         
570                         <input type="submit" name="confirm" class="button" value="<?php echo _AT('ec_paybycredit'); ?>"/> 
571                         <img src="<?php echo $_base_path; ?>mods/ecomm/images/visa_42x27.gif" title="<?php echo _AT('ec_acceptvisa'); ?>" alt="<?php echo _AT('ec_acceptvisa'); ?>" align="middle" /> <img src="<?php echo $_base_path; ?>mods/ecomm/images/mc_42x27.gif" title="<?php echo _AT('ec_acceptmastercard'); ?>" alt="<?php echo _AT('ec_acceptmastercard'); ?>" align="middle" />
572                 </form>
573                   
574         </div><br style="clear:both;"/>
575         <?php
576
577         }
578 }
579
580 function approve_payment($payment_id, $transaction_id) {
581         global $db, $system_courses, $_config, $msg;
582
583         $sql = "UPDATE ".TABLE_PREFIX."payments SET transaction_id='$transaction_id', approved=1 WHERE payment_id=$payment_id";
584         $result = mysql_query($sql, $db);
585
586         // get the course_id for this transaction
587         $sql = "SELECT course_id, member_id FROM ".TABLE_PREFIX."payments WHERE payment_id=$payment_id";
588         $result = mysql_query($sql, $db);
589         $row = mysql_fetch_assoc($result);
590         $course_id = $row['course_id'];
591         $member_id = $row['member_id'];
592
593         $sql = "SELECT * FROM ".TABLE_PREFIX."ec_course_fees WHERE course_id=$course_id";
594         if($result = mysql_query($sql,$db)){
595                 $course_fee_row = mysql_fetch_assoc($result);
596         }
597         if ($course_fee_row['auto_approve'] == '1'){
598                 $sql = "UPDATE ".TABLE_PREFIX."course_enrollment SET approved='y' WHERE member_id=$member_id AND course_id=$course_id";
599                 mysql_query($sql, $db);
600                 $auto_link_login = array('EC_PAYMENT_CONFIRMED_AUTO',$course_id);
601                 $msg->addFeedback($auto_link_login);
602         } else {
603                 $msg->addFeedback('EC_PAYMENT_CONFIRMED_MANUAL');
604         }
605         /// Get the course title
606         $course_title  = $system_courses[$course_id]['title'];
607
608         require(AT_INCLUDE_PATH . 'classes/phpmailer/atutormailer.class.php');
609         // If auto email when payment is made, send an email to the instructor (maybe this should be an admin option)
610         if ($course_fee_row['auto_email']) {
611
612                 /// Get the instructor's email address
613                 $sql = "SELECT email FROM ".TABLE_PREFIX."members WHERE member_id=".$system_courses[$course_id]['member_id'];
614                 $result = mysql_query($sql,$db);
615                 $row = mysql_fetch_assoc($result);
616                 $instructor_email = $row['email'];      
617                         
618                 $mail = new ATutorMailer;
619                 $mail->From     = $_config['contact_email'];
620                 $mail->AddAddress($instructor_email);
621                 $mail->Subject = _AT('ec_payment_made'); 
622                 $mail->Body    = _AT('ec_payment_mail_instruction', $course_title);
623                         
624                 if(!$mail->Send()) {
625                         $msg->printErrors('SENDING_ERROR');
626                         return;
627                 }
628                 $mail->ClearAddresses();
629         }
630
631         if ($_config['ec_email_admin']) {
632                 /// Email Administrator  if set
633                 if ($_config['ec_email_admin']){
634                         if ($_config['ec_contact_email']){
635                                 $contact_admin_email = $_config['ec_contact_email'];
636                         } else {
637                                 $contact_admin_email = $_config['contact_email'];
638                         }
639                         $mail = new ATutorMailer;
640                         $mail->From     = $_config['contact_email'];
641                         $mail->AddAddress($contact_admin_email);
642                         $mail->Subject = _AT('ec_payment_made'); 
643                         $mail->Body    = _AT('ec_admin_payment_mail_instruction', $course_title);
644                         
645                         if (!$mail->Send()) {
646                                 $msg->printErrors('SENDING_ERROR');
647                                 return;
648                         }
649                 }
650         }
651 }
652
653 function check_payment_print_form($payment_id, $amount, $course_id){
654         global $db, $system_courses, $_config, $payment_id;
655
656         if (!$_config['ec_contact_address']) {
657                 return;
658         }
659         echo _AT('or');
660         ?>
661                 <form  method="GET">
662                         <input type="hidden"  name="Amount1" value="<?php echo $amount; ?>">
663                         <input type="hidden"  name="payment_id" value="<?php echo $payment_id; ?>">
664                         <input class="button" type="submit" name="bycheque" value="<?php echo _AT('ec_paybycheque'); ?>" onclick="window.open('mods/ecomm/invoice.php?payment_id=<?php echo $payment_id.SEP; ?>course_title=<?php echo $system_courses[$course_id]['title'].SEP; ?>amount=<?php echo $amount; ?>','invwindow','height=425px, width=520px'); return false" /> 
665                 </form><br/><br />
666         <?php 
667 }
668
669
670 function log_paypal_ipn_requests($status) {
671         global $_config;
672
673         if (!$_config['ec_store_log'] || !$_config['ec_log_file']){
674                 return;
675         }
676
677         $fp = fopen($_config['ec_log_file'], 'a+');
678         if (!$fp) { return; }
679         $data = date('Y-m-d H:i:s'). ' ' . $status .': '. print_r($_POST, true) . PHP_EOL;
680         fwrite($fp, $data);
681         fclose($fp);
682 }
683
684 ?>