成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能

php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能

熱門標(biāo)簽:太原400電話申請(qǐng)流程 合肥企業(yè)外呼系統(tǒng)線路 桂陽(yáng)公司如何做地圖標(biāo)注 代理打電話機(jī)器人 神龍斗士電話機(jī)器人 萍鄉(xiāng)商鋪地圖標(biāo)注 電信外呼系統(tǒng)多少錢一個(gè)月 企業(yè)400電話辦理多少費(fèi)用 宿州正規(guī)外呼系統(tǒng)軟件

本文實(shí)例為大家分享了php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬的具體代碼,供大家參考,具體內(nèi)容如下

?php 
/** 
* 配置賬號(hào)信息 
* 配置要和證書在一起!?。?! 
*/ 
 
class WxTransfersConfig 
{ 
 //=======【基本信息設(shè)置】==============
 // 
 /** 
  * TODO: 修改這里配置為您自己申請(qǐng)的商戶信息 
  * 微信公眾號(hào)信息配置 
  * 
  * APPID:綁定支付的APPID(必須配置,開戶郵件中可查看) 
  * 
  * MCHID:商戶號(hào)(必須配置,開戶郵件中可查看) 
  * 
  * KEY:商戶支付密鑰,參考開戶郵件設(shè)置(必須配置,登錄商戶平臺(tái)自行設(shè)置) 
  * 設(shè)置地址:https://pay.weixin.qq.com/index.php/account/api_cert 
  * 
  */ 
 const APPID = ''; 
 const MCHID = ''; 
 const KEY = ''; 
 //=======【證書路徑設(shè)置】===================================== 
 /** 
  * TODO:設(shè)置商戶證書路徑 
  * 證書路徑,注意應(yīng)該填寫絕對(duì)路徑,發(fā)送紅包和查詢需要,可登錄商戶平臺(tái)下載 
  * API證書下載地址:https://pay.weixin.qq.com/index.php/account/api_cert,下載之前需要安裝商戶操作證書) 
  * @var path 跟這個(gè)文件同一目錄下的cert文件夾放置證書?。。。?
  */ 
 const SSLCRET12 = 'cert/apiclient_cert.p12'; 
 const SSLCERT_PATH = 'cert/apiclient_cert.pem'; 
 const SSLKEY_PATH = 'cert/apiclient_key.pem'; 
 const SSLROOTCA = 'cert/rootca.pem'; 
  
 //=======【證書路徑設(shè)置】===================================== 
 /** 
  * 獲取文件的路徑,證書需要完整路徑 
  * @return string 
  */ 
 public static function getRealPath(){ 
  return __DIR__.'/'; 
 } 
} 

微信企業(yè)轉(zhuǎn)賬工具類:

?php 
require_once "WxTransfers.Config.php"; 
 
/** 
 * 微信企業(yè)轉(zhuǎn)賬工具類 
 */ 
class WxTransfers 
{ 
 // 企業(yè)轉(zhuǎn)賬請(qǐng)求地址 
 const TRANSFERS_URL = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; 
  
 //獲取轉(zhuǎn)賬信息地址 
 const GETINFO_URL='https://api.mch.weixin.qq.com/mmpaymkttransfers/gettransferinfo'; 
  
 // 轉(zhuǎn)賬需要的配置 'wxappid','mch_id','key' 
 private $_keys; 
  
 // 轉(zhuǎn)賬需要的證書文件 'api_cert', 'api_key', 'rootca',請(qǐng)傳入絕對(duì)路徑?。?! 
 private $_cert; 
  
 protected $log_file; 
  
 public $error; 
  
 // 相關(guān)配置必備參數(shù) 
 protected $_parameters = array(); 
  
 // 最后一次生產(chǎn)的訂單號(hào) 
 protected $_lastPartnerTradeNo; 
  
 // 記錄最后一次發(fā)送請(qǐng)求的結(jié)果對(duì)象 
 protected $_lastResult; 
  
 // 最后一次隨機(jī)數(shù) 
 protected $_lastRandNum; 
  
