麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > PHP > 正文

php如何實(shí)現(xiàn)微信企業(yè)號(hào)支付個(gè)人

2020-03-22 20:11:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了php實(shí)現(xiàn)微信企業(yè)號(hào)支付個(gè)人的方法,詳細(xì)分析了php微信企業(yè)號(hào)的支付配置、證書使用及支付流程相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了php實(shí)現(xiàn)微信企業(yè)號(hào)支付個(gè)人的方法。分享給大家供大家參考,具體如下:

導(dǎo)語(yǔ):分銷商,微商提現(xiàn)怎么提?

直接用微信支付。

實(shí)現(xiàn)如下:

微信支付配置

/*微信支付*/ PAY_WEIXIN = array( appid = XXXX , appsecret = XXXXXXX , mchid = 1283301801 , //商戶號(hào) key = zhudianbaodiandodozhudianbao0527 , //商戶支付秘鑰 apiclient_cert = Conf/cert/apiclient_cert.pem , //商戶證書apiclient_cert.pem apiclient_key = Conf/cert/apiclient_key.pem , //商戶證書apiclient_key.pem )

arrayToXml

/*** array轉(zhuǎn)xmlfunction 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;}

使用證書,以post方式提交xml到對(duì)應(yīng)的接口url

/*** 作用:使用證書,以post方式提交xml到對(duì)應(yīng)的接口urlfunction postXmlSSLCurl($xml, $url, $second, $cert, $key) $ch = curl_init(); //超時(shí)時(shí)間 curl_setopt($ch,CURLOPT_TIMEOUT,$second ? $second : $this- timeout); //這里設(shè)置代理,如果有的話 //curl_setopt($ch,CURLOPT_PROXY, 8.8.8.8  //curl_setopt($ch,CURLOPT_PROXYPORT, 8080); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE); //設(shè)置header curl_setopt($ch,CURLOPT_HEADER,FALSE); //要求結(jié)果為字符串且輸出到屏幕上 curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); //設(shè)置證書 //使用證書:cert 與 key 分別屬于兩個(gè).pem文件 //默認(rèn)格式為PEM,可以注釋 curl_setopt($ch,CURLOPT_SSLCERTTYPE, PEM  curl_setopt($ch,CURLOPT_SSLCERT,$cert); //默認(rèn)格式為PEM,可以注釋 curl_setopt($ch,CURLOPT_SSLKEYTYPE, PEM  curl_setopt($ch,CURLOPT_SSLKEY, $key); //post提交方式 curl_setopt($ch,CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); $data = curl_exec($ch); //返回結(jié)果 if($data){ curl_close($ch); return $this- xmlToArray($data); else { $error = curl_errno($ch); echo curl出錯(cuò),錯(cuò)誤碼:$error . br  curl_close($ch); return false;}

企業(yè)向個(gè)人付款

//企業(yè)向個(gè)人付款html' target='_blank'>public function payToUser($params, $key, $apicent_cert, $apiclient_key) { $url = https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers  //檢測(cè)必填參數(shù) if($params[ partner_trade_no ] == null) { // exit( 退款申請(qǐng)接口中,缺少必填參數(shù)partner_trade_no! . br  }elseif($params[ openid ] == null){ exit( 退款申請(qǐng)接口中,缺少必填參數(shù)openid! . br  }elseif($params[ check_name ] == null){ //NO_CHECK:不校驗(yàn)真實(shí)姓名 FORCE_CHECK:強(qiáng)校驗(yàn)真實(shí)姓名(未實(shí)名認(rèn)證的用戶會(huì)校驗(yàn)失敗,無(wú)法轉(zhuǎn)賬)OPTION_CHECK:針對(duì)已實(shí)名認(rèn)證的用戶才校驗(yàn)真實(shí)姓名(未實(shí)名認(rèn)證用戶不校驗(yàn),可以轉(zhuǎn)賬成功) exit( 退款申請(qǐng)接口中,缺少必填參數(shù)check_name! . br  }elseif(($params[ check_name ] == FORCE_CHECK or $params[ check_name ] == OPTION_CHECK ) ($params[ re_user_name ] == null)){ //收款用戶真實(shí)姓名。 exit( 退款申請(qǐng)接口中,缺少必填參數(shù)re_user_name! . br  }elseif($params[ amount ] == null){ exit( 退款申請(qǐng)接口中,缺少必填參數(shù)amount! . br  }elseif($params[ desc ] == null){ exit( 退款申請(qǐng)接口中,缺少必填參數(shù)desc! . br  $params[ mch_appid ] = $this- appid;//公眾賬號(hào)ID $params[ mchid ] = $this- mchid;//商戶號(hào) $params[ nonce_str ] = $this- createNoncestr();//隨機(jī)字符串 $params[ spbill_create_ip ] = $_SERVER[ REMOTE_ADDR ] == ::1 ? 192.127.1.1 : $_SERVER[ REMOTE_ADDR //獲取IP $params[ sign ] = $this- getSign($params, $key);//簽名 $xml = $this- arrayToXml($params); return $this- postXmlSSLCurl($xml, $url, false, $apicent_cert, $apiclient_key);}

企業(yè)付款

private function _enterprisePay($number, $member_id, $amount, $desc) // 獲取openid $wxuser_id = M( Member )- where(array( id = $member_id))- getField( wxuser_id  $openid = M( Wxuser )- where(array( id = $wxuser_id))- getField( openid  $pay = C( PAY_WEIXIN  import( @.Action.WxDevelop  $enterprise = new WxEnterprise($pay[ appid ], $pay[ appsecret ], $pay[ mchid  $params = array( partner_trade_no = $number, openid = $openid, check_name = NO_CHECK , amount = $amount, // 總計(jì) desc = $desc, $result = $enterprise- payToUser($params, $pay[ key ], $pay[ apiclient_cert ], $pay[ apiclient_key  return $result;}

處理分銷商提現(xiàn)

private function _handle($truename, $price) { // 處理分銷商提現(xiàn) $withdrawid = date( ymdHis ) . strval(rand(1000, 9999)); $data = array( withdrawid = $withdrawid, store_id = $this- store_id, member_id = $this- member_id, truename = $truename, price = $price, addtime = time()); //免審核 if ($price = C( withdraw_uncheck_value )) { $data[ need_check ] = 0; $data[ status ] = 1; if ($this- withdrawModel- add($data)) { $result = $this- _enterprisePay($withdrawid, $this- member_id, $price * 100, 分銷商( . $truename . )提現(xiàn)  //遇到支付信息出錯(cuò),轉(zhuǎn)為需審核提現(xiàn) if ($result[ return_code ] != SUCCESS ) { $this- withdrawModel- where(array( withdrawid = $withdrawid))- save(array( need_check = 1, status = 0)); $this- assign( success , 2); else { //設(shè)置微信交易號(hào) $this- withdrawModel- where(array( withdrawid = $withdrawid))- save(array( payment_no = $result[ payment_no ])); //增加傭金流水,待修復(fù) $data = array( store_id = $this- store_id, user_type = 2, user_id = $this- shop_id, trade_type = 2, trade_no = $withdrawid, price = -$price, status = 1, message = $truename. 提現(xiàn) , addtime = time()); M( Twitter_log )- add($data); //減少相應(yīng)可提傭金 M( Member )- where(array( id = $this- member_id))- setInc( money , -$price); $this- assign( success , 1); //發(fā)送傭金變動(dòng)消息 import( @.Action.Tmplmsg  $tmplmsg = new Tmplmsg(); $tmplmsg- send(Tmplmsg::PRICE_CHANGE, $this- member_id, array( token = $this- token, intro = 分銷傭金提現(xiàn)轉(zhuǎn)出 , price = $price, business = BUSINESS)); else { $this- error( 提現(xiàn)信息錯(cuò)誤!  //需要審核 else { $this- withdrawModel- add($data); $this- assign( success , 2);}

提供企業(yè)向用戶付款的功能,支持企業(yè)通過(guò)API接口付款,或通過(guò)微信支付商戶平臺(tái)網(wǎng)頁(yè)功能操作付款。

溫馨提示:

◆ 給同一個(gè)實(shí)名用戶付款,單筆單日限額2W/2W
◆ 給同一個(gè)非實(shí)名用戶付款,單筆單日限額2000/2000
◆ 一個(gè)商戶同一日付款總額限額100W
◆ 僅支持商戶號(hào)已綁定的APPID;
◆ 針對(duì)付款的目標(biāo)用戶,已微信支付實(shí)名認(rèn)證的用戶可提供校驗(yàn)真實(shí)姓名的功能,未實(shí)名認(rèn)證的用戶無(wú)法校驗(yàn),企業(yè)可根據(jù)自身業(yè)務(wù)的安全級(jí)別選擇驗(yàn)證類型;
◆ 付款金額必須小于或等于商戶當(dāng)前可用余額的金額;
◆ 已付款的記錄,企業(yè)可通過(guò)企業(yè)付款查詢查看相應(yīng)數(shù)據(jù)。

到賬

付款資金將進(jìn)入目標(biāo)用戶的零錢(微信-我-錢包-零錢)。微信支付將做零錢入賬消息通知,零錢收支明細(xì)會(huì)展示相應(yīng)記錄。

溫馨提示:

針對(duì)無(wú)零錢賬戶的歷史客戶端版本,資金將進(jìn)入用戶的紅包賬戶,微信支付無(wú)消息通知用戶,企業(yè)可選擇自行觸達(dá)用戶。

接口鏈接:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers

是否需要證書
請(qǐng)求需要雙向證書。

數(shù)據(jù)示例:

 xml  mch_appid wxe062425f740c30d8 /mch_appid  mchid 10000098 /mchid  nonce_str 3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS /nonce_str  partner_trade_no 100000982014120919616 /partner_trade_no  openid ohO4Gt7wVPxIT1A9GjFaMYMiZY1s /openid  check_name OPTION_CHECK /check_name  re_user_name 張三 /re_user_name  amount 100 /amount  desc 節(jié)日快樂(lè)! /desc  spbill_create_ip 10.2.3.10 /spbill_create_ip  sign C97BDBACF37622775366F38B629F45E3 /sign  /xml 

成功示例:

 xml  return_code ![CDATA[SUCCESS]] /return_code  return_msg ![CDATA[]] /return_msg  mch_appid ![CDATA[wxec38b8ff840bd989]] /mch_appid  mchid ![CDATA[10013274]] /mchid  device_info ![CDATA[]] /device_info  nonce_str ![CDATA[lxuDzMnRjpcXzxLx0q]] /nonce_str  result_code ![CDATA[SUCCESS]] /result_code  partner_trade_no ![CDATA[10013574201505191526582441]] /partner_trade_no  payment_no ![CDATA[1000018301201505190181489473]] /payment_no  payment_time ![CDATA[2015-05-19 15:26:59]] /payment_time  /xml 

錯(cuò)誤示例:

 xml  return_code ![CDATA[FAIL]] /return_code  return_msg ![CDATA[系統(tǒng)繁忙,請(qǐng)稍后再試.]] /return_msg  result_code ![CDATA[FAIL]] /result_code  err_code ![CDATA[SYSTEMERROR]] /err_code  err_code_des ![CDATA[系統(tǒng)繁忙,請(qǐng)稍后再試.]] /err_code_des  /xml 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP !

相關(guān)推薦:

PHP實(shí)現(xiàn)微信公眾平臺(tái)企業(yè)號(hào)驗(yàn)證接口

如何使用PHP導(dǎo)出數(shù)據(jù)到淘寶助手CSV

以上就是php如何實(shí)現(xiàn)微信企業(yè)號(hào)支付個(gè)人的詳細(xì)內(nèi)容,PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 爱操成人网 | 午夜精品老牛av一区二区三区 | 综合99 | 国产高潮失禁喷水爽到抽搐视频 | 国产精品视频2021 | 777sesese| 精品国产一区二区在线观看 | 久久国产精品影视 | 精品成人久久久 | 性爱视频在线免费 | 娇喘在线| 国产毛片在线看 | 免费观看一区 | 欧美日韩国产一区二区三区在线观看 | 久久免费视频3 | 爽爽淫人网 | 久草成人在线观看 | 啊~用cao嗯力cao烂我视频 | 久久亚洲精品国产一区 | 成人一区二区在线观看视频 | 黄在线免费 | 欧美四级在线观看 | 久久大陆| 91www成人久久| 美女扒开腿让男生桶爽网站 | 涩涩操| 日本在线视频免费观看 | 经典三级av在线 | 综合网日日天干夜夜久久 | 国产91亚洲精品久久久 | 麻豆视频在线免费观看 | 国产青草视频在线观看视频 | 天天鲁在线视频免费观看 | 大西瓜永久免费av在线 | 蜜桃视频观看麻豆 | 午夜啪视频 | 在线播放黄色网址 | 免费一级欧美 | 亚洲天堂一级片 | 欧美 国产 亚洲 卡通 综合 | 日韩99 |