pay.action.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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 payCModule extends baseCModule
  10. {
  11. var $type_order = array(
  12. 'red_photo'=>11,
  13. 'weixin'=>12,
  14. 'goods'=>13,
  15. 'photo'=>14,
  16. 'reward'=>15,
  17. 'chat'=>16,
  18. );
  19. var $type_list = array(
  20. 'red_photo','weixin','goods','photo','reward','chat'
  21. );
  22. var $user_type_list = array(
  23. 'weixin','reward','chat'
  24. );
  25. public function pay_list(){
  26. $root = array();
  27. $root['status'] = 1;
  28. $root['error'] = '';
  29. if(!$GLOBALS['user_info']){
  30. $root['error'] = "用户未登陆,请先登陆.";
  31. $root['status'] = 0;
  32. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  33. }
  34. $pay_list = load_auto_cache("pay_list");
  35. $root['list'] = $pay_list;
  36. $root['weixin_price'] = $GLOBALS['db']->getOne("select weixin_price from ".DB_PREFIX."user where id = ".$GLOBALS['user_info']['id']);
  37. ajax_return($root);
  38. }
  39. /**
  40. * 用户充值支付
  41. */
  42. public function pay(){
  43. $root = array();
  44. $root['status'] = 1;
  45. $root['error'] = "";
  46. //$GLOBALS['user_info']['id'] = 1;
  47. if(!$GLOBALS['user_info']){
  48. $root['error'] = "用户未登陆,请先登陆.";
  49. $root['status'] = 2;
  50. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  51. }else{
  52. $user_id = intval($GLOBALS['user_info']['id']);//用户ID
  53. $weibo_id = intval($_REQUEST['weibo_id']);//支付项目id
  54. if(!$weibo_id){
  55. $root['error'] = "动态id无效";
  56. $root['status'] = 0;
  57. ajax_return($root);
  58. }
  59. $weibo = $GLOBALS['db']->getRow("select type,price,user_id from ".DB_PREFIX."weibo where id = ".$weibo_id);
  60. if(!$weibo){
  61. $root['error'] = "该动态id无效";
  62. $root['status'] = 0;
  63. ajax_return($root);
  64. }
  65. $to_user_id = $weibo['user_id'];
  66. if($to_user_id==$user_id){
  67. $root['error'] = "无法购买自己的商品!";
  68. $root['status'] = 0;
  69. ajax_return($root);
  70. }
  71. $type = $weibo['type'];
  72. if(!in_array($type,$this->type_list)){
  73. $root['error'] = "该动态类型无效";
  74. $root['status'] = 0;
  75. ajax_return($root);
  76. }
  77. $money = floatval($_REQUEST['money']);//支付金额
  78. if($weibo['price']!=$money){
  79. $root['error'] = "金额无效!";
  80. $root['status'] = 0;
  81. ajax_return($root);
  82. }
  83. $pay_id = intval($_REQUEST['pay_id']);//支付id
  84. if($pay_id == 0){
  85. $root['error'] = "支付id无效";
  86. $root['status'] = 0;
  87. }elseif( $money == 0){
  88. $root['error'] = "动态id无效或充值金额不能为0";
  89. $root['status'] = 0;
  90. }else{
  91. $sql = "select id,name,class_name,logo from ".DB_PREFIX."payment where online_pay = 3 and id =".$pay_id;
  92. $pay = $GLOBALS['db']->getRow($sql,true,true);
  93. if(!$pay){
  94. $root['error'] = "支付id无效";
  95. $root['status'] = 0;
  96. }else{
  97. $payment_notice['create_time'] = NOW_TIME;
  98. $payment_notice['user_id'] = $user_id;
  99. $payment_notice['payment_id'] = $pay_id;
  100. $payment_notice['money'] = $money;
  101. $type_des = array(
  102. 'red_photo'=>'图片红包',
  103. 'goods'=>'购买虚拟商品',
  104. 'photo'=>'购买写真图片',
  105. 'weixin'=>'购买微信号',
  106. 'reward'=>'打赏',
  107. 'chat'=>'聊天付费',
  108. );
  109. $payment_notice['recharge_name'] = $type_des[$type];
  110. $payment_notice['type'] = 11;
  111. $payment_notice['type_cate'] = $type;
  112. $payment_notice['order_id'] = $weibo_id;
  113. $payment_notice['to_user_id'] = $weibo['user_id'];
  114. do{
  115. $payment_notice['notice_sn'] = to_date(NOW_TIME,"YmdHis").rand(100,999);
  116. $GLOBALS['db']->autoExecute(DB_PREFIX."payment_notice",$payment_notice,"INSERT","","SILENT");
  117. $notice_id = $GLOBALS['db']->insert_id();
  118. }while($notice_id==0);
  119. $class_name = $pay['class_name']."_payment";
  120. fanwe_require(APP_ROOT_PATH."system/payment/".$class_name.".php");
  121. $o = new $class_name;
  122. $pay= $o->get_payment_code($notice_id);
  123. $root['pay'] = $pay;
  124. }
  125. }
  126. }
  127. ajax_return($root);
  128. }
  129. public function pay_user(){
  130. $root = array();
  131. $root['status'] = 1;
  132. $root['error'] = "";
  133. //$GLOBALS['user_info']['id'] = 1;
  134. if(!$GLOBALS['user_info']){
  135. $root['error'] = "用户未登陆,请先登陆.";
  136. $root['status'] = 2;
  137. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  138. }else{
  139. $user_id = intval($GLOBALS['user_info']['id']);//用户ID
  140. $to_user_id = intval($_REQUEST['to_user_id']);//支付项目id
  141. if(!$to_user_id){
  142. $root['error'] = "会员id无效";
  143. $root['status'] = 0;
  144. ajax_return($root);
  145. }
  146. if($to_user_id==$user_id){
  147. $root['error'] = "无法给自己打赏!";
  148. $root['status'] = 0;
  149. ajax_return($root);
  150. }
  151. $type = strim($_REQUEST['type']);
  152. if(!in_array($type,$this->user_type_list)){
  153. $root['error'] = "该动态类型无效";
  154. $root['status'] = 0;
  155. api_ajax_return($root);
  156. }
  157. $account= '';
  158. if($type=='weixin'){
  159. $account = strim($_REQUEST['account']);
  160. $sql_demo = "select weixin_account from ".DB_PREFIX."user where id =".$to_user_id;
  161. $memo = $GLOBALS['db']->getOne($sql_demo,true,true);
  162. if(!$account){
  163. $root['error'] = "请输入微信账号!";
  164. $root['status'] = 0;
  165. api_ajax_return($root);
  166. }
  167. }
  168. $money = floatval($_REQUEST['money']);//支付金额
  169. $pay_id = intval($_REQUEST['pay_id']);//支付id
  170. if($pay_id == 0){
  171. $root['error'] = "支付id无效";
  172. $root['status'] = 0;
  173. }elseif( $money == 0){
  174. $root['error'] = "充值金额不能为0";
  175. $root['status'] = 0;
  176. }else{
  177. $sql = "select id,name,class_name,logo from ".DB_PREFIX."payment where online_pay = 3 and id =".$pay_id;
  178. $pay = $GLOBALS['db']->getRow($sql,true,true);
  179. if(!$pay){
  180. $root['error'] = "支付id无效";
  181. $root['status'] = 0;
  182. }else{
  183. $payment_notice['create_time'] = NOW_TIME;
  184. $payment_notice['user_id'] = $user_id;
  185. $payment_notice['payment_id'] = $pay_id;
  186. $payment_notice['money'] = $money;
  187. $type_des = array(
  188. 'red_photo'=>'图片红包',
  189. 'goods'=>'购买虚拟商品',
  190. 'photo'=>'购买写真图片',
  191. 'weixin'=>'购买微信号',
  192. 'reward'=>'打赏',
  193. 'chat'=>'聊天付费',
  194. );
  195. $payment_notice['pay_user_info'] = $account;
  196. $payment_notice['recharge_name'] = $type_des[$type];
  197. $payment_notice['type'] = 11;
  198. $payment_notice['type_cate'] = $type;
  199. $payment_notice['to_user_id'] = $to_user_id;
  200. $payment_notice['from_user_info'] = $account;
  201. $payment_notice['memo'] = $memo;
  202. do{
  203. $payment_notice['notice_sn'] = to_date(NOW_TIME,"YmdHis").rand(100,999);
  204. $GLOBALS['db']->autoExecute(DB_PREFIX."payment_notice",$payment_notice,"INSERT","","SILENT");
  205. $notice_id = $GLOBALS['db']->insert_id();
  206. }while($notice_id==0);
  207. $class_name = $pay['class_name']."_payment";
  208. fanwe_require(APP_ROOT_PATH."system/payment/".$class_name.".php");
  209. $o = new $class_name;
  210. $pay= $o->get_payment_code($notice_id);
  211. $root['pay'] = $pay;
  212. }
  213. }
  214. }
  215. ajax_return($root);
  216. }
  217. //
  218. public function pay_user_info(){
  219. if(!$GLOBALS['user_info']){
  220. $root['error'] = "用户未登陆,请先登陆.";
  221. $root['status'] = 0;
  222. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  223. }
  224. $to_user_id = intval($_REQUEST['to_user_id']);
  225. if(!$to_user_id){
  226. $root['error'] = "会员ID不能为空.";
  227. $root['status'] = 0;
  228. }
  229. $to_user = $GLOBALS['db']->getRow("select id as user_id,nick_name,head_image,is_authentication from ".DB_PREFIX."user where id = ".$to_user_id);
  230. if(!$to_user){
  231. $root['error'] = "会员信息不存在.";
  232. $root['status'] = 0;
  233. }
  234. $to_user['head_image'] = deal_weio_image($to_user['head_image'],'head_image');
  235. $root['user'] = $to_user;
  236. $root['money_list'] = array(
  237. '0.01','8','25','69','122','258','520','666','1314','1999'
  238. );
  239. $root['status'] = 1;
  240. api_ajax_return($root);
  241. }
  242. }