PaymentAction.class.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class PaymentAction extends CommonAction{
  10. private function read_modules()
  11. {
  12. $directory = APP_ROOT_PATH."system/payment/";
  13. $read_modules = true;
  14. $dir = @opendir($directory);
  15. $modules = array();
  16. while (false !== ($file = @readdir($dir)))
  17. {
  18. if (preg_match("/^.*?\.php$/", $file))
  19. {
  20. $module = require_once($directory .$file);
  21. if(!defined('OPEN_PC') || OPEN_PC != 1){
  22. if(in_array($module['class_name'], array('Wxjspay'))){
  23. continue;
  24. }
  25. }
  26. $modules[] = $module;
  27. }
  28. }
  29. @closedir($dir);
  30. unset($read_modules);
  31. foreach ($modules AS $key => $value)
  32. {
  33. ksort($modules[$key]);
  34. }
  35. ksort($modules);
  36. return $modules;
  37. }
  38. public function index()
  39. {
  40. $modules = $this->read_modules();
  41. $db_modules = $GLOBALS['db']->getAll("select * from ".DB_PREFIX."payment");
  42. foreach($modules as $k=>$v)
  43. {
  44. foreach($db_modules as $kk=>$vv)
  45. {
  46. if($v['class_name']==$vv['class_name'])
  47. {
  48. //已安装
  49. $modules[$k]['id'] = $vv['id'];
  50. if($v['class_name']=='Wwxjspay'){
  51. $modules[$k]['total_amount'] = floatval($GLOBALS['db']->getOne("select sum(money) from ".DB_PREFIX."user_refund where is_pay=3 and withdrawals_type=0"));
  52. }else{
  53. $modules[$k]['total_amount'] = $vv['total_amount'];
  54. }
  55. $modules[$k]['installed'] = 1;
  56. $modules[$k]['is_effect'] = $vv['is_effect'];
  57. $modules[$k]['sort'] = $vv['sort'];
  58. break;
  59. }
  60. }
  61. if($modules[$k]['installed'] != 1)
  62. $modules[$k]['installed'] = 0;
  63. $modules[$k]['is_effect'] = intval($modules[$k]['is_effect']);
  64. $modules[$k]['sort'] = intval($modules[$k]['sort']);
  65. $modules[$k]['total_amount'] = floatval($modules[$k]['total_amount']);
  66. $modules[$k]['reg_url'] = $v['reg_url']?$v['reg_url']:'';
  67. }
  68. $this->assign("payment_list",$modules);
  69. $this->display();
  70. }
  71. public function install()
  72. {
  73. $class_name = $_REQUEST['class_name'];
  74. $directory = APP_ROOT_PATH."system/payment/";
  75. $read_modules = true;
  76. $file = $directory.$class_name."_payment.php";
  77. if(file_exists($file))
  78. {
  79. $module = require_once($file);
  80. $rs = M("Payment")->where("class_name = '".$class_name."'")->count();
  81. if($rs > 0)
  82. {
  83. $this->error(l("PAYMENT_INSTALLED"));
  84. }
  85. }
  86. else
  87. {
  88. $this->error(l("INVALID_OPERATION"));
  89. }
  90. //开始插入数据
  91. $data['name'] = $module['name'];
  92. $data['class_name'] = $module['class_name'];
  93. $data['online_pay'] = $module['online_pay'];
  94. $data['lang'] = $module['lang'];
  95. $data['config'] = $module['config'];
  96. $data['sort'] = (M("Payment")->max("sort") + 1);
  97. $this->assign("data",$data);
  98. $this->display();
  99. }
  100. public function insert()
  101. {
  102. $data = M(MODULE_NAME)->create ();
  103. if(empty($data['name'])){
  104. $this->error("请输入支付接口名称");
  105. }
  106. $data['config'] = serialize($_REQUEST['config']);
  107. // 更新数据
  108. $log_info = $data['name'];
  109. $list=M(MODULE_NAME)->add($data);
  110. $this->assign("jumpUrl",u(MODULE_NAME."/index"));
  111. if (false !== $list) {
  112. clear_auto_cache("pay_list");
  113. load_auto_cache("pay_list");
  114. //成功提示
  115. save_log($log_info.L("INSTALL_SUCCESS"),1);
  116. $this->success(L("INSTALL_SUCCESS"));
  117. } else {
  118. //错误提示
  119. save_log($log_info.L("INSTALL_FAILED"),0);
  120. $this->error(L("INSTALL_FAILED"));
  121. }
  122. }
  123. public function edit() {
  124. $id = intval($_REQUEST ['id']);
  125. $condition['id'] = $id;
  126. $vo = M(MODULE_NAME)->where($condition)->find();
  127. $directory = APP_ROOT_PATH."system/payment/";
  128. $read_modules = true;
  129. $file = $directory.$vo['class_name']."_payment.php";
  130. if(file_exists($file))
  131. {
  132. $module = require_once($file);
  133. }
  134. else
  135. {
  136. $this->error(l("INVALID_OPERATION"));
  137. }
  138. $vo['config'] = unserialize($vo['config']);
  139. $data['lang'] = $module['lang'];
  140. $data['config'] = $module['config'];
  141. $this->assign ( 'vo', $vo );
  142. $this->assign ( 'data', $data );
  143. $this->display ();
  144. }
  145. public function update()
  146. {
  147. $data = M(MODULE_NAME)->create ();
  148. if(empty($data['name'])){
  149. $this->error("请输入支付接口名称");
  150. }
  151. $data['config'] = serialize($_REQUEST['config']);
  152. $log_info = M(MODULE_NAME)->where("id=".intval($data['id']))->getField("name");
  153. $this->assign("jumpUrl",u(MODULE_NAME."/edit",array("id"=>$data['id'])));
  154. // 更新数据
  155. $list=M(MODULE_NAME)->save ($data);
  156. if (false !== $list) {
  157. clear_auto_cache("pay_list");
  158. load_auto_cache("pay_list");
  159. save_log($log_info.L("UPDATE_SUCCESS"),1);
  160. $this->success(L("UPDATE_SUCCESS"));
  161. } else {
  162. //错误提示
  163. save_log($log_info.L("UPDATE_FAILED"),0);
  164. $this->error(L("UPDATE_FAILED"),0,$log_info.L("UPDATE_FAILED"));
  165. }
  166. }
  167. public function uninstall()
  168. {
  169. $ajax = intval($_REQUEST['ajax']);
  170. $id = intval($_REQUEST ['id']);
  171. $data = M(MODULE_NAME)->getById($id);
  172. if($data)
  173. {
  174. $info = $data['name'];
  175. $list = M(MODULE_NAME)->where ( array('id'=>$data['id']) )->delete();
  176. clear_auto_cache("pay_list");
  177. load_auto_cache("pay_list");
  178. if ($list!==false) {
  179. save_log($info.l("UNINSTALL_SUCCESS"),1);
  180. $this->success (l("UNINSTALL_SUCCESS"),$ajax);
  181. } else {
  182. save_log($info.l("UNINSTALL_FAILED"),0);
  183. $this->error (l("UNINSTALL_FAILED"),$ajax);
  184. }
  185. }
  186. else
  187. {
  188. $this->error (l("INVALID_OPERATION"),$ajax);
  189. }
  190. }
  191. }
  192. ?>