婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現(xiàn)微信提現(xiàn)(企業(yè)付款到零錢)

PHP實現(xiàn)微信提現(xiàn)(企業(yè)付款到零錢)

熱門標簽:高德地圖標注家 長春人工外呼系統(tǒng)服務商 江西手機自動外呼防封系統(tǒng)是什么 哪里辦理400電話 廣東地市地圖標注 仁和怎么申請400開頭的電話 廣州防封卡外呼系統(tǒng)多少錢一個月 怎么向銷售公司推銷外呼系統(tǒng) 外呼系統(tǒng)撥打暫時無法接通

怎么開通企業(yè)付款到零錢?

有的商戶號的產(chǎn)品中心是沒有這個功能的,不過,該功能的pid(product id)是5,只要隨便進去某一個產(chǎn)品,在地址欄把pid改為5。

即可進入該功能頁面,進行開通,不過要滿足條件。

用戶提現(xiàn)代碼:

//用戶微信提現(xiàn)
 private function withdrawals_weixin($id){
    $falg = M('withdrawals')->where(['id'=>$id])->find();
    $openid = M('users')->where('user_id', $falg['user_id'])->value('openid');
    $data['openid'] = $openid;
    $data['pay_code'] = $falg['id'].$falg['user_id'];
    $data['desc'] = '提現(xiàn)ID'.$falg['id'];
    if($falg['taxfee'] >= $falg['money']){
      return array('status'=>1, 'msg'=>"提現(xiàn)額度必須大于手續(xù)費!" );
    }else{
      $data['money'] = bcsub($falg['money'], $falg['taxfee'], 2);
    }
    include_once PLUGIN_PATH . "payment/weixin/weixin.class.php";
    $weixin_obj = new \weixin();
    $result = $weixin_obj->transfer($data);
   
    return $result;
 }

其中pay_code在商戶號的提現(xiàn)功能是唯一的,所以為了防重放攻擊,這個值千萬不能用隨機數(shù),最好用ID,具有提現(xiàn)記錄唯一。

提現(xiàn)邏輯代碼:

// 微信提現(xiàn)轉賬
  function transfer($data){
    
    header("Content-type: text/html; charset=utf-8");
    //CA證書及支付信息
   $wxchat['appid'] = WxPayConfig::$appid;
   $wxchat['mchid'] = WxPayConfig::$mchid;
 
   $wxchat['api_cert'] = PLUGIN_PATH.'/payment/weixin/cert/apiclient_cert.pem';
    $wxchat['api_key'] = PLUGIN_PATH.'/payment/weixin/cert/apiclient_key.pem';
    
    // $wxchat['api_ca'] = '/plugins/payment/weixin/cert/rootca.pem';
   $webdata = array(
    'mch_appid' => $wxchat['appid'],
    'mchid'   => $wxchat['mchid'],
    'nonce_str' => md5(time()),
    //'device_info' => '1000',
    'partner_trade_no'=> $data['pay_code'], //商戶訂單號,需要唯一
    'openid' => $data['openid'],//轉賬用戶的openid
    'check_name'=> 'NO_CHECK', //OPTION_CHECK不強制校驗真實姓名, FORCE_CHECK:強制 NO_CHECK:
    //'re_user_name' => 'jorsh', //收款人用戶姓名
    'amount' => $data['money'] * 100, //付款金額單位為分
    'desc'  => $data['desc'],
    'spbill_create_ip' => request()->ip(),
    );
  
   foreach ($webdata as $k => $v) {
   $tarr[] =$k.'='.$v;
    }
 
   sort($tarr);
   $sign = implode($tarr, '');
   $sign .= 'key='.WxPayConfig::$key;
    $webdata['sign']=strtoupper(md5($sign));
    
    $wget = $this->array2xml($webdata);
    
    $pay_url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
 
    $res = $this->http_post($pay_url, $wget, $wxchat);
 
   if(!$res){
   return array('status'=>1, 'msg'=>"Can't connect the server" );
   }
    $content = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
    
   if(strval($content->return_code) == 'FAIL'){
   return array('status'=>1, 'msg'=>strval($content->return_msg));
   }
   if(strval($content->result_code) == 'FAIL'){
   return array('status'=>1, 'msg'=>strval($content->err_code),':'.strval($content->err_code_des));
    }
 
   $rdata = array(
    'mch_appid'    => strval($content->mch_appid),
    'mchid'      => strval($content->mchid),
    'device_info'   => strval($content->device_info),
    'nonce_str'    => strval($content->nonce_str),
    'result_code'   => strval($content->result_code),
    'partner_trade_no' => strval($content->partner_trade_no),
    'payment_no'    => strval($content->payment_no),
    'payment_time'   => strval($content->payment_time),
   );
   return $rdata;
 
  }