 public function __construct($config) 
 { 
  $keys = array( 
   'wxappid', 
   'mch_id', 
   'key' 
  ); 
  $files = array( 
   'api_cert', 
   'api_key', 
   'rootca' 
  ); 
  
  foreach ($keys as $key) { 
   try { 
    $this->_keys[$key] = $config[$key]; 
   } catch (Exception $e) { 
    throw new Exception('參數(shù)缺失:' . $key); 
   } 
  } 
  
  foreach ($files as $file) { 
   try { 
    $cret_file = $config[$file]; 
    if (is_file($cret_file)) { 
     $this->_cert[$file] = $cret_file; 
    } 
   } catch (Exception $e) { 
    throw new Exception('證書錯(cuò)誤'); 
   } 
  } 
 } 
 
 public function transfers($parameters){ 
 
  $this->log($parameters, 'SEND_PARAM'); 
   
  $this->setParameter('mchid', $this->_keys['mch_id']); 
  $this->setParameter('mch_appid', $this->_keys['wxappid']); 
   
  $must = array( 
   'openid', 
   'check_name', 
   're_user_name', 
   'amount', 
   'desc', 
   'spbill_create_ip', 
  ); 
  foreach ($must as $key) { 
   if (isset($parameters[$key])  $parameters[$key]) { 
    $this->setParameter($key, $parameters[$key]); 
   } else 
    if (! isset($this->_parameters[$key]) || ! $this->_parameters[$key]) { 
     $this->error = '參數(shù)缺損:' . $key; 
     return false; 
    } 
  } 
  if (! isset($parameters['partner_trade_no'])) { 
   $parameters['partner_trade_no'] = $this->getPartnerTradeNo(); 
  } 
   
  $this->setParameter('partner_trade_no', $parameters['partner_trade_no']); 
   
  $this->setParameter('nonce_str', $this->getRand(30, 3)); 
   
  $postXml = $this->_createXml(); 
   
  if (! $postXml) { 
   return false; 
  } 
  $this->log($postXml, 'SEND_XML'); 
   
  $result = $this->curl_post_ssl(self::TRANSFERS_URL, $postXml); 
   
  $this->log($result, 'RESULT_XML'); 
   
  if (! $result) { 
   return false; 
  } 
  $resultObj = simplexml_load_string($result, 'SimpleXMLElement', LIBXML_NOCDATA); 
   
  $this->_lastResult = $resultObj; 
   
  if ($resultObj->return_code == 'SUCCESS') { // 成功標(biāo)識(shí) 
     
   if ($resultObj->result_code == 'SUCCESS') { 
   
    return $resultObj->send_listid; 
   } 
     
   if ($resultObj->return_msg) { 
    $this->error = (string) $resultObj->return_msg; 
    return false; 
   } 
     
   $this->error = (string) $resultObj->err_code_des; 
   return false; 
  } 
   
  if ($resultObj->return_code != 'FAIL') { 
   $this->error = '返回信息格式異常'; 
   return false; 
  } 
   
  $this->error = (string) $resultObj->return_msg; 
  return false; 
 } 
  
