PageRenderTime 42ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/administrator/components/com_virtuemart/html/checkout.epay_result.php

https://bitbucket.org/dgough/annamaria-daneswood-25102012
PHP | 203 lines | 125 code | 30 blank | 48 comment | 25 complexity | 4f126bd01766eb67cc4fd62d76d53b97 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <?php
  2. /**
  3. * @version $Id: checkout.epay_result.php,v 1.4 2005/05/22 09:21:15 soeren_nb Exp $
  4. * @package VirtueMart
  5. * @subpackage html
  6. * @copyright (C) 2007-2008 Thomas Knudsen
  7. *
  8. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
  9. * VirtueMart is Free Software.
  10. * VirtueMart comes with absolute no warranty.
  11. *
  12. * www.VirtueMart.net
  13. *
  14. * ePay Order Confirmation Handler
  15. */
  16. if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
  17. function addPaymentLog($dbConn, $log, $order_id)
  18. {
  19. $dbConn->query( "UPDATE #__{vm}_order_payment SET order_payment_log = concat('" . $dbConn->getEscaped($log) . "<br>', order_payment_log) where order_id = '" .$dbConn->getEscaped( $order_id ) . "'");
  20. }
  21. function orderPaymentNotYetUpdated($dbConn, $order_id, $tid)
  22. {
  23. $res = false;
  24. $dbConn->query("SELECT COUNT(*) `qty` FROM `#__{vm}_order_payment` WHERE `order_payment_number` = '" . $dbConn->getEscaped($order_id ) . "' and order_payment_trans_id = '" .$dbConn->getEscaped( $tid) . "'");
  25. if($dbConn->next_record()) {
  26. if ($dbConn->f('qty') == 0) {
  27. $res = true;
  28. }
  29. }
  30. return $res;
  31. }
  32. require_once( CLASSPATH ."payment/ps_epay.cfg.php");
  33. $accept = $_REQUEST["accept"];
  34. $tid = $_REQUEST["tid"];
  35. $order_id = $_REQUEST["orderid"];
  36. $order_amount = $_REQUEST["amount"];
  37. $order_currency = $_REQUEST["cur"];
  38. $order_ekey = $_REQUEST["eKey"];
  39. $error = $_REQUEST["error"];
  40. $order_currency = $_REQUEST["cur"];
  41. //////////////////////
  42. ////////////////////////
  43. //
  44. // Now validat on the MD5 stamping. If the MD5 key is valid or if MD5 is disabled
  45. //
  46. if(($order_ekey == md5( $order_amount . $order_id . $tid . EPAY_MD5_KEY)) || EPAY_MD5_TYPE == 0 ) {
  47. //
  48. // Find the corresponding order in the database
  49. //
  50. $qv = "SELECT order_id, order_number FROM #__{vm}_orders WHERE order_id='".$order_id."'";
  51. $dbo = new ps_DB;
  52. $dbo->query($qv);
  53. if($dbo->next_record()) {
  54. $d['order_id'] = $dbo->f("order_id");
  55. //
  56. // Switch on the order accept code
  57. // accept = 1 (standard redirect) accept = 2 (callback)
  58. //
  59. if( empty($_REQUEST['errorcode']) && ($accept == "1" || $accept == "2") ) {
  60. //
  61. // Only update the order information once
  62. //
  63. if (orderPaymentNotYetUpdated($dbo, $order_id, $tid)) {
  64. // UPDATE THE ORDER STATUS to 'VALID'
  65. $d['order_status'] = EPAY_VERIFIED_STATUS;
  66. // Setting this to "Y" = yes is required by Danish Law
  67. $d['notify_customer'] = "Y";
  68. $d['include_comment'] = "Y";
  69. // Notifying the customer about the transaction key and
  70. // the order Status Update
  71. $d['order_comment'] = $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_ORDER_COMMENT') . urldecode($tid)."\n";
  72. require_once ( CLASSPATH . 'ps_order.php' );
  73. $ps_order= new ps_order;
  74. $ps_order->order_status_update($d);
  75. //
  76. // Order payment
  77. //
  78. $dbo->query( "UPDATE #__{vm}_order_payment SET order_payment_number = '" . $dbo->getEscaped($order_id ). "', order_payment_trans_id = '" . $tid . "', order_payment_code = 0 where order_id = '" .$dbo->getEscaped( $order_id ). "'");
  79. // add history callback info
  80. if ($accept == "2") {
  81. addPaymentLog($dbo, $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_CALLBACK'), $order_id);
  82. }
  83. // payment fee
  84. if ($_REQUEST["transfee"]) {
  85. addPaymentLog($dbo, $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_FEE') . $_REQUEST["transfee"], $order_id);
  86. }
  87. // payment date
  88. if ($_REQUEST["date"]) {
  89. addPaymentLog($dbo, $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_DATE') . $_REQUEST["date"], $order_id);
  90. }
  91. // payment fraud control
  92. if ($_REQUEST["fraud"]) {
  93. addPaymentLog($dbo, sprintf($VM_LANG->_('PHPSHOP_EPAY_FRAUD'), $_REQUEST["fraud"]), $order_id);
  94. }
  95. // card id
  96. if ($_REQUEST["cardid"]) {
  97. $cardname = "Unknown";
  98. $cardimage = "c" . $_REQUEST["cardid"] . ".gif";
  99. switch ($_REQUEST["cardid"])
  100. {
  101. case 1: $cardname = 'Dankort (DK)'; break;
  102. case 2: $cardname = 'Visa/Dankort (DK)'; break;
  103. case 3: $cardname = 'Visa Electron (Udenlandsk)'; break;
  104. case 4: $cardname = 'Mastercard (DK)'; break;
  105. case 5: $cardname = 'Mastercard (Udenlandsk)'; break;
  106. case 6: $cardname = 'Visa Electron (DK)'; break;
  107. case 7: $cardname = 'JCB (Udenlandsk)'; break;
  108. case 8: $cardname = 'Diners (DK)'; break;
  109. case 9: $cardname = 'Maestro (DK)'; break;
  110. case 10: $cardname = 'American Express (DK)'; break;
  111. case 11: $cardname = 'Ukendt'; break;
  112. case 12: $cardname = 'eDankort (DK)'; break;
  113. case 13: $cardname = 'Diners (Udenlandsk)'; break;
  114. case 14: $cardname = 'American Express (Udenlandsk)'; break;
  115. case 15: $cardname = 'Maestro (Udenlandsk)'; break;
  116. case 16: $cardname = 'Forbrugsforeningen (DK)'; break;
  117. case 17: $cardname = 'eWire'; break;
  118. case 18: $cardname = 'VISA'; break;
  119. case 19: $cardname = 'IKANO'; break;
  120. case 20: $cardname = 'Andre'; break;
  121. case 21: $cardname = 'Nordea'; break;
  122. case 22: $cardname = 'Danske Bank'; break;
  123. case 23: $cardname = 'Danske Bank'; break;
  124. }
  125. addPaymentLog($dbo, sprintf($VM_LANG->_('PHPSHOP_EPAY_PAYMENT_CARDTYPE'), $cardname, $cardimage), $order_id);
  126. }
  127. // creation information
  128. addPaymentLog($dbo, $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_LOG_TID') . $tid . $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_EPAY_LINK'), $order_id);
  129. }
  130. ?>
  131. <img src="<?php echo VM_THEMEURL ?>images/button_ok.png" align="middle" alt="Success" border="0" />
  132. <h2><?php echo $VM_LANG->_('PHPSHOP_PAYMENT_TRANSACTION_SUCCESS'); ?></h2>
  133. <?php
  134. }
  135. elseif( $accept == "0" ) {
  136. // the Payment wasn't successful. Maybe the Payment couldn't
  137. // be verified and is pending
  138. // UPDATE THE ORDER STATUS to 'INVALID'
  139. $d['order_status'] = EPAY_INVALID_STATUS;
  140. // Setting this to "Y" = yes is required by Danish Law
  141. $d['notify_customer'] = "Y";
  142. $d['include_comment'] = "Y";
  143. // Notifying the customer about the transaction key and
  144. // the order Status Update
  145. $d['order_comment'] = $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_DECLINE') . $fejl;
  146. require_once ( CLASSPATH . 'ps_order.php' );
  147. $ps_order= new ps_order;
  148. $ps_order->order_status_update($d);
  149. ?>
  150. <img src="<?php echo VM_THEMEURL ?>images/button_cancel.png" align="middle" alt="Failure" border="0" />
  151. <h2><?php echo $VM_LANG->_('PHPSHOP_PAYMENT_ERROR') ?></h2>
  152. <?php
  153. echo $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_RETRY_PAYMENT');
  154. }
  155. ?>
  156. <br/>
  157. <p><a href="<?php @$sess->purl( SECUREURL."index.php?option=com_virtuemart&page=account.order_details&order_id=$order_id" ) ?>">
  158. <?php echo $VM_LANG->_('PHPSHOP_ORDER_LINK') ?></a>
  159. </p>
  160. <?php
  161. }
  162. else {
  163. ?>
  164. <img src="<?php echo VM_THEMEURL ?>images/button_cancel.png" align="middle" alt="Failure" border="0" />
  165. <span class="message"><? echo $VM_LANG->_('PHPSHOP_PAYMENT_ERROR') . $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_ORDER_NOT_FOUND') ?> </span><?php
  166. }
  167. }
  168. else{
  169. ?>
  170. <img src="<?php echo VM_THEMEURL ?>images/button_cancel.png" align="middle" alt="Failure" border="0" />
  171. <span class="message"><? echo $VM_LANG->_('PHPSHOP_PAYMENT_ERROR') . $VM_LANG->_('PHPSHOP_EPAY_PAYMENT_MD5_CHECK_FAILURE') ?> </span><?php
  172. }
  173. ?>