• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP APP微信提现接口代码

    本文实例为大家分享了APP微信提现接口的具体代码,供大家参考,具体内容如下

    之前分享了微信支付接口、现在给大家分享一下APP提现的接口。

    提现必须得用双向证书、所以大家一定要在微信的商户平台找到相应的地方去设置、因为我做这个提现已经有一段时间了、所以设置微信商户平台的那几个地方没有图的情况、也说不清楚、下次再做提现的时候、给大家分享如何设置商户平台那几个地方、不是很难、下面贴代码

    ?php
    namespace Home\Controller;
    use Think\Controller;
    class TixianController extends Controller{
    
      //高级功能-》开发者模式-》获取
      private $app_id1 = '';   //appid
      private $app_secret1 = ''; //secreat
      private $apikey1 = ''; //支付秘钥
      private $mchid1 = 's';    //商户号
      
        private $app_id=null;
        private $app_secret=null;
        private $apikey=null;
        private $mchid=null;
       
       
      public $error=0;
      public $state = '';
      //金额,需在实例化时传入
      public $amount = '0';
      //用户订单号,需在实例化时传入
      public $order_sn = '';
      //用户openid,需在实例化时传入
      public $openid = '';
      
      
    
      //微信提现操作接口-------》
      public function actionAct_tixian()
      {
       
       $this->state=md5(uniqid(rand(), TRUE));
       $this->amount=I('amount');//设置POST过来钱数
       $this->order_sn=rand(100,999).date('YmdHis'); //随机数可以作为单号
       $this->openid= I('openid'); //设置获取POST过来用户的OPENID
        $user_id = I('user_id');
    
       $this->app_id=$this->app_id1;
       $this->app_secret=$this->app_secret1;
       $this->apikey=$this->apikey1;
       $this->mchid=$this->mchid1;
       $xml=$this->tiXianAction();
       $result=simplexml_load_string($xml);
       
       if($result->return_code=='SUCCESS'  $result->result_code=='SUCCESS') {
    
            $cash = D('cash');
            $data['user_id'] = $user_id;
            $data['amount'] = $this->amount;
            $res = $cash->where('user_id="'.$user_id.'"')->find();
            if($res){
              $res2 = $cash->where('user_id="'.$user_id.'"')->setInc('amount',$this->amount);
              $res4 = D('member')->where('user_id="'.$user_id.'"')->setDec('user_balance',$this->amount);
            }else{
              $res3 = $cash->add($data);
            }
    
          $output = array('code' => 1, 'data' => $result->result_code, 'info' => '提现成功');
          exit(json_encode($output));
       }else{
    
          $output = array('code' => 2, 'data' => $xml, 'info' => '提现失败');
          exit(json_encode($output));
       }
      }
      /**
      * 提现接口操作,控制器调用
      * @param $openid 用户openid 唯一标示
      * @return
      */
      //提现接口操作
      public function tiXianAction(){
       //获取xml数据
       $data=$this->getdataXml($this->openid);
       $ch = curl_init ();
       //接口地址
       $MENU_URL="https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
    
       curl_setopt ( $ch, CURLOPT_URL, $MENU_URL );
       curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "POST" );
       curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
       curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
    
       //证书地址,微信支付下面
    
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
        curl_setopt($ch,CURLOPT_SSLCERT, 'C:\web\www\Home\wx_pay\apiclient_cert.pem'); //证书这块大家把文件放到哪都行、
        curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
        curl_setopt($ch,CURLOPT_SSLKEY, 'C:\web\www\Home\wx_pay\apiclient_key.pem');//注意证书名字千万别写错、
    
       //$zs1=dirname(dirname(__FILE__)).'\wx_pay\apiclient_cert.pem';
       //$zs2=dirname(dirname(__FILE__)).'\wx_pay\apiclient_key.pem';
       //show_bug($zs1);
    
       //curl_setopt($ch,CURLOPT_SSLCERT,$zs1);
       //curl_setopt($ch,CURLOPT_SSLKEY,$zs2);
       // curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01;
       // Windows NT 5.0)');
       //curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, 1 );
       curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 );
       curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
       curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
       $info = curl_exec ( $ch );
        //返回结果
        if($info){
          curl_close($ch);
          return $info;
        } else {
          $error = curl_errno($ch);
          curl_close($ch);
          return "curl出错,错误码:$error";
        }
      }
      /**
      * 获取数据封装为数组
      * @param $openid 用户openid 唯一标示
      * @return xml
      */
    
      private function getdataXml($openid){
       //封装成数据
       $dataArr=array(
         'amount'=>$this->amount*100,//金额(以分为单位,必须大于100)
         'check_name'=>'NO_CHECK',//校验用户姓名选项,NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账)OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)
         'desc'=>'提现',//描述
         'mch_appid'=>$this->app_id,
         'mchid'=>$this->mchid,//商户号
         'nonce_str'=>rand(100000, 999999),//不长于32位的随机数
         'openid'=>$openid,//用户唯一标识
         'partner_trade_no'=>$this->order_sn,//商户订单号
         're_user_name'=>'',//用户姓名,check_name为NO_CHECK时为可选项
         'spbill_create_ip'=>$_SERVER["REMOTE_ADDR"],//服务器ip
       );
       //获取签名
       $sign=$this->getSign($dataArr);
       //xml数据
       $data="xml>
         mch_appid>".$dataArr['mch_appid']."/mch_appid>
         mchid>".$dataArr['mchid']."/mchid>
         nonce_str>".$dataArr['nonce_str']."/nonce_str>
         partner_trade_no>".$dataArr['partner_trade_no']."/partner_trade_no>
         openid>".$dataArr['openid']."/openid>
         check_name>".$dataArr['check_name']."/check_name>
         re_user_name>".$dataArr['re_user_name']."/re_user_name>
         amount>".$dataArr['amount']."/amount>
         desc>".$dataArr['desc']."/desc>
         spbill_create_ip>".$dataArr['spbill_create_ip']."/spbill_create_ip>
         sign>".$sign."/sign>
         /xml>";
       return $data;
    
      }
      /**
      *   作用:格式化参数,签名过程需要使用
      */
      private function formatBizQueryParaMap($paraMap, $urlencode)
      {
    
       $buff = "";
       ksort($paraMap);
       foreach ($paraMap as $k => $v)
       {
         if($v){
          if($urlencode)
          {
            $v = urlencode($v);
          }
    
          $buff .= $k . "=" . $v . "";
         }
    
       }
       $reqPar=NULL;
       if (strlen($buff) > 0)
       {
         $reqPar = substr($buff, 0, strlen($buff)-1);
       }
    
       return $reqPar;
      }
    
      /**
      *   作用:生成签名
      */
      private function getSign($Obj)
      {
    
       foreach ($Obj as $k => $v)
       {
         $Parameters[$k] = $v;
       }
       //签名步骤一:按字典序排序参数
       ksort($Parameters);
       $String = $this->formatBizQueryParaMap($Parameters, false);
       //echo '【string1】'.$String.'/br>';
       //签名步骤二:在string后加入KEY
       $String = $String."key=".$this->apikey;
       //echo "【string2】".$String."/br>";
       //签名步骤三:MD5加密
       $String = md5($String);
       //echo "【string3】 ".$String."/br>";
       //签名步骤四:所有字符转为大写
       $result_ = strtoupper($String);
       //echo "【result】 ".$result_."/br>";
       return $result_;
      }
      //-----------
      private function http($url, $method='POST', $postfields = null, $headers = array())
      {
       header("Content-Type:text/html;charset=utf-8");
       $ch = curl_init();
       /* Curl settings */
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_POSTFIELDS, "");
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
       curl_setopt($ch, CURLOPT_TIMEOUT, 30);
       switch ($method){
         case 'POST':
          curl_setopt($ch,CURLOPT_POST, true);
          break;
       }
       curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
       curl_setopt($ch, CURLINFO_HEADER_OUT, true);
       $response = curl_exec($ch);
       $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //返回请求状态码
       curl_close($ch);
       return array($http_code, $response);
      }
    
    }
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 微信企业转账之入口类分装php代码
    • php实现微信公众号企业转账功能
    • PHP实现微信退款功能
    • PHP实现微信申请退款功能
    • PHP实现微信对账单处理
    • php提取微信账单的有效信息
    • 基于php的微信公众平台开发入门实例
    • php判断页面是否是微信打开的示例(微信打开网页)
    • PHP对接微信公众平台消息接口开发流程教程
    • php实现微信企业转账功能
    上一篇:PHP实现微信提现功能
    下一篇:php实现数组重复数字统计实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP APP微信提现接口代码 PHP,APP,微信,提现,接口,代码,