 /** 
  * 獲取轉(zhuǎn)賬信息 
  * @param unknown $partner_trade_no 
  * @return boolean|SimpleXMLElement 
  */ 
 public function getInfo($partner_trade_no){ 
  $param = array( 
   'nonce_str' => $this->getRand(30, 3), 
   'partner_trade_no'=> $partner_trade_no , 
   'mch_id' => $this->_keys['mch_id'], 
   'appid'  => $this->_keys['wxappid'], 
  ); 
   
  ksort($param); 
  $unSignParaString = $this->_formatQueryParaMap($param, false); 
  $param['sign'] = $this->_sign($unSignParaString, $this->_keys['key']); 
   
  $xml = $this->arrayToXml($param); 
   
  $this->log($xml, 'GETINFO_XML'); 
   
  $result = $this->curl_post_ssl(self::GETINFO_URL, $xml); 
   
  if(!$result){ 
   return false ; 
  } 
   
  $this->log($result, 'RESULT_XML'); 
   
  $resultObj = simplexml_load_string($result, 'SimpleXMLElement', LIBXML_NOCDATA); 
  $this->_lastResult = $resultObj ; 
  if($resultObj->return_code == 'SUCCESS'){//成功標(biāo)識(shí) 
   
   if($resultObj->result_code == 'SUCCESS'){ 
    return $resultObj ; 
   } 
   
   if($resultObj->return_msg){ 
    $this->error = $resultObj->return_msg ; 
    return false ; 
   } 
   
   $this->error = $resultObj->err_code_des ; 
   return false ; 
  } 
   
  if($resultObj->return_code != 'FAIL'){ 
   $this->error = '返回信息格式異常'; 
   return false ; 
  } 
   
  $this->error = $resultObj->return_msg ; 
  return false ; 
 } 
 /** 
  * 設(shè)置所需要的參數(shù) 
  * @param $parameter 鍵值數(shù)組/鍵 
  * @param $value 值 
  * @return WxBonusApi 
  */ 
 public function setParameter($parameter, $value = null) 
 { 
  if (! is_array($parameter)) { 
   return $this->setParameter(array( 
    $parameter => $value 
   )); 
  } 
  
  foreach ($parameter as $key => $value) { 
   $key = trim($key); 
   $value = trim($value); 
   $this->_parameters[$key] = $value; 
  } 
  return $this; 
 } 
  
 /** 
  * 獲取參數(shù)值 
  * @param $parameter 鍵名 
  * @return multitype: 
  */ 
 public function getParameter($parameter) 
 { 
  return $this->_parameters[$parameter]; 
 } 
  
 /** 
  * 獲取隨機(jī)數(shù) 
  * @param number $len 隨機(jī)數(shù)的位數(shù) 
  * @param number $type 取值范圍 1表示數(shù)字 2小寫字母 4大寫字母 
  * @return string 
  */ 
 public function getRand($len = 30, $type = 0) 
 { 
  $str = ''; 
  $max = - 1; 
  
  if (! $type) { 
   $type = 3; 
  } 
  
  if ($type  1) { 
   $str .= '1234567890'; 
   $max += 10; 
  } 
  
  if ($type  2) { 
   $str .= 'abcdefghijklmnopqrstuvwxyz'; 
   $max += 26; 
  } 
  
  if ($type  4) { 
   $str .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
   $max += 26; 
  } 
  
  $rand = ''; 
  for ($i = 0; $i  $len; $i ++) { 
   $rand .= $str[rand(0, $max)]; 
  } 
  
  return $rand; 
 } 
  
 /** 
  * 生成商戶的訂單號(hào) 
  * @return string 
  */ 
 public function getPartnerTradeNo() 
 { 
  $this->_lastPartnerTradeNo = $this->_parameters['mch_id'] . date('YmdHis') . $this->getRand(4, 1); // $this->getRandNum(); 
  return $this->_lastPartnerTradeNo; 
 } 
  
  
 /** 
  * 獲取最后一次創(chuàng)建生成的訂單號(hào) 
  * @return string 
  */ 
 public function getLastPartnerTradeNo() 
 { 
  return $this->_lastPartnerTradeNo; 
 } 
  
  
  
 /** 
  * 創(chuàng)建XML的方法 
  * @param number $retcode 
  * @param string $reterrmsg 
  * @return boolean|string 
  */ 
 private function _createXml() 
 { 
  try { 
   $sign = $this->_getSign(); 
   if (! $sign) { 
    return false; 
   } 
   $this->setParameter('sign', $sign); 
     
   return $this->arrayToXml($this->_parameters); 
  } catch (Exception $e) { 
   $this->error = $e->getMessage(); 
   return false; 
  } 
 } 
  
  
 /** 
  * 參數(shù)轉(zhuǎn)換成XML 
  * @param array $arr 參數(shù)數(shù)組 
  * @return string 
  */ 
 public function arrayToXml($arr) 
 { 
  $xml = "xml>"; 
  foreach ($arr as $key => $val) { 
   if (is_numeric($val)) { 
    $xml .= "" . $key . ">" . $val . "/" . $key . ">"; 
   } else { 
    $xml .= "" . $key . ">![CDATA[" . $val . "]]>/" . $key . ">"; 
   } 
  } 
  $xml .= "/xml>"; 
  return $xml; 
 } 
  
