2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2010 */
6 /* Inclusive Design Institute */
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 /************************************************************************/
13 if (!defined('AT_INCLUDE_PATH')) { exit; }
16 * Collects purchase information for PayPal -
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
23 function paypal_print_form($payment_id, $amount, $course_id) {
24 global $_config, $system_courses;
25 if($_config['ec_gateway'] == 'PayPal'){
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" />
50 function paypal_authenticate_user_response() {
54 function mirapay_print_form($payment_id, $amount, $course_id) {
56 if($_config['ec_gateway'] == 'MiraPay'){
57 $mkey = md5($payment_id.$amount.$_config['ec_password']);
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" />
74 function mirapay_authenticate_ipn() {
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');
86 $msg->addError('EC_PAYMENT_FAILED');
91 function beanstream_print_form($payment_id, $amount, $course_id) {
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]";
99 $result = mysql_query($sql, $db);
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'];
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'];
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; ?>">
133 <input type="hidden" name="organization" value="<?php echo $organization; ?>">
138 $more_info = '<label for="address">'._AT('street_address').'</label>:<br /> <input type="text" value="" size="40" name="ordAddress1" id="address"><br />';
140 <input type="hidden" name="ordAddress1" value="<?php echo $address; ?>">
145 $more_info .= '<label for="city">'._AT('city').'</label>:<br /> <input type="text" value="" size="20" name="ordCity" id="city"><br />';
147 <input type="hidden" name="ordCity" value="<?php echo $city; ?>">
151 $more_info .= '<label for="provstate">'._AT('ec_province').'</label>:<br />
152 <select name="ordProvince" id="provstate">
154 <option value="--">--choose--</option>
155 <option value="--">Outside U.S./Canada</option>
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>
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>
242 $more_info .= '<label for="postal">'._AT('ec_postal').'</label>:<br /> <input type="text" value="" size="20" name="ordPostalCode" id="postal"><br />';
244 <input type="hidden" name="ordPostalCode" value="<?php echo $postal; ?>">
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 />';
251 <input type="hidden" name="ordPhoneNumber" value="<?php echo $telephone; ?>">
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 & 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 & 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 & Miquelon</option>
447 <option value="VC">St Vincent & 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 & 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 & 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 & 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 & 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>
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; ?>">
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; ?>">
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"/>
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; ?>">
531 if($more_info != ''){
532 echo _AT('ec_more_info_required');
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>
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>
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 />
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" />
574 </div><br style="clear:both;"/>
580 function approve_payment($payment_id, $transaction_id) {
581 global $db, $system_courses, $_config, $msg;
583 $sql = "UPDATE ".TABLE_PREFIX."payments SET transaction_id='$transaction_id', approved=1 WHERE payment_id=$payment_id";
584 $result = mysql_query($sql, $db);
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'];
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);
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);
603 $msg->addFeedback('EC_PAYMENT_CONFIRMED_MANUAL');
605 /// Get the course title
606 $course_title = $system_courses[$course_id]['title'];
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']) {
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'];
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);
625 $msg->printErrors('SENDING_ERROR');
628 $mail->ClearAddresses();
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'];
637 $contact_admin_email = $_config['contact_email'];
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);
645 if (!$mail->Send()) {
646 $msg->printErrors('SENDING_ERROR');
653 function check_payment_print_form($payment_id, $amount, $course_id){
654 global $db, $system_courses, $_config, $payment_id;
656 if (!$_config['ec_contact_address']) {
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" />
670 function log_paypal_ipn_requests($status) {
673 if (!$_config['ec_store_log'] || !$_config['ec_log_file']){
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;