PageRenderTime 46ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/administrator/components/com_virtuemart/classes/payment/ps_epay.php

https://bitbucket.org/dgough/annamaria-daneswood-25102012
PHP | 604 lines | 531 code | 20 blank | 53 comment | 100 complexity | 6a05df3a0b391682d619aea401feafb9 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1
  1. <?php
  2. /**
  3. * @version $Id: ps_epay.php,v 1.4 2005/05/17 20:31:31 soeren_nb Exp $
  4. * @package VirtueMart
  5. * @subpackage Payment
  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. * The ps_epay class, containing the payment processing code
  14. * for transactions with PBS, Nordea, Danske Bank, eWire etc
  15. * supported by the ePay Payment Gateway (www.epay.dk)
  16. */
  17. class ps_epay {
  18. var $payment_code = "EPAY";
  19. /**
  20. * Show all configuration parameters for this payment method
  21. * @returns boolean False when the Payment method has no configration
  22. */
  23. function show_configuration() {
  24. global $VM_LANG, $mosConfig_live_site;
  25. $db =& new ps_DB;
  26. /** Read current Configuration ***/
  27. require_once(CLASSPATH ."payment/".__CLASS__.".cfg.php");
  28. ?>
  29. <table style="text-align: left;">
  30. <tr>
  31. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MERCHANTNUMBER');?></strong></td>
  32. <td>
  33. <input type="text" name="EPAY_MERCHANTNUMBER" class="inputbox" value="<?php echo EPAY_MERCHANTNUMBER ?>" />
  34. </td>
  35. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MERCHANTNUMBER_EXPLAIN');?></td>
  36. </tr>
  37. <tr>
  38. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_PAYPAL_STATUS_SUCCESS');?></strong></td>
  39. <td>
  40. <select name="EPAY_VERIFIED_STATUS" class="inputbox" >
  41. <?php
  42. $q = "SELECT order_status_name,order_status_code FROM #__{vm}_order_status where order_status_code != 'P' ORDER BY list_order";
  43. $db->query($q);
  44. $order_status_code = Array();
  45. $order_status_name = Array();
  46. while ($db->next_record()) {
  47. $order_status_code[] = $db->f("order_status_code");
  48. $order_status_name[] = $db->f("order_status_name");
  49. }
  50. for ($i = 0; $i < sizeof($order_status_code); $i++) {
  51. echo "<option value=\"" . $order_status_code[$i];
  52. if (EPAY_VERIFIED_STATUS == $order_status_code[$i])
  53. echo "\" selected=\"selected\">";
  54. else
  55. echo "\">";
  56. echo $order_status_name[$i] . "</option>\n";
  57. }?>
  58. </select>
  59. </td>
  60. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_PAYPAL_STATUS_SUCCESS_EXPLAIN');?>
  61. </td>
  62. </tr>
  63. <tr>
  64. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_PAYPAL_STATUS_FAILED');?></strong></td>
  65. <td>
  66. <select name="EPAY_INVALID_STATUS" class="inputbox" >
  67. <?php
  68. $q = "SELECT order_status_name,order_status_code FROM #__{vm}_order_status ORDER BY list_order";
  69. $db->query($q);
  70. $order_status_code = Array();
  71. $order_status_name = Array();
  72. while ($db->next_record()) {
  73. $order_status_code[] = $db->f("order_status_code");
  74. $order_status_name[] = $db->f("order_status_name");
  75. }
  76. for ($i = 0; $i < sizeof($order_status_code); $i++) {
  77. echo "<option value=\"" . $order_status_code[$i];
  78. if (EPAY_INVALID_STATUS == $order_status_code[$i])
  79. echo "\" selected=\"selected\">";
  80. else
  81. echo "\">";
  82. echo $order_status_name[$i] . "</option>\n";
  83. } ?>
  84. </select>
  85. </td>
  86. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_PAYPAL_STATUS_FAILED_EXPLAIN');?></td>
  87. </tr>
  88. <script language="JavaScript">
  89. function enableDisableAll() {
  90. if (document.all.EPAY_CARDTYPES_0.checked) {
  91. document.all.EPAY_CARDTYPES_1.disabled = true;
  92. document.all.EPAY_CARDTYPES_2.disabled = true;
  93. document.all.EPAY_CARDTYPES_3.disabled = true;
  94. document.all.EPAY_CARDTYPES_4.disabled = true;
  95. document.all.EPAY_CARDTYPES_5.disabled = true;
  96. document.all.EPAY_CARDTYPES_6.disabled = true;
  97. document.all.EPAY_CARDTYPES_7.disabled = true;
  98. document.all.EPAY_CARDTYPES_8.disabled = true;
  99. document.all.EPAY_CARDTYPES_9.disabled = true;
  100. document.all.EPAY_CARDTYPES_10.disabled = true;
  101. document.all.EPAY_CARDTYPES_12.disabled = true;
  102. document.all.EPAY_CARDTYPES_13.disabled = true;
  103. document.all.EPAY_CARDTYPES_14.disabled = true;
  104. document.all.EPAY_CARDTYPES_15.disabled = true;
  105. document.all.EPAY_CARDTYPES_16.disabled = true;
  106. document.all.EPAY_CARDTYPES_17.disabled = true;
  107. document.all.EPAY_CARDTYPES_18.disabled = true;
  108. document.all.EPAY_CARDTYPES_19.disabled = true;
  109. document.all.EPAY_CARDTYPES_21.disabled = true;
  110. document.all.EPAY_CARDTYPES_22.disabled = true;
  111. } else {
  112. document.all.EPAY_CARDTYPES_1.disabled = false;
  113. document.all.EPAY_CARDTYPES_2.disabled = false;
  114. document.all.EPAY_CARDTYPES_3.disabled = false;
  115. document.all.EPAY_CARDTYPES_4.disabled = false;
  116. document.all.EPAY_CARDTYPES_5.disabled = false;
  117. document.all.EPAY_CARDTYPES_6.disabled = false;
  118. document.all.EPAY_CARDTYPES_7.disabled = false;
  119. document.all.EPAY_CARDTYPES_8.disabled = false;
  120. document.all.EPAY_CARDTYPES_9.disabled = false;
  121. document.all.EPAY_CARDTYPES_10.disabled = false;
  122. document.all.EPAY_CARDTYPES_12.disabled = false;
  123. document.all.EPAY_CARDTYPES_13.disabled = false;
  124. document.all.EPAY_CARDTYPES_14.disabled = false;
  125. document.all.EPAY_CARDTYPES_15.disabled = false;
  126. document.all.EPAY_CARDTYPES_16.disabled = false;
  127. document.all.EPAY_CARDTYPES_17.disabled = false;
  128. document.all.EPAY_CARDTYPES_18.disabled = false;
  129. document.all.EPAY_CARDTYPES_19.disabled = false;
  130. document.all.EPAY_CARDTYPES_21.disabled = false;
  131. document.all.EPAY_CARDTYPES_22.disabled = false;
  132. }
  133. }
  134. </script>
  135. <tr>
  136. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CARDTYPES');?></strong></td>
  137. <td>
  138. <input type="checkbox" name="EPAY_CARDTYPES_0" <?php if (EPAY_CARDTYPES_0 == '1') echo "checked"; ?> value="1" onclick="javascript:enableDisableAll();"><?php echo $VM_LANG->_('PHPSHOP_ALL');?> <br>
  139. <input type="checkbox" name="EPAY_CARDTYPES_1" <?php if (EPAY_CARDTYPES_1 == '1') echo "checked"; ?> value="1">DANKORT <br>
  140. <input type="checkbox" name="EPAY_CARDTYPES_2" <?php if (EPAY_CARDTYPES_2 == '1') echo "checked"; ?> value="1">VISA DANKORT <br>
  141. <input type="checkbox" name="EPAY_CARDTYPES_3" <?php if (EPAY_CARDTYPES_3 == '1') echo "checked"; ?> value="1">VISA ELECTRON<br>
  142. <input type="checkbox" name="EPAY_CARDTYPES_4" <?php if (EPAY_CARDTYPES_4 == '1') echo "checked"; ?> value="1">MASTERCARD (DK) <br>
  143. <input type="checkbox" name="EPAY_CARDTYPES_5" <?php if (EPAY_CARDTYPES_5 == '1') echo "checked"; ?> value="1">MASTERCARD <br>
  144. <input type="checkbox" name="EPAY_CARDTYPES_6" <?php if (EPAY_CARDTYPES_6 == '1') echo "checked"; ?> value="1">VISA ELECTRON (DK)<br>
  145. <input type="checkbox" name="EPAY_CARDTYPES_7" <?php if (EPAY_CARDTYPES_7 == '1') echo "checked"; ?> value="1">JCB <br>
  146. <input type="checkbox" name="EPAY_CARDTYPES_8" <?php if (EPAY_CARDTYPES_8 == '1') echo "checked"; ?> value="1">DINERS (DK)<br>
  147. <input type="checkbox" name="EPAY_CARDTYPES_9" <?php if (EPAY_CARDTYPES_9 == '1') echo "checked"; ?> value="1">MAESTRO (DK)<br>
  148. <input type="checkbox" name="EPAY_CARDTYPES_10" <?php if (EPAY_CARDTYPES_10 == '1') echo "checked"; ?> value="1">AMERICAN EXPRESS (DK)<br>
  149. <input type="checkbox" name="EPAY_CARDTYPES_12" <?php if (EPAY_CARDTYPES_12 == '1') echo "checked"; ?> value="1">DINERS <br>
  150. <input type="checkbox" name="EPAY_CARDTYPES_13" <?php if (EPAY_CARDTYPES_13 == '1') echo "checked"; ?> value="1">JCB Secure (3D-Secure) <br>
  151. <input type="checkbox" name="EPAY_CARDTYPES_14" <?php if (EPAY_CARDTYPES_14 == '1') echo "checked"; ?> value="1">AMERICAN EXPRESS <br>
  152. <input type="checkbox" name="EPAY_CARDTYPES_15" <?php if (EPAY_CARDTYPES_15 == '1') echo "checked"; ?> value="1">MAESTRO <br>
  153. <input type="checkbox" name="EPAY_CARDTYPES_16" <?php if (EPAY_CARDTYPES_16 == '1') echo "checked"; ?> value="1">FORBRUGSFORENINGEN <br>
  154. <input type="checkbox" name="EPAY_CARDTYPES_17" <?php if (EPAY_CARDTYPES_17 == '1') echo "checked"; ?> value="1">EWIRE <br>
  155. <input type="checkbox" name="EPAY_CARDTYPES_18" <?php if (EPAY_CARDTYPES_18 == '1') echo "checked"; ?> value="1">VISA <br>
  156. <input type="checkbox" name="EPAY_CARDTYPES_19" <?php if (EPAY_CARDTYPES_19 == '1') echo "checked"; ?> value="1">IKANO <br>
  157. <input type="checkbox" name="EPAY_CARDTYPES_21" <?php if (EPAY_CARDTYPES_21 == '1') echo "checked"; ?> value="1">NORDEA <br>
  158. <input type="checkbox" name="EPAY_CARDTYPES_22" <?php if (EPAY_CARDTYPES_22 == '1') echo "checked"; ?> value="1">DANSKE BANK <br>
  159. </td>
  160. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CARDTYPES_EXPLAIN');?></td>
  161. </tr>
  162. <script language="JavaScript">enableDisableAll();</script>
  163. <tr>
  164. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_LANGUAGE');?></strong></td>
  165. <td>
  166. <select name="EPAY_LANGUAGE" class="inputbox">
  167. <option <?php if (EPAY_LANGUAGE == '1') echo "selected=\"selected\""; ?> value="1">Danish</option>
  168. <option <?php if (EPAY_LANGUAGE == '2') echo "selected=\"selected\""; ?> value="2">English</option>
  169. <option <?php if (EPAY_LANGUAGE == '3') echo "selected=\"selected\""; ?> value="3">Swedish</option>
  170. <option <?php if (EPAY_LANGUAGE == '4') echo "selected=\"selected\""; ?> value="4">Norwegian</option>
  171. <option <?php if (EPAY_LANGUAGE == '5') echo "selected=\"selected\""; ?> value="5">Greenland</option>
  172. <option <?php if (EPAY_LANGUAGE == '6') echo "selected=\"selected\""; ?> value="6">Icelandic</option>
  173. <option <?php if (EPAY_LANGUAGE == '7') echo "selected=\"selected\""; ?> value="7">German</option>
  174. </select>
  175. </td>
  176. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_LANGUAGE_EXPLAIN');?></td>
  177. </tr>
  178. <tr>
  179. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_INSTANT_CAPTURE');?></strong></td>
  180. <td>
  181. <select name="EPAY_INSTANT_CAPTURE" class="inputbox">
  182. <option <?php if (EPAY_INSTANT_CAPTURE == '0') echo "selected=\"selected\""; ?> value="0"><?php echo $VM_LANG->_('VM_DISABLED');?></option>
  183. <option <?php if (EPAY_INSTANT_CAPTURE == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('VM_ENABLED');?></option>
  184. </select>
  185. </td>
  186. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_INSTANT_CAPTURE_EXPLAIN');?></td>
  187. </tr>
  188. <tr>
  189. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_GROUP');?></strong></td>
  190. <td>
  191. <input type="text" name="EPAY_GROUP" class="inputbox" value ="<?php echo EPAY_GROUP; ?>">
  192. </td>
  193. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_GROUP_EXPLAIN');?></td>
  194. </tr>
  195. <tr>
  196. <td><strong>MD5</strong></td>
  197. <td>
  198. <select name="EPAY_MD5_TYPE" class="inputbox">
  199. <option <?php if (EPAY_MD5_TYPE== '0') echo "selected=\"selected\""; ?> value="0"><?php echo $VM_LANG->_('VM_DISABLED');?> (0)</option>
  200. <option <?php if (EPAY_MD5_TYPE == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MD5_TYPE_1');?> (1)</option>
  201. <option <?php if (EPAY_MD5_TYPE == '2') echo "selected=\"selected\""; ?> value="2"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MD5_TYPE_2');?> (2)</option>
  202. </select>
  203. </td>
  204. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MD5_TYPE_EXPLAIN');?></td>
  205. </tr>
  206. <tr>
  207. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MD5_KEY');?></strong></td>
  208. <td>
  209. <input type="text" name="EPAY_MD5_KEY" class="inputbox" value ="<?php echo EPAY_MD5_KEY; ?>">
  210. </td>
  211. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_MD5_KEY_EXPLAIN');?></td>
  212. </tr>
  213. <tr>
  214. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHSMS');?></strong></td>
  215. <td>
  216. <input type="text" name="EPAY_AUTH_SMS" class="inputbox" value ="<?php echo EPAY_AUTH_SMS; ?>">
  217. </td>
  218. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHSMS_EXPLAIN');?></td>
  219. </tr>
  220. <tr>
  221. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL');?></strong></td>
  222. <td>
  223. <input type="text" name="EPAY_AUTH_MAIL" class="inputbox" value ="<?php echo EPAY_AUTH_MAIL; ?>">
  224. </td>
  225. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL_EXPLAIN');?></td>
  226. </tr>
  227. <tr>
  228. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_WINDOWSTATE');?></strong></td>
  229. <td>
  230. <select name="EPAY_WINDOW_STATE" class="inputbox">
  231. <option <?php if (EPAY_WINDOW_STATE == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_WINDOWSTATE_1');?> (1)</option>
  232. <option <?php if (EPAY_WINDOW_STATE == '2') echo "selected=\"selected\""; ?> value="2"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_WINDOWSTATE_2');?> (2)</option>
  233. </select>
  234. </td>
  235. <td>&nbsp;</td>
  236. </tr>
  237. <tr>
  238. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_3DSECURE');?></strong></td>
  239. <td>
  240. <select name="EPAY_3DSECURE" class="inputbox">
  241. <option <?php if (EPAY_3DSECURE == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_3DSECURE_1');?> (1)</option>
  242. <option <?php if (EPAY_3DSECURE == '2') echo "selected=\"selected\""; ?> value="2"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_3DSECURE_2');?> (2)</option>
  243. <option <?php if (EPAY_3DSECURE == '3') echo "selected=\"selected\""; ?> value="3"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_3DSECURE_3');?> (3)</option>
  244. </select>
  245. </td>
  246. <td>&nbsp;</td>
  247. </tr>
  248. <tr>
  249. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CALLBACK');?></strong></td>
  250. <td>
  251. <select name="EPAY_CALLBACK" class="inputbox">
  252. <option <?php if (EPAY_CALLBACK == '0') echo "selected"; ?> value="0"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CALLBACK_0');?> (0)</option>
  253. <option <?php if (EPAY_CALLBACK == '1') echo "selected"; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CALLBACK_1');?> (1)</option>
  254. </select>
  255. </td>
  256. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_CALLBACK_EXPLAIN');?></td>
  257. </tr>
  258. <tr>
  259. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_ADDFEE');?></strong></td>
  260. <td>
  261. <select name="EPAY_ADDFEE" class="inputbox">
  262. <option <?php if (EPAY_ADDFEE == '0') echo "selected=\"selected\""; ?> value="0"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_ADDFEE_0');?> (0)</option>
  263. <option <?php if (EPAY_ADDFEE == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_ADDFEE_1');?> (1)</option>
  264. </select>
  265. </td>
  266. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_ADDFEE_EXPLAIN');?></td>
  267. </tr>
  268. <tr>
  269. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_SUBSCRIPTION');?></strong></td>
  270. <td>
  271. <select name="EPAY_SUBSCRIPTION" class="inputbox">
  272. <option <?php if (EPAY_SUBSCRIPTION == '0') echo "selected=\"selected\""; ?> value="0"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_SUBSCRIPTION_0');?> (0)</option>
  273. <option <?php if (EPAY_SUBSCRIPTION == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_SUBSCRIPTION_1');?> (1)</option>
  274. </select>
  275. </td>
  276. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_SUBSCRIPTION_EXPLAIN');?></td>
  277. </tr>
  278. <tr>
  279. <td><strong><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL');?></strong></td>
  280. <td>
  281. <select name="EPAY_AUTHEMAILCUSTOMER" class="inputbox">
  282. <option <?php if (EPAY_AUTHEMAILCUSTOMER == '1') echo "selected=\"selected\""; ?> value="1"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL_1');?> (1)</option>
  283. <option <?php if (EPAY_AUTHEMAILCUSTOMER == '0') echo "selected=\"selected\""; ?> value="0"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL_0');?> (0)</option>
  284. </select>
  285. </td>
  286. <td><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_AUTHEMAIL_EXPLAIN');?></td>
  287. </tr>
  288. </table>
  289. <script language="JavaScript">
  290. function resetExtraInfo()
  291. {
  292. var form = document.adminForm;
  293. form.payment_extrainfo.value = "";
  294. }
  295. </script>
  296. <br/><br/>
  297. <div align="center">
  298. <span style="color:red"><?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_EXTRAINFO_RESET_EXPLAIN');?></span>
  299. <br/><br/>
  300. <input type="button" onclick="resetExtraInfo();" value="<?php echo $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_EXTRAINFO_RESET');?>" />
  301. <br/><br/>
  302. </div>
  303. <?php
  304. // return false if there\'s no configuration
  305. return true;
  306. }
  307. function has_configuration() {
  308. // return false if there's no configuration
  309. return true;
  310. }
  311. /**
  312. * Returns the "is_writeable" status of the configuration file
  313. * @param void
  314. * @returns boolean True when the configuration file is writeable, false when not
  315. */
  316. function configfile_writeable() {
  317. return is_writeable( CLASSPATH."payment/".__CLASS__.".cfg.php" );
  318. }
  319. /**
  320. * Returns the "is_readable" status of the configuration file
  321. * @param void
  322. * @returns boolean True when the configuration file is writeable, false when not
  323. */
  324. function configfile_readable() {
  325. return is_readable( CLASSPATH."payment/".__CLASS__.".cfg.php" );
  326. }
  327. /**
  328. * Writes the configuration file for this payment method
  329. * @param array An array of objects
  330. * @returns boolean True when writing was successful
  331. */
  332. function write_configuration( &$d ) {
  333. global $VM_LANG;
  334. $my_config_array = array("EPAY_MERCHANTNUMBER" => $d['EPAY_MERCHANTNUMBER'],
  335. "EPAY_LANGUAGE" => $d['EPAY_LANGUAGE'],
  336. "EPAY_CALLBACK" => $d['EPAY_CALLBACK'],
  337. "EPAY_VERIFIED_STATUS" => $d['EPAY_VERIFIED_STATUS'],
  338. "EPAY_INVALID_STATUS" => $d['EPAY_INVALID_STATUS'],
  339. "EPAY_INSTANT_CAPTURE" => $d['EPAY_INSTANT_CAPTURE'],
  340. "EPAY_GROUP" => $d['EPAY_GROUP'],
  341. "EPAY_MD5_TYPE" => $d['EPAY_MD5_TYPE'],
  342. "EPAY_MD5_KEY" => $d['EPAY_MD5_KEY'],
  343. "EPAY_AUTH_SMS" => $d['EPAY_AUTH_SMS'],
  344. "EPAY_AUTH_MAIL" => $d['EPAY_AUTH_MAIL'],
  345. "EPAY_WINDOW_STATE" => $d['EPAY_WINDOW_STATE'],
  346. "EPAY_3DSECURE" => $d['EPAY_3DSECURE'],
  347. "EPAY_SUBSCRIPTION" => $d['EPAY_SUBSCRIPTION'],
  348. "EPAY_ADDFEE" => $d['EPAY_ADDFEE'],
  349. "EPAY_CARDTYPES_0" => $d['EPAY_CARDTYPES_0'],
  350. "EPAY_CARDTYPES_1" => $d['EPAY_CARDTYPES_1'],
  351. "EPAY_CARDTYPES_2" => $d['EPAY_CARDTYPES_2'],
  352. "EPAY_CARDTYPES_3" => $d['EPAY_CARDTYPES_3'],
  353. "EPAY_CARDTYPES_4" => $d['EPAY_CARDTYPES_4'],
  354. "EPAY_CARDTYPES_5" => $d['EPAY_CARDTYPES_5'],
  355. "EPAY_CARDTYPES_6" => $d['EPAY_CARDTYPES_6'],
  356. "EPAY_CARDTYPES_7" => $d['EPAY_CARDTYPES_7'],
  357. "EPAY_CARDTYPES_8" => $d['EPAY_CARDTYPES_8'],
  358. "EPAY_CARDTYPES_9" => $d['EPAY_CARDTYPES_9'],
  359. "EPAY_CARDTYPES_10" => $d['EPAY_CARDTYPES_10'],
  360. "EPAY_CARDTYPES_12" => $d['EPAY_CARDTYPES_12'],
  361. "EPAY_CARDTYPES_13" => $d['EPAY_CARDTYPES_13'],
  362. "EPAY_CARDTYPES_14" => $d['EPAY_CARDTYPES_14'],
  363. "EPAY_CARDTYPES_15" => $d['EPAY_CARDTYPES_15'],
  364. "EPAY_CARDTYPES_16" => $d['EPAY_CARDTYPES_16'],
  365. "EPAY_CARDTYPES_17" => $d['EPAY_CARDTYPES_17'],
  366. "EPAY_CARDTYPES_18" => $d['EPAY_CARDTYPES_18'],
  367. "EPAY_CARDTYPES_19" => $d['EPAY_CARDTYPES_19'],
  368. "EPAY_CARDTYPES_21" => $d['EPAY_CARDTYPES_21'],
  369. "EPAY_CARDTYPES_22" => $d['EPAY_CARDTYPES_22'],
  370. "EPAY_AUTHEMAILCUSTOMER" => $d['EPAY_AUTHEMAILCUSTOMER']
  371. );
  372. $config = "<?php\n";
  373. //$config .= "defined('_VALID_MOS') or die('Direct Access to this location is not allowed.'); \n\n";
  374. foreach( $my_config_array as $key => $value ) {
  375. $config .= "define ('$key', '$value');\n";
  376. }
  377. $config .= "?>";
  378. if ($fp = fopen(CLASSPATH ."payment/".__CLASS__.".cfg.php", "w")) {
  379. fputs($fp, $config, strlen($config));
  380. fclose ($fp);
  381. //
  382. // Store the form which is posted to ePay
  383. //
  384. //$d['payment_extrainfo']
  385. return true;
  386. }
  387. else {
  388. $d["error"] = $VM_LANG->_('PHPSHOP_ADMIN_CFG_EPAY_ERR_CONFIGFILE')." ".CLASSPATH ."payment/".__CLASS__.".cfg.php";
  389. return false;
  390. }
  391. }
  392. //
  393. // The complete list of country currency codes.
  394. //
  395. function get_iso_code($code) {
  396. switch ($code) {
  397. case 'ADP': return '020'; break;
  398. case 'AED': return '784'; break;
  399. case 'AFA': return '004'; break;
  400. case 'ALL': return '008'; break;
  401. case 'AMD': return '051'; break;
  402. case 'ANG': return '532'; break;
  403. case 'AOA': return '973'; break;
  404. case 'ARS': return '032'; break;
  405. case 'AUD': return '036'; break;
  406. case 'AWG': return '533'; break;
  407. case 'AZM': return '031'; break;
  408. case 'BAM': return '977'; break;
  409. case 'BBD': return '052'; break;
  410. case 'BDT': return '050'; break;
  411. case 'BGL': return '100'; break;
  412. case 'BGN': return '975'; break;
  413. case 'BHD': return '048'; break;
  414. case 'BIF': return '108'; break;
  415. case 'BMD': return '060'; break;
  416. case 'BND': return '096'; break;
  417. case 'BOB': return '068'; break;
  418. case 'BOV': return '984'; break;
  419. case 'BRL': return '986'; break;
  420. case 'BSD': return '044'; break;
  421. case 'BTN': return '064'; break;
  422. case 'BWP': return '072'; break;
  423. case 'BYR': return '974'; break;
  424. case 'BZD': return '084'; break;
  425. case 'CAD': return '124'; break;
  426. case 'CDF': return '976'; break;
  427. case 'CHF': return '756'; break;
  428. case 'CLF': return '990'; break;
  429. case 'CLP': return '152'; break;
  430. case 'CNY': return '156'; break;
  431. case 'COP': return '170'; break;
  432. case 'CRC': return '188'; break;
  433. case 'CUP': return '192'; break;
  434. case 'CVE': return '132'; break;
  435. case 'CYP': return '196'; break;
  436. case 'CZK': return '203'; break;
  437. case 'DJF': return '262'; break;
  438. case 'DKK': return '208'; break;
  439. case 'DOP': return '214'; break;
  440. case 'DZD': return '012'; break;
  441. case 'ECS': return '218'; break;
  442. case 'ECV': return '983'; break;
  443. case 'EEK': return '233'; break;
  444. case 'EGP': return '818'; break;
  445. case 'ERN': return '232'; break;
  446. case 'ETB': return '230'; break;
  447. case 'EUR': return '978'; break;
  448. case 'FJD': return '242'; break;
  449. case 'FKP': return '238'; break;
  450. case 'GBP': return '826'; break;
  451. case 'GEL': return '981'; break;
  452. case 'GHC': return '288'; break;
  453. case 'GIP': return '292'; break;
  454. case 'GMD': return '270'; break;
  455. case 'GNF': return '324'; break;
  456. case 'GTQ': return '320'; break;
  457. case 'GWP': return '624'; break;
  458. case 'GYD': return '328'; break;
  459. case 'HKD': return '344'; break;
  460. case 'HNL': return '340'; break;
  461. case 'HRK': return '191'; break;
  462. case 'HTG': return '332'; break;
  463. case 'HUF': return '348'; break;
  464. case 'IDR': return '360'; break;
  465. case 'ILS': return '376'; break;
  466. case 'INR': return '356'; break;
  467. case 'IQD': return '368'; break;
  468. case 'IRR': return '364'; break;
  469. case 'ISK': return '352'; break;
  470. case 'JMD': return '388'; break;
  471. case 'JOD': return '400'; break;
  472. case 'JPY': return '392'; break;
  473. case 'KES': return '404'; break;
  474. case 'KGS': return '417'; break;
  475. case 'KHR': return '116'; break;
  476. case 'KMF': return '174'; break;
  477. case 'KPW': return '408'; break;
  478. case 'KRW': return '410'; break;
  479. case 'KWD': return '414'; break;
  480. case 'KYD': return '136'; break;
  481. case 'KZT': return '398'; break;
  482. case 'LAK': return '418'; break;
  483. case 'LBP': return '422'; break;
  484. case 'LKR': return '144'; break;
  485. case 'LRD': return '430'; break;
  486. case 'LSL': return '426'; break;
  487. case 'LTL': return '440'; break;
  488. case 'LVL': return '428'; break;
  489. case 'LYD': return '434'; break;
  490. case 'MAD': return '504'; break;
  491. case 'MDL': return '498'; break;
  492. case 'MGF': return '450'; break;
  493. case 'MKD': return '807'; break;
  494. case 'MMK': return '104'; break;
  495. case 'MNT': return '496'; break;
  496. case 'MOP': return '446'; break;
  497. case 'MRO': return '478'; break;
  498. case 'MTL': return '470'; break;
  499. case 'MUR': return '480'; break;
  500. case 'MVR': return '462'; break;
  501. case 'MWK': return '454'; break;
  502. case 'MXN': return '484'; break;
  503. case 'MXV': return '979'; break;
  504. case 'MYR': return '458'; break;
  505. case 'MZM': return '508'; break;
  506. case 'NAD': return '516'; break;
  507. case 'NGN': return '566'; break;
  508. case 'NIO': return '558'; break;
  509. case 'NOK': return '578'; break;
  510. case 'NPR': return '524'; break;
  511. case 'NZD': return '554'; break;
  512. case 'OMR': return '512'; break;
  513. case 'PAB': return '590'; break;
  514. case 'PEN': return '604'; break;
  515. case 'PGK': return '598'; break;
  516. case 'PHP': return '608'; break;
  517. case 'PKR': return '586'; break;
  518. case 'PLN': return '985'; break;
  519. case 'PYG': return '600'; break;
  520. case 'QAR': return '634'; break;
  521. case 'ROL': return '642'; break;
  522. case 'RUB': return '643'; break;
  523. case 'RUR': return '810'; break;
  524. case 'RWF': return '646'; break;
  525. case 'SAR': return '682'; break;
  526. case 'SBD': return '090'; break;
  527. case 'SCR': return '690'; break;
  528. case 'SDD': return '736'; break;
  529. case 'SEK': return '752'; break;
  530. case 'SGD': return '702'; break;
  531. case 'SHP': return '654'; break;
  532. case 'SIT': return '705'; break;
  533. case 'SKK': return '703'; break;
  534. case 'SLL': return '694'; break;
  535. case 'SOS': return '706'; break;
  536. case 'SRG': return '740'; break;
  537. case 'STD': return '678'; break;
  538. case 'SVC': return '222'; break;
  539. case 'SYP': return '760'; break;
  540. case 'SZL': return '748'; break;
  541. case 'THB': return '764'; break;
  542. case 'TJS': return '972'; break;
  543. case 'TMM': return '795'; break;
  544. case 'TND': return '788'; break;
  545. case 'TOP': return '776'; break;
  546. case 'TPE': return '626'; break;
  547. case 'TRL': return '792'; break;
  548. case 'TRY': return '949'; break;
  549. case 'TTD': return '780'; break;
  550. case 'TWD': return '901'; break;
  551. case 'TZS': return '834'; break;
  552. case 'UAH': return '980'; break;
  553. case 'UGX': return '800'; break;
  554. case 'USD': return '840'; break;
  555. case 'UYU': return '858'; break;
  556. case 'UZS': return '860'; break;
  557. case 'VEB': return '862'; break;
  558. case 'VND': return '704'; break;
  559. case 'VUV': return '548'; break;
  560. case 'XAF': return '950'; break;
  561. case 'XCD': return '951'; break;
  562. case 'XOF': return '952'; break;
  563. case 'XPF': return '953'; break;
  564. case 'YER': return '886'; break;
  565. case 'YUM': return '891'; break;
  566. case 'ZAR': return '710'; break;
  567. case 'ZMK': return '894'; break;
  568. case 'ZWD': return '716'; break;
  569. }
  570. //
  571. // As default return 208 for Danish Kroner
  572. //
  573. return '208';
  574. }
  575. /**************************************************************************
  576. ** name: process_payment()
  577. ** returns:
  578. ***************************************************************************/
  579. function process_payment($order_number, $order_total, &$d) {
  580. return true;
  581. }
  582. }