当前位置 : 主页 > 网络编程 > PHP >

微信企业付款

来源:互联网 收集:自由互联 发布时间:2021-06-28
ThinkPHP $v) { $params[$k] = $v; } ksort($params); $formatStr = $this-formatParaMap($params, false); $formatStr .= "key=20170919ab6c1dsys6te2mwin8eretrp"; $formatStr = md5($formatStr); $result = strtoupper($formatStr); return $result; } // 格
ThinkPHP
  $v) {
            $params[$k] = $v;
        }
        ksort($params);
        $formatStr = $this->formatParaMap($params, false);
        $formatStr .= "&key=20170919ab6c1dsys6te2mwin8eretrp";
        $formatStr = md5($formatStr);
        $result    = strtoupper($formatStr);

        return $result;
    }

    // 格式化参数
    public function formatParaMap($params, $urlencode)
    {
        $buff = "";
        ksort($params);
        foreach ($params as $k => $v) {
            if ($urlencode) {
                $v = urlencode($v);
            }
            $buff .= $k."=".$v."&";
        }
        if (strlen($buff) > 0) {
            $reqPar = substr($buff, 0, strlen($buff)-1);
        }
        return $reqPar;
    }

    public function payToUser()
    {
        $dataArr = array();
        $dataArr['amount']           = $this->amount;
        $dataArr['check_name']       = $this->check_name;
        $dataArr['desc']             = $this->desc;
        $dataArr['mch_appid']        = $this->mch_appid;
        $dataArr['mchid']            = $this->mchid;
        $dataArr['nonce_str']        = $this->nonce_str;
        $dataArr['openid']           = $this->openid;
        $dataArr['partner_trade_no'] = $this->partner_trade_no;
        $dataArr['re_user_name']     = $this->re_user_name;
        $dataArr['spbill_create_ip'] = $this->spbill_create_ip;

        $sign = $this->getSignStr($dataArr);
        // 组建xml参数
        $data="
 
                
  
   ".$this->mch_appid."
  
                
  
   ".$this->mchid."
          
                
  
   ".$this->nonce_str."
          
                
  
   ".$orderid."
          
                
  
   ".$openid."
          
                
  
   ".$this->check_name."
          
                
  
   ".$this->re_user_name."
          
                
  
   ".$amount."
          
                
  
   ".$this->desc."
          
                
  
   ".$this->spbill_create_ip."
          
                
  
   ".$sign."
          
        
 ";  

        // 发送请求
        $res = $this->http_post($this->url, $data);
        // ...
        
    }

    public function http_post($url, $data)
    {
    	$ch = curl_init ();        
        curl_setopt ( $ch, CURLOPT_URL, $url);        
        curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "POST" );        
        curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );        
        curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, FALSE );
        //两个证书(必填,请求需要双向证书。绝对地址)
        $zs1 = "/var/www/.../cert/apiclient_cert.pem";
        $zs2 = "/var/www/.../cert/apiclient_key.pem";
        curl_setopt ($ch,CURLOPT_SSLCERT,$zs1);        
        curl_setopt ($ch,CURLOPT_SSLKEY,$zs2);
        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 );     
        curl_close ( $ch );
        $info = simplexml_load_string($info, 'SimpleXMLElement', LIBXML_NOCDATA);
        $info = json_encode($info);
        $info = json_decode($info, true);
        return $info;
    }
}
网友评论