其中 PLUGIN_PATH 是一個常量

define('PLUGIN_PATH', __DIR__ . '/plugins/');

定義插件目錄

/**
   * 將一個數(shù)組轉換為 XML 結構的字符串
   * @param array $arr 要轉換的數(shù)組
   * @param int $level 節(jié)點層級, 1 為 Root.
   * @return string XML 結構的字符串
   */
  function array2xml($arr, $level = 1) {
   $s = $level == 1 ? "xml>" : '';
   foreach($arr as $tagname => $value) {
   if (is_numeric($tagname)) {
    $tagname = $value['TagName'];
    unset($value['TagName']);
   }
   if(!is_array($value)) {
    $s .= "{$tagname}>".(!is_numeric($value) ? '![CDATA[' : '').$value.(!is_numeric($value) ? ']]>' : '')."/{$tagname}>";
   } else {
    $s .= "{$tagname}>" . $this->array2xml($value, $level + 1)."/{$tagname}>";
   }
   }
   $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
   return $level == 1 ? $s."/xml>" : $s;
  }
  
  function http_post($url, $param, $wxchat) {
   $oCurl = curl_init();
   if (stripos($url, "https://") !== FALSE) {
   curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
   curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
   }
   if (is_string($param)) {
   $strPOST = $param;
   } else {
   $aPOST = array();
   foreach ($param as $key => $val) {
    $aPOST[] = $key . "=" . urlencode($val);
   }
   $strPOST = join("", $aPOST);
   }
   curl_setopt($oCurl, CURLOPT_URL, $url);
   curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($oCurl, CURLOPT_POST, true);
   curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST);
   if($wxchat){
   curl_setopt($oCurl,CURLOPT_SSLCERT,$wxchat['api_cert']);
   curl_setopt($oCurl,CURLOPT_SSLKEY,$wxchat['api_key']);
   curl_setopt($oCurl,CURLOPT_CAINFO,$wxchat['api_ca']);
   }
   $sContent = curl_exec($oCurl);
   $aStatus = curl_getinfo($oCurl);
    curl_close($oCurl);
    
   if (intval($aStatus["http_code"]) == 200) {
   return $sContent;
   } else {
   return false;
   }
 }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP APP微信提現(xiàn)接口代碼
  • PHP實現(xiàn)微信提現(xiàn)功能

標簽:文山 廈門 湘西 黔東 海北 濮陽 梅河口 惠州

巨人網(wǎng)絡通訊聲明:本文標題《PHP實現(xiàn)微信提現(xiàn)(企業(yè)付款到零錢)》,本文關鍵詞  PHP,實現(xiàn),微信,提現(xiàn),企業(yè),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現(xiàn)微信提現(xiàn)(企業(yè)付款到零錢)》相關的同類信息!
  • 本頁收集關于PHP實現(xiàn)微信提現(xiàn)(企業(yè)付款到零錢)的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 汝阳县| 克东县| 于都县| 保定市| 鲁山县| 呼图壁县| 兴国县| 公主岭市| 绵竹市| 庆云县| 民和| 长岭县| 仪陇县| 名山县| 右玉县| 昌都县| 扎赉特旗| 井冈山市| 广水市| 临洮县| 庆阳市| 吉安县| 栾川县| 新昌县| 工布江达县| 英吉沙县| 房产| 凤山市| 太原市| 德化县| 阿坝县| 循化| 山西省| 大新县| 呼玛县| 连江县| 手机| 漳州市| 积石山| 修武县| 赤壁市|