 /** 
  * 獲得簽名結(jié)果 
  * @return boolean|Ambigous string, boolean> 
  */ 
 protected function _getSign() 
 { 
  try { 
     
   if ($this->_checkSign() == false) { // 檢查生成簽名參數(shù) 
    $this->error = '生成簽名參數(shù)缺失!'; 
    $this->log(json_encode($this->_parameters, JSON_UNESCAPED_UNICODE), 'ERROR_Sign_XML'); 
    return false; 
   } 
     
   ksort($this->_parameters); 
   $unSignParaString = $this->_formatQueryParaMap($this->_parameters, false); 
     
   return $this->_sign($unSignParaString, $this->_keys['key']); 
  } catch (Exception $e) { 
   $this->error = $e->getMessage(); 
   return false; 
  } 
 } 
  
 /** 
  * 檢查簽名所需參數(shù)是否齊全 
  * @return boolean 
  */ 
 private function _checkSign() 
 { 
  // return true;  
  if ($this->_parameters["mch_appid"] == null || 
   $this->_parameters["mchid"] == null || 
   //$this->_parameters["device_info"] == null || 設(shè)備id 
   $this->_parameters["nonce_str"] == null || 
   $this->_parameters["partner_trade_no"] == null || 
   $this->_parameters["openid"] == null || 
   $this->_parameters["check_name"] == null || 
   $this->_parameters["re_user_name"] == null || 
   $this->_parameters["desc"] == null || 
   $this->_parameters["spbill_create_ip"] == null) { 
    return false; 
   } 
   return true; 
 } 
  
 /** 
  * 
  * @param $paraMap 
  * @param $urlencode 
  * @return string 
  */ 
 private function _formatQueryParaMap($paraMap,$urlencode) 
 { 
  $buff = ""; 
  ksort($paraMap); 
  foreach ($paraMap as $k => $v) { 
   if (null != $v  "null" != $v  "sign" != $k) { 
    if ($urlencode) { 
     $v = urlencode($v); 
    } 
    $buff .= $k . "=" . $v . ""; 
   } 
  } 
  $reqPar; 
  if (strlen($buff) > 0) { 
   $reqPar = substr($buff, 0, strlen($buff) - 1); 
  } 
  return $reqPar; 
 } 
  
  
 /** 
  * 簽名 
  * @param $content 簽名的字符串 
  * @param $key 密鑰 
  * @throws Exception 
  * @return string|boolean 
  */ 
 private function _sign($content, $key) 
 { 
  try { 
   if (null == $key) { 
    $this->error = '簽名key不能為空!'; 
    return false; 
   } 
   if (null == $content) { 
    $this->error = '簽名內(nèi)容不能為空'; 
    return false; 
   } 
   $signStr = $content . "key=" . $key; 
  
   return strtoupper(md5($signStr)); 
     
  } catch (Exception $e) { 
   $this->error = $e->getMessage(); 
   return false; 
  } 
 } 
  
