txlist.inc.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. global $_GPC, $_W;
  3. $GLOBALS['frames'] = $this->getMainMenu();
  4. $operation = !empty($_GPC['op']) ? $_GPC['op'] : 'display';
  5. $type=empty($_GPC['type']) ? 'all' :$_GPC['type'];
  6. $sys=pdo_get('zhtc_system',array('uniacid'=>$_W['uniacid']),'tx_mode');
  7. $state=$_GPC['state'];
  8. $pageindex = max(1, intval($_GPC['page']));
  9. $pagesize=10;
  10. $where=' WHERE uniacid=:uniacid';
  11. $data[':uniacid']=$_W['uniacid'];
  12. if($_GPC['keywords']){
  13. $op=$_GPC['keywords'];
  14. $where.=" and name LIKE concat('%', :name,'%') ";
  15. $data[':name']=$op;
  16. }
  17. if($type=='all'){
  18. $sql="SELECT * FROM ".tablename('zhtc_withdrawal') . " ". $where." ORDER BY time DESC";
  19. $total=pdo_fetchcolumn("SELECT count(*) FROM ".tablename('zhtc_withdrawal') ."".$where." ORDER BY time DESC",$data);
  20. }else{
  21. $where.= " and state=".$state;
  22. $sql="SELECT * FROM ".tablename('zhtc_withdrawal') . " ".$where." ORDER BY time DESC";
  23. $data[':uniacid']=$_W['uniacid'];
  24. $total=pdo_fetchcolumn("SELECT count(*) FROM ".tablename('zhtc_withdrawal') . " ".$where." ORDER BY time DESC",$data);
  25. }
  26. $list=pdo_fetchall( $sql,$data);
  27. $select_sql =$sql." LIMIT " .($pageindex - 1) * $pagesize.",".$pagesize;
  28. $list=pdo_fetchall($select_sql,$data);
  29. $pager = pagination($total, $pageindex, $pagesize);
  30. if($operation=='adopt'){//审核通过
  31. $id=$_GPC['id'];
  32. $list=pdo_get('zhtc_withdrawal',array('id'=>$_GPC['id']));
  33. if($list['store_id']){
  34. $store=pdo_get('zhtc_store',array('id'=>$list['store_id']));
  35. $user=pdo_get('zhtc_user',array('id'=>$store['user_id']));
  36. }else{
  37. $user=pdo_get('zhtc_user',array('id'=>$list['user_id']));
  38. }
  39. //获取系统打款方式
  40. $xtsystem=pdo_get('zhtc_system',array('uniacid'=>$_W['uniacid']));
  41. $client_ip=$_SERVER['SERVER_ADDR'];
  42. if(empty($client_ip)){
  43. $client_ip=$xtsystem['client_ip'];
  44. }
  45. if($list['type']==2&&$xtsystem['tx_mode']==2){
  46. ////////////////打款//////////////////////
  47. function arraytoxml($data){
  48. $str='<xml>';
  49. foreach($data as $k=>$v) {
  50. $str.='<'.$k.'>'.$v.'</'.$k.'>';
  51. }
  52. $str.='</xml>';
  53. return $str;
  54. }
  55. function xmltoarray($xml) {
  56. //禁止引用外部xml实体
  57. libxml_disable_entity_loader(true);
  58. $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
  59. $val = json_decode(json_encode($xmlstring),true);
  60. return $val;
  61. }
  62. function curl($param="",$url) {
  63. global $_GPC, $_W;
  64. $postUrl = $url;
  65. $curlPost = $param;
  66. $ch = curl_init(); //初始化curl
  67. curl_setopt($ch, CURLOPT_URL,$postUrl); //抓取指定网页
  68. curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
  69. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
  70. curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
  71. curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); // 增加 HTTP Header(头)里的字段
  72. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 终止从服务端进行验证
  73. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  74. curl_setopt($ch,CURLOPT_SSLCERT,IA_ROOT . "/addons/zh_tcwq/cert/".'apiclient_cert_' . $_W['uniacid'] . '.pem'); //这个是证书的位置绝对路径
  75. curl_setopt($ch,CURLOPT_SSLKEY,IA_ROOT . "/addons/zh_tcwq/cert/".'apiclient_key_' . $_W['uniacid'] . '.pem'); //这个也是证书的位置绝对路径
  76. $data = curl_exec($ch); //运行curl
  77. curl_close($ch);
  78. return $data;
  79. }
  80. $system=pdo_get('zhtc_system',array('uniacid'=>$_W['uniacid']));
  81. $data=array(
  82. 'mch_appid'=>$system['appid'],//商户账号appid
  83. 'mchid'=>$system['mchid'],//商户号
  84. 'nonce_str'=>rand(1111111111,9999999999),//随机字符串
  85. 'partner_trade_no'=>$list['time'],//商户订单号
  86. 'openid'=>$user['openid'],//用户openid
  87. 'check_name'=>'NO_CHECK',//校验用户姓名选项,
  88. 're_user_name'=>$list['name'],//收款用户姓名
  89. 'amount'=>$list['sj_cost']*100,//金额
  90. 'desc'=>'提现打款',//企业付款描述信息
  91. //'spbill_create_ip'=>$_SERVER['SERVER_ADDR'],//Ip地址
  92. 'spbill_create_ip'=>$client_ip,
  93. );
  94. $key=$system['wxkey'];///这个就是个API密码。32位的。。随便MD5一下就可以了
  95. // $key=md5($key);
  96. $data=array_filter($data);
  97. ksort($data);
  98. $str='';
  99. foreach($data as $k=>$v) {
  100. $str.=$k.'='.$v.'&';
  101. }
  102. $str.='key='.$key;
  103. $data['sign']=md5($str);
  104. $xml=arraytoxml($data);
  105. $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
  106. $res=curl($xml,$url);
  107. $return=xmltoarray($res);
  108. if($return['result_code']=='SUCCESS'){
  109. $res=pdo_update('zhtc_withdrawal',array('state'=>2,'sh_time'=>time()),array('id'=>$id));
  110. message('审核成功',$this->createWebUrl('txlist',array()),'success');
  111. }elseif($return['err_code_des']){
  112. message($return['err_code_des'],$this->createWebUrl('txlist',array()),'error');
  113. }else{
  114. message('审核失败',$this->createWebUrl('txlist',array()),'error');
  115. }
  116. // print_r($return);
  117. ////////////////打款//////////////////////
  118. }else{
  119. $res=pdo_update('zhtc_withdrawal',array('state'=>2,'sh_time'=>time()),array('id'=>$id));
  120. if($res){
  121. message('审核成功',$this->createWebUrl('txlist',array()),'success');
  122. }else{
  123. message('审核失败','','error');
  124. }
  125. }
  126. }
  127. if($operation=='reject'){
  128. $id=$_GPC['id'];
  129. $list=pdo_get('zhtc_withdrawal',array('id'=>$id));
  130. $res=pdo_update('zhtc_withdrawal',array('state'=>3,'sh_time'=>time()),array('id'=>$id));
  131. if($res){
  132. if($list['method']==1){
  133. pdo_update('zhtc_user',array('money +='=>$list['tx_cost']),array('id'=>$list['user_id']));
  134. }elseif($list['method']==2){
  135. pdo_update('zhtc_store',array('wallet +='=>$list['tx_cost']),array('id'=>$list['store_id']));
  136. pdo_delete('zhtc_store_wallet',array('tx_id'=>$id));
  137. }
  138. message('拒绝成功',$this->createWebUrl('txlist',array()),'success');
  139. }else{
  140. message('拒绝失败','','error');
  141. }
  142. }
  143. if($operation=='delete'){
  144. $id=$_GPC['id'];
  145. $res=pdo_delete('zhtc_withdrawal',array('id'=>$id));
  146. if($res){
  147. message('删除成功',$this->createWebUrl('txlist',array()),'success');
  148. }else{
  149. message('删除失败','','error');
  150. }
  151. }
  152. include $this->template('web/txlist');