 /** 
  * cURL抓取 
  * 
  * @param $url 鏈接地址 
  * @param $vars 參數(shù) 
  * @param 
  *   $second 
  * @param 
  *   $aHeader 
  * @return mixed|boolean 
  */ 
 function curl_post_ssl($url, $data, $second = 30, $aHeader = array()) 
 { 
  $ch = curl_init(); 
  // 超時(shí)時(shí)間 
  curl_setopt($ch, CURLOPT_TIMEOUT, $second); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  // 這里設(shè)置代理,如果有的話 
  curl_setopt($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  // cert 與 key 分別屬于兩個(gè).pem文件 
  curl_setopt($ch, CURLOPT_SSLCERT, $this->_cert['api_cert']); 
  curl_setopt($ch, CURLOPT_SSLKEY, $this->_cert['api_key']); 
  curl_setopt($ch, CURLOPT_CAINFO, $this->_cert['rootca']); 
  if (count($aHeader) >= 1) { 
   curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader); 
  } 
  curl_setopt($ch, CURLOPT_POST, 1); 
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
  $data = curl_exec($ch); 
  if ($data) { 
   curl_close($ch); 
   return $data; 
  } else { 
   $this->log(json_encode($this->_cert)); 
   $this->error = 'aa:'.curl_errno($ch); 
   curl_close($ch); 
   return false; 
  } 
 } 
  
 /** 
  * 獲取服務(wù)器ip 
  * 
  * @return string 
  */ 
 public function getServerIp() 
 { 
  $server_ip = '127.0.0.1'; 
  if (isset($_SERVER)) { 
   if (isset($_SERVER['SERVER_ADDR'])  $_SERVER['SERVER_ADDR']) { 
    $server_ip = $_SERVER['SERVER_ADDR']; 
   } elseif (isset($_SERVER['LOCAL_ADDR'])  $_SERVER['LOCAL_ADDR']) { 
    $server_ip = $_SERVER['LOCAL_ADDR']; 
   } 
  } else { 
   $server_ip = getenv('SERVER_ADDR'); 
  } 
  return $server_ip; 
 } 
  
 /** 
  * 設(shè)置日志目錄文件 
  * 
  * @param unknown $file 
  */ 
 public function setLogFile($file) 
 { 
  $this->log_file = $file; 
 } 
  
 /** 
  * 寫日志 
  * 
  * @param $msg 寫入的信息 
  * @param $type 日志類型作為查詢標(biāo)示 
  */ 
 public function log($msg, $type) 
 { 
  if ($this->log_file) { 
   $log = str_replace(array( 
    "\r\n", 
    "\r", 
    "\n" 
   ), array( 
    "", 
    "", 
    "" 
   ), $msg); 
   error_log($type . ' ' . date('Y-m-d H:i:s') . ' ' . json_encode($log,JSON_UNESCAPED_UNICODE) . "\r\n", 3, $this->log_file); 
  } 
 } 
  
} 

?php 

include 'WxTransfers.Api.php'; 
class WxTransfers{ 

/** 
 *調(diào)用方法即可測(cè)試 
 */ 
 public function index(){ 
   
  $path = WxTransfersConfig::getRealPath(); // 證書文件路徑 
  $config['wxappid'] = WxTransfersConfig::APPID; 
  $config['mch_id'] = WxTransfersConfig::MCHID; 
  $config['key'] = WxTransfersConfig::KEY; 
  $config['PARTNERKEY'] = WxTransfersConfig::KEY; 
  $config['api_cert'] = $path . WxTransfersConfig::SSLCERT_PATH; 
  $config['api_key'] = $path . WxTransfersConfig::SSLKEY_PATH; 
  $config['rootca'] = $path . WxTransfersConfig::SSLROOTCA; 
   
  $wxtran=new WxTransfers($config); 
   
  $wxtran->setLogFile('D:\\transfers.log');//日志地址 
   
  //轉(zhuǎn)賬 
  $data=array( 
   'openid'=>'',//openid 
   'check_name'=>'NO_CHECK',//是否驗(yàn)證真實(shí)姓名參數(shù) 
   're_user_name'=>'11',//姓名 
   'amount'=>100,//最小1元 也就是100 
   'desc'=>'企業(yè)轉(zhuǎn)賬測(cè)試',//描述 
   'spbill_create_ip'=>$wxtran->getServerIp(),//服務(wù)器IP地址 
  ); 
  var_dump(json_encode($wxtran->transfers($data),JSON_UNESCAPED_UNICODE)); 
  var_dump($wxtran->error); 
 
  //獲取轉(zhuǎn)賬信息 
  var_dump($wxtran->getInfo('11111111')); 
  var_dump($wxtran->error); 
 } 
  
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP與以太坊交互詳解
  • php實(shí)現(xiàn)單筆轉(zhuǎn)賬到支付寶功能
  • 微信企業(yè)轉(zhuǎn)賬之入口類分裝php代碼
  • php實(shí)現(xiàn)微信公眾號(hào)企業(yè)轉(zhuǎn)賬功能
  • php7中停止php-fpm服務(wù)的方法詳解
  • PHP 對(duì)接美團(tuán)大眾點(diǎn)評(píng)團(tuán)購(gòu)券(門票)的開發(fā)步驟
  • PHP小程序后臺(tái)部署運(yùn)行 LNMP+WNMP的方法
  • 為PHP模塊添加SQL SERVER2012數(shù)據(jù)庫(kù)的步驟詳解
  • php微信小程序解包過(guò)程實(shí)例詳解
  • 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算
  • PHP實(shí)現(xiàn)創(chuàng)建以太坊錢包轉(zhuǎn)賬等功能

標(biāo)簽:崇左 鄂州 綏化 廊坊 太原 衡陽(yáng) 辛集 白銀

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能》,本文關(guān)鍵詞  php,實(shí)現(xiàn),微信,企業(yè),轉(zhuǎn)賬,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于php實(shí)現(xiàn)微信企業(yè)轉(zhuǎn)賬功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成年免费视频| 精品一区视频| 欧洲美女少妇精品| 天天噜天天色| 日韩在线视频在线观看| 日韩精品最新在线观看| 久久精品 人人爱| 四虎影视在线观看2413| 精品人妻一区二区三区蜜桃视频| 国产精品久久一区二区三区不卡| 69精品国产久热在线观看| 亚洲一区国产一区| 好吊的妞视频这里都有| 国产www精品| 久久国产精品99国产精| 久久国产精品久久精品| 热这里只有精品| 91在线播放视频| 九一免费在线观看| 别急慢慢来1978如如2| 国产精品久久久久婷婷| av中文天堂在线| 欧洲国内综合视频| avove在线播放| 在线观看的日韩av| 国产男女裸体做爰爽爽| 亚洲欧美日韩国产精品| 高清一区二区视频| 欧美黄色a视频| 97国产精东麻豆人妻电影| 亚洲视频 欧美视频| 国产精品成人aaaaa网站| 涩涩视频在线| 国产视频一二区| 欧美精品久久久久久久久久久| 亚洲精品911| 在线国产视频一区| 亚洲一区二区三区精品在线| 变态黄色小视频网站| 国产麻豆精品一区| 日本高清视频免费观看| 欧美老女人性开放| 久久精子c满五个校花| 欧美性潮喷xxxxx免费视频看| 成人精品一区二区| 在线āv视频| 国产在线拍揄自揄拍无码视频| 成人亚洲免费视频| 欧美日韩激情在线一区二区三区| 妞干网在线播放| 在线观看av免费观看| 亚洲最新在线| 日本成人黄色网址| jizz18女人高潮| 日韩国产欧美一区二区| 日韩中文视频免费在线观看| av中文字幕免费观看| 精品freesex老太交| 国产精品一区二区电影| 国产精品久久午夜| 日韩精品一区二区三区四区五区| 老司机在线看片网av| 成人午夜在线视频一区| 国产精品系列在线播放| 精品国产aⅴ一区二区三区东京热| 午夜亚洲一区| 性欧美gay| 九九热在线观看| 亚洲精品无码一区二区| 欧美日韩激情在线| 国产成人亚洲欧洲在线| av日韩在线看| 四虎影视国产在线视频| 精品人妻一区二区免费| 亚洲tv在线| 久久久久久久久久久97| 日本动漫同人动漫在线观看| 国模私拍视频| 亚洲高清免费观看高清完整版在线观看| 国产视频99| 久久国产成人精品国产成人亚洲| 欧美亚洲免费在线一区| 欧美性猛交bbbbb精品| 亚洲欧美中文字幕在线一区| 女人高潮被爽到呻吟在线观看| 欧美日韩aaaaaa| 深田えいみ中文字幕99久久| 久久国产精品久久久久久| 国产成+人+综合+亚洲欧美| 91精品一久久香蕉国产线看观看| 最好2018中文免费视频| 久久电影网站| 九九热精品免费视频| 国产午夜精品全部视频在线播放| 精品国产91久久久久久老师| 性高潮久久久久久久久久| 日韩av一区二区三区四区| 亚洲精品国产美女| 国产乱码精品一区二区三区日韩精品| 9l国产精品久久久久麻豆| 亚洲免费黄色片| 91麻豆精品久久毛片一级| 中文字幕被公侵犯的漂亮人妻| 动漫美女被爆操久久久| 欧美日韩视频精品二区| 精品国产一级片| 国产伦精品免费视频| 欧美做爰性生交视频| 中文字幕一区二区三区四区不卡| 先锋影音一区二区三区| 狠狠精品干练久久久无码中文字幕| 在线中文一区| 一本色道亚洲精品aⅴ| freehdxxxx护士| 成人有码视频在线播放| 男插女视频久久久| 99久久夜色精品国产亚洲| 日韩区在线观看| 四虎永久国产精品| 亚洲天堂视频一区| 色先锋久久影院av| 欧美最新另类人妖| 91日本韩国| 韩国日本美国免费毛片| 伊色综合久久之综合久久| 日韩黄色大片网站| 97精品电影院| 亚洲天堂免费| 在线观看日韩一区| 国产精品v亚洲精品v日韩精品| 91亚洲国产成人精品性色| 久久精品www| 裸体网站视频| 亚洲视频日韩| 亚洲一区不卡在线| 欧美另类videosbest视频| 亚洲视频免费在线| 婷婷六月国产精品久久不卡| 欧美中文字幕在线| 日韩在线观看www| 欧美jizz18性欧美| 国产精品国产亚洲精品| 日韩av片永久免费网站| 亚洲人体影院| 久久精品成人欧美大片古装| 手机在线免费观看av| 欧美激情偷拍| 欧美激情极品视频| 欧美成人高潮一二区在线看| 亚洲国产综合色| 亚洲资源网你懂的| 国产视频一区在线| 91九色鹿精品国产综合久久香蕉| 色一情一伦一子一伦一区| 欧美中文在线字幕| 视频一区二区综合| 日韩高清在线一区二区| 国产精品乱码一区二区三区| 久久精品国产久精国产一老狼| 欧美久久婷婷综合色| 亚洲性视频大全| 日日摸夜夜爽人人添av| 嫩草视频在线观看| 在线观看免费成人av| 国产精品美女久久久免费| 怡红院成永久免费人全部视频| 精品国产一区二区三区日日嗨| 超碰在线观看97| 秋霞国产午夜精品免费视频| 北条麻妃一区二区三区在线观看| 久久免费精品视频| 国产伦子伦对白在线播放观看| 三级电影在线看| 97人妻人人澡人人爽人人精品| 国产综合色在线观看| 国产a级毛片一区| 亚洲色图另类图片| 国产丝袜一区| 日韩欧美中文第一页| 精品国产大片大片大片| 天天综合色天天| 国产日韩欧美一区二区东京热| 精品国产91乱码一区二区三区| 中文字幕日韩在线观看| 超碰porn在线| 91夜夜未满十八勿入爽爽影院| 91碰在线视频| 亚洲精品一区二区三区精华液| 日韩av大全| 清纯唯美日韩| 视色,视色影院,视色影库,视色网| 浮力影院欧美三级日本三级| h在线观看视频免费网站| 久久精品视频国产| 三级黄在线播放| 性欧美videohd高精| 黄色毛片在线看| 中文字幕高清在线免费播放| 午夜av免费在线观看| 一级一片免费播放| 无码久久精品国产亚洲av影片| 亚洲图片另类小说| 国产精品老女人精品视频| 99久久久无码国产精品免费蜜柚| 亚洲国产精品午夜在线观看| 妖精视频在线观看| 免费成人av资源网| 无码人妻精品一区二| 久久成年人网站| 亚洲国产精品av| 天堂久久久久va久久久久| av电影在线观看不卡| 欧美久久免费观看| 日韩在线国产精品| 91亚洲精品乱码久久久久久蜜桃| 日韩精品视频一区二区在线观看| 精品一区二区三区亚洲| 久久久一区二区| 亚洲人成电影网站色…| 久久一区二区三区四区| 伊人影院蕉久影院在线播放| 成人午夜高潮视频| 免费一级在线观看| 波多野结衣办公室33分钟| 欧美色图校园春色| 久久久久久一二三区| 五月婷婷久久丁香| 99国产精品久久久久久久成人热| 狠狠综合久久av| 国产欧美88| 国产精品久久久久久福利一牛影视| xxxxxx国产精品视频| 狠狠久久伊人| 黑人精品一区二区三区| 精品视频免费看| 亚洲欧洲免费| 成人激情黄色小说| 在线观看黄色av| 在线观看黄色国产| 在线观看视频91| 青青草国产成人a∨下载安卓| 国产成人久久婷婷精品流白浆| 无码人妻aⅴ一区二区三区| 黄色亚洲免费| 九九精品免费视频| 欧美激情国产在线| 精品在线视频观看| 国产女人高潮时对白| 国产在线精品二区| 欧美激情一级二级三级在线视频| 天天天天天天天干| www.av黄色| 自拍另类欧美| 国产在线精品一区在线观看麻豆| 国产美女av一区二区三区| 久本草在线中文字幕亚洲欧美| 精品视频久久久| 国产日产精品一区二区三区的介绍| 成人网在线免费视频| 中文字幕天堂在线| 国产精品久久久久久久久久三级| 影音先锋日韩av| 另类视频在线观看+1080p| 高h视频在线观看| 这里只有精品在线观看| 国产精品久久久久久久久免费桃花| 免费在线成人网| 亚洲精品视频大全| 后入内射欧美99二区视频| 少妇人妻偷人精品一区二区| 欧美婷婷六月丁香综合色| 亚洲观看黄色网| 日韩xxxx视频| 神马久久一区二区三区| 亚洲美女性视频| 人妻少妇一区二区三区| 爱情岛亚洲播放路线| 亚洲综合色激情五月| 欧美香蕉爽爽人人爽| 成年人免费观看的视频| 欧美午夜精品久久久久久蜜| 精品国产乱码久久久久久蜜柚| 中文字幕一区二区三区四区欧美| 日本午夜一区二区| 亚洲va欧美va国产综合久久| 人成福利视频在线观看| 制服丝袜中文字幕在线| yourporn在线观看中文站| 麻豆视频成人| 男女性激情视频在线观看| 成人网18免费看| www操com| 国产精品嫩草久久久久| 国产日韩中文在线| www.噜噜色.com| 欧美日韩一区二区在线观看视频| 日韩你懂的电影在线观看| 日韩有码av| www国产亚洲精品久久麻豆| 你懂的在线观看视频网站| 国产www在线观看| 91丝袜国产在线播放| 人人澡人人澡人人看欧美| 无码一区二区三区| 日韩免费av电影| 日本在线xxx| 国产精区一区二区| 亚洲永久免费精品| 亚洲女女做受ⅹxx高潮| 在线日本成人| 久久一本综合| 懂色av中文字幕一区二区三区| 中文字幕无线精品亚洲乱码一区| 国产www视频| 亚洲国产资源| 欧洲一区在线电影| 寂寞护士中文字幕mp4| 国产深夜精品| 国产二区三区四区| 国产成人禁片免费观看| 中文字幕一区二区三区在线不卡| 人妻一区二区三区四区| 乡村艳史在线观看| 爱福利视频一区二区| 亚洲欧美日韩国产另类专区| 色99之美女主播在线视频| 欧美日韩理论片| 亚州男人的